diff --git a/.gitignore b/.gitignore
index 3e759b7..8f8589d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,319 +12,42 @@
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
-# Build results
-[Dd]ebug/
-[Dd]ebugPublic/
-[Rr]elease/
-[Rr]eleases/
-x64/
-x86/
-bld/
-[Bb]in/
-[Oo]bj/
-[Ll]og/
-
# Visual Studio 2015/2017 cache/options directory
.vs/
-# Uncomment if you have tasks that create the project's static files in wwwroot
-#wwwroot/
-# Visual Studio 2017 auto generated files
-Generated\ Files/
-
-# MSTest test Results
-[Tt]est[Rr]esult*/
-[Bb]uild[Ll]og.*
-
-# NUNIT
-*.VisualState.xml
-TestResult.xml
-
-# Build Results of an ATL Project
-[Dd]ebugPS/
-[Rr]eleasePS/
-dlldata.c
-
-# Benchmark Results
-BenchmarkDotNet.Artifacts/
-
-# .NET Core
-project.lock.json
-project.fragment.lock.json
-artifacts/
-**/Properties/launchSettings.json
-
-# StyleCop
-StyleCopReport.xml
-
-# Files built by Visual Studio
-*_i.c
-*_p.c
-*_i.h
-*.ilk
-*.meta
-*.obj
-*.iobj
-*.pch
-*.pdb
-*.ipdb
-*.pgc
-*.pgd
-*.rsp
-*.sbr
-*.tlb
-*.tli
-*.tlh
-*.tmp
-*.tmp_proj
+# Build log files
+*.err
+*.prf
+*.wrn
*.log
-*.vspscc
-*.vssscc
-.builds
-*.pidb
-*.svclog
-*.scc
-# Chutzpah Test files
-_Chutzpah*
-
-# Visual C++ cache files
-ipch/
-*.aps
-*.ncb
-*.opendb
-*.opensdf
-*.sdf
-*.cachefile
-*.VC.db
-*.VC.VC.opendb
-
-# Visual Studio profiler
-*.psess
-*.vsp
-*.vspx
-*.sap
-
-# Visual Studio Trace Files
-*.e2e
-
-# TFS 2012 Local Workspace
-$tf/
-
-# Guidance Automation Toolkit
-*.gpState
-
-# ReSharper is a .NET coding add-in
-_ReSharper*/
-*.[Rr]e[Ss]harper
-*.DotSettings.user
-
-# JustCode is a .NET coding add-in
-.JustCode
-
-# TeamCity is a build add-in
-_TeamCity*
-
-# DotCover is a Code Coverage Tool
-*.dotCover
-
-# AxoCover is a Code Coverage Tool
-.axoCover/*
-!.axoCover/settings.json
-
-# Visual Studio code coverage results
-*.coverage
-*.coveragexml
-
-# NCrunch
-_NCrunch_*
-.*crunch*.local.xml
-nCrunchTemp_*
-
-# MightyMoose
-*.mm.*
-AutoTest.Net/
-
-# Web workbench (sass)
-.sass-cache/
-
-# Installshield output folder
-[Ee]xpress/
-
-# DocProject is a documentation generator add-in
-DocProject/buildhelp/
-DocProject/Help/*.HxT
-DocProject/Help/*.HxC
-DocProject/Help/*.hhc
-DocProject/Help/*.hhk
-DocProject/Help/*.hhp
-DocProject/Help/Html2
-DocProject/Help/html
-
-# Click-Once directory
-publish/
-
-# Publish Web Output
-*.[Pp]ublish.xml
-*.azurePubxml
-# Note: Comment the next line if you want to checkin your web deploy settings,
-# but database connection strings (with potential passwords) will be unencrypted
-*.pubxml
-*.publishproj
-
-# Microsoft Azure Web App publish settings. Comment the next line if you want to
-# checkin your Azure Web App publish settings, but sensitive information contained
-# in these scripts will be unencrypted
-PublishScripts/
-
-# NuGet Packages
-*.nupkg
-# The packages folder can be ignored because of Package Restore
-**/[Pp]ackages/*
-# except build/, which is used as an MSBuild target.
-!**/[Pp]ackages/build/
-# Uncomment if necessary however generally it will be regenerated when needed
-#!**/[Pp]ackages/repositories.config
-# NuGet v3's project.json files produces more ignorable files
-*.nuget.props
-*.nuget.targets
-
-# Microsoft Azure Build Output
-csx/
-*.build.csdef
-
-# Microsoft Azure Emulator
-ecf/
-rcf/
-
-# Windows Store app package directories and files
-AppPackages/
-BundleArtifacts/
-Package.StoreAssociation.xml
-_pkginfo.txt
-*.appx
-
-# Visual Studio cache files
-# files ending in .cache can be ignored
-*.[Cc]ache
-# but keep track of directories ending in .cache
-!*.[Cc]ache/
-
-# Others
-ClientBin/
-~$*
-*~
-*.dbmdl
-*.dbproj.schemaview
-*.jfm
-*.pfx
-*.publishsettings
-orleans.codegen.cs
-
-# Including strong name files can present a security risk
-# (https://github.com/github/gitignore/pull/2483#issue-259490424)
-#*.snk
-
-# Since there are multiple workflows, uncomment next line to ignore bower_components
-# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
-#bower_components/
-
-# RIA/Silverlight projects
-Generated_Code/
-
-# Backup & report files from converting an old project file
-# to a newer Visual Studio version. Backup files are not needed,
-# because we have git ;-)
-_UpgradeReport_Files/
-Backup*/
-UpgradeLog*.XML
-UpgradeLog*.htm
-ServiceFabricBackup/
-*.rptproj.bak
-
-# SQL Server files
-*.mdf
-*.ldf
-*.ndf
-
-# Business Intelligence projects
-*.rdl.data
-*.bim.layout
-*.bim_*.settings
-*.rptproj.rsuser
-
-# Microsoft Fakes
-FakesAssemblies/
-
-# GhostDoc plugin setting file
-*.GhostDoc.xml
-
-# Node.js Tools for Visual Studio
-.ntvs_analysis.dat
+# Temp directories
+bundle/
node_modules/
+out/
+dist-esm/
+dist/
-# Visual Studio 6 build log
-*.plg
+lib/bundle/
+lib/dist-esm/
+lib/dist/
-# Visual Studio 6 workspace options file
-*.opt
+# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
+.grunt
-# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
-*.vbw
+# Grunt
+.tscache
+**/Test/**/*tests.js
+**/Test/**/*tests.d.ts
+**/Test/**/*tests.js.map
-# Visual Studio LightSwitch build output
-**/*.HTMLClient/GeneratedArtifacts
-**/*.DesktopClient/GeneratedArtifacts
-**/*.DesktopClient/ModelManifest.xml
-**/*.Server/GeneratedArtifacts
-**/*.Server/ModelManifest.xml
-_Pvt_Extensions
+# Output of 'npm pack'
+*.tgz
-# Paket dependency manager
-.paket/paket.exe
-paket-files/
-# FAKE - F# Make
-.fake/
+# Rush files
+common/temp/**
+package-deps.json
+package-lock.json
-# JetBrains Rider
-.idea/
-*.sln.iml
-
-# CodeRush
-.cr/
-
-# Python Tools for Visual Studio (PTVS)
-__pycache__/
-*.pyc
-
-# Cake - Uncomment if you are using it
-# tools/**
-# !tools/packages.config
-
-# Tabs Studio
-*.tss
-
-# Telerik's JustMock configuration file
-*.jmconfig
-
-# BizTalk build output
-*.btp.cs
-*.btm.cs
-*.odx.cs
-*.xsd.cs
-
-# OpenCover UI analysis results
-OpenCover/
-
-# Azure Stream Analytics local run output
-ASALocalRun/
-
-# MSBuild Binary and Structured Log
-*.binlog
-
-# NVidia Nsight GPU debugger configuration file
-*.nvuser
-
-# MFractors (Xamarin productivity tool) working folder
-.mfractor/
+# test output
diff --git a/.npmignore b/.npmignore
new file mode 100644
index 0000000..0c23ef2
--- /dev/null
+++ b/.npmignore
@@ -0,0 +1,18 @@
+# NPM Ignore
+
+# ignore everything
+*
+
+# ... but these files
+!/package.json
+!/README.md
+!/CONTRIBUTING.md
+!/CODE_OF_CONDUCT.md
+!/LICENSE
+!/SECURITY
+!/lib/bundle/dynamicproto-js.*
+!/lib/dynamicproto-js.js
+!/lib/dynamicproto-js.js.map
+!/lib/dynamicproto-js.min.js
+!/lib/dynamicproto-js.min.js.map
+!/lib/**/*
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..f5027f6
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,15 @@
+language: node_js
+node_js:
+ - "10.9"
+before_install:
+ - npm i -g npm@4.5.0
+ - npm i -g @microsoft/rush
+ - npm i -g grunt-cli
+jobs:
+ include:
+ - stage: "Build and Test: DynamicProto JS"
+ name: "Build and Test: DynamicProto JS"
+ script:
+ - npm install
+ - npm run build
+ - npm run test
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..81a2c03
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,39 @@
+## Contributing
+
+Welcome and thank you for your interest in contributing to DynamicProto-JS.
+
+This project welcomes contributions and suggestions. Most contributions require you to agree to a
+Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
+the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
+
+When you submit a pull request, a CLA bot will automatically determine whether you need to provide
+a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
+
+This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
+For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
+contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
+
+## Clone, Setup, Build & Test this repo
+1. Clone the repository and create a new branch
+
+2. Install all dependencies
+
+ ```sh
+ npm install
+ npm install -g @microsoft/rush
+ ```
+
+3. Navigate to the root folder and update rush dependencies
+
+ ```sh
+ rush update
+ ```
+
+4. Build, lint, create docs and run tests
+
+ ```sh
+ rush build
+ npm run test
+ ```
+
+If you are changing package versions or adding/removing any package dependencies, run
**```rush update --purge --recheck --full```**
before building. Please check-in any files that change under common\ folder.
diff --git a/README.md b/README.md
index b81a84e..e03a07b 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,130 @@
+# Dynamic Proto JavaScript
-# Contributing
+Generates dynamic prototype methods for JavaScript objects (classes) by supporting method definition within their "class" constructor (like an instance version), this removes the need to expose internal properties on the instance (this) and the usage of ```ClassName.prototype.funcName()``` both of which result in better code minfication (smaller output) and therefore improved load times for your users.
-This project welcomes contributions and suggestions. Most contributions require you to agree to a
-Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
-the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
+The dynamically generated prototype methods support class inheritance of any type, which means you can extend from base classes that use instance or prototype defined methods, you also don't need to add the normal boiler plate code to handle detecting, saving and calling any previous instance methods that you are overriding as support for this is provided automatically.
-When you submit a pull request, a CLA bot will automatically determine whether you need to provide
-a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions
-provided by the bot. You will only need to do this once across all repos using our CLA.
+So whether creating a new class or extending some other class/code, your resulting code, can be successfully extended via TypeScript or JavaScript.
-This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
-For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
-contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
+## Removing / Hiding internal properties from instance
+By defining the properties / methods within the constructors closure, each instance can contain or define internal state in the form of properties which it does not have to expose publically as each defined "public" instance method has direct access to this define state within the context/scope of the closure method.
+
+While this does require some additional CPU and memory at the point of creating each instance object this is designed to be as minimal as possible and should be outwayed by the following advantages :-
+
+* Avoids polluting the instance (this) namespace with internal values that can cause issues with inheritence for base/super classes or even derived classes that extend your class.
+* Smaller code as the internal properties and methods when defined within the instance can be minified.
+* As the resulting generated code can be better minified this *should* result in a smaller minified result and therefore better load times for your users.
+
+## When to use
+While this helper was originally created to support better minification for generated code via TypeScript, it is not limited to only being used from within TypeScript.
+
+And as with including any additional code into your project there is a trade off that you need to make before using this helper which is the size of the additional code of this utility vs the minification gains that *may* be obtained. As in most cases of creating JavaScript code for better minfication if your code doesn't expose or provide a lot of public methods or only uses un-minifiable "names" less than 2 times then the potential gains may not be worth the additional bytes.
+
+And yes at the end of the day, if you are creating JS classes directly in Javascript you *should* be able to create a simplier one-off solution that would result in smaller output as this project needs to be generic to be able to support all use-cases.
+
+## Basic Usage
+```typescript
+import dynamicProto from "@microsoft/dynamicproto-js";
+class ExampleClass extends BaseClass {
+ constructor() {
+ dynamicProto(ExampleClass, this, (_self, base) => {
+ // This will define a function that will be converted to a prototype function
+ _self.newFunc = () => {
+ // Access any "this" instance property
+ if (_self.someProperty) {
+ ...
+ }
+ }
+ // This will define a function that will be converted to a prototype function
+ _self.myFunction = () => {
+ // Access any "this" instance property
+ if (_self.someProperty) {
+ // Call the base version of the function that we are overriding
+ base.myFunction();
+ }
+ ...
+ }
+ _self.initialize = () => {
+ ...
+ }
+ // Warnings: While the following will work as _self is simply a ference to
+ // this, if anyone overrides myFunction() the overridden will be called first
+ // as the normal JavaScript method resolution will occur and the defined
+ // _self.initialize() function is actually gets removed from the instance and
+ // a proxy prototype version is created to reference the created method.
+ _self.initialize();
+ });
+ }
+}
+```
+
+## Build & Test this repo
+
+1. Install all dependencies
+
+ ```sh
+ npm install
+ npm install -g @microsoft/rush
+ ```
+
+2. Navigate to the root folder and update rush dependencies
+
+ ```sh
+ rush update
+ ```
+
+3. Build, lint, create docs and run tests
+
+ ```sh
+ rush build
+ npm run test
+ ```
+
+If you are changing package versions or adding/removing any package dependencies, run
**```rush update --purge --recheck --full```**
before building. Please check-in any files that change under common\ folder.
+
+## Performance
+
+The minified version of this adds a negligible amount of code and loadtime to your source code and by using this library your generated code can be better minified as it removes most references of Classname.prototype.XXX methods from the generated code.
+
+> Summary:
+>
+> - **~2 KB** minified (uncompressed)
+
+
+## Browser Support
+
+![Chrome](https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png) | ![Firefox](https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png) | ![IE8](https://raw.githubusercontent.com/hotoo/browser-logos/master/ie9-10/ie9-10_48x48.png) | ![Edge](https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png) | ![Opera](https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png) | ![Safari](https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png)
+--- | --- | --- | --- | --- | --- |
+Latest ✔ | Latest ✔ | 8+ Full ✔ | Latest ✔ | Latest ✔ | Latest ✔ |
+
+## Contributing
+
+Read our [contributing guide](./CONTRIBUTING.md) to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes to Application Insights.
+
+## ES3/IE8 Compatibility
+
+As an library there are numerous users which cannot control the browsers that their customers use. As such we need to ensure that this library continues to "work" and does not break the JS execution when loaded by an older browser. While it would be ideal to just not support IE8 and older generation (ES3) browsers there are numerous large customers/users that continue to require pages to "work" and as noted they may or cannot control which browser that their end users choose to use.
+
+As part of enabling ES3/IE8 support we have set the ```tsconfig.json``` to ES3 and ```uglify``` settings in ```rollup.config.js``` transformations to support ie8. This provides a first level of support which blocks anyone from adding unsupported ES3 features to the code and enables the generated javascript to be validily parsed in an ES3+ environment.
+
+Ensuring that the generated code is compatible with ES3 is only the first step, JS parsers will still parse the code when an unsupport core function is used, it will just fail or throw an exception at runtime. Therefore, we also need to require/use polyfil implementations or helper functions to handle those scenarios.
+
+### ES3/IE8 Features, Solutions, Workarounds and Polyfil style helper functions
+
+This table does not attempt to include ALL of the ES3 unsuported features, just the currently known functions that where being used at the time or writing. You are welcome to contribute to provide additional helpers, workarounds or documentation of values that should not be used.
+
+| Feature | Description | Usage |
+|-----------|-----------------|------|
+| ```Object.keys()``` | Not provided by ES3 and not used | N/A |
+| ES5+ getters/setters
```Object.defineProperty(...)``` | Not provided by ES3 and not used | N/A |
+| ```Object.create(protoObj, [descriptorSet]?)``` | Not provided by ES3 and not used | N/A |
+| ```Object.defineProperties()``` | Not provided by ES3 and not used | N/A |
+| ```Object.getOwnPropertyNames(obj)``` | Not provided by ES3 and not used | N/A |
+| ```Object.getPrototypeOf(obj)``` | Not provided by ES3 and not used | ```_getObjProto(target:any)``` |
+| ```Object.getOwnPropertyDescriptor(obj)``` | Not provided by ES3 and not used | N/A |
+| ```Object.preventExtensions(obj)``` | Not provided by ES3 and not used | N/A |
+| ```Object.isExtensible(obj)``` | Not provided by ES3 and not used | N/A |
+| ```Object.seal(obj)``` | Not provided by ES3 and not used | N/A |
+| ```Object.isSealed(obj)``` | Not provided by ES3 and not used | N/A |
+| ```Object.freeze(obj)``` | Not provided by ES3 and not used | N/A |
+| ```Object.isFrozen(obj)``` | Not provided by ES3 and not used | N/A |
diff --git a/common/config/rush/npm-shrinkwrap.json b/common/config/rush/npm-shrinkwrap.json
new file mode 100644
index 0000000..6c0a0ca
--- /dev/null
+++ b/common/config/rush/npm-shrinkwrap.json
@@ -0,0 +1,2106 @@
+{
+ "name": "rush-common",
+ "version": "0.0.0",
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.5.5",
+ "from": "@babel/code-frame@^7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz"
+ },
+ "@babel/highlight": {
+ "version": "7.5.0",
+ "from": "@babel/highlight@^7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz"
+ },
+ "@rush-temp/dynamicproto-js": {
+ "version": "0.0.0",
+ "from": "projects\\dynamicproto-js.tgz",
+ "resolved": "file:projects\\dynamicproto-js.tgz"
+ },
+ "@types/estree": {
+ "version": "0.0.39",
+ "from": "@types/estree@0.0.39",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz"
+ },
+ "@types/node": {
+ "version": "12.12.7",
+ "from": "@types/node@*",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.7.tgz"
+ },
+ "abbrev": {
+ "version": "1.1.1",
+ "from": "abbrev@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"
+ },
+ "ajv": {
+ "version": "6.10.2",
+ "from": "ajv@^6.5.5",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz"
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "from": "ansi-regex@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "from": "ansi-styles@^3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
+ },
+ "anymatch": {
+ "version": "2.0.0",
+ "from": "anymatch@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "dependencies": {
+ "normalize-path": {
+ "version": "2.1.1",
+ "from": "normalize-path@>=2.1.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz"
+ }
+ }
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "from": "argparse@>=1.0.7 <2.0.0",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "dependencies": {
+ "sprintf-js": {
+ "version": "1.0.3",
+ "from": "sprintf-js@>=1.0.2 <1.1.0",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"
+ }
+ }
+ },
+ "arr-diff": {
+ "version": "4.0.0",
+ "from": "arr-diff@>=4.0.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz"
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "from": "arr-flatten@>=1.1.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz"
+ },
+ "arr-union": {
+ "version": "3.1.0",
+ "from": "arr-union@>=3.1.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz"
+ },
+ "array-each": {
+ "version": "1.0.1",
+ "from": "array-each@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz"
+ },
+ "array-find-index": {
+ "version": "1.0.2",
+ "from": "array-find-index@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz"
+ },
+ "array-slice": {
+ "version": "1.1.0",
+ "from": "array-slice@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz"
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "from": "array-unique@>=0.3.2 <0.4.0",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz"
+ },
+ "asn1": {
+ "version": "0.2.4",
+ "from": "asn1@~0.2.3",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz"
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "from": "assert-plus@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
+ },
+ "assign-symbols": {
+ "version": "1.0.0",
+ "from": "assign-symbols@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz"
+ },
+ "async": {
+ "version": "1.5.2",
+ "from": "async@>=1.5.2 <1.6.0",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz"
+ },
+ "async-each": {
+ "version": "1.0.3",
+ "from": "async-each@^1.0.1",
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz"
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "from": "asynckit@>=0.4.0 <0.5.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
+ },
+ "atob": {
+ "version": "2.1.2",
+ "from": "atob@>=2.1.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz"
+ },
+ "aws-sign2": {
+ "version": "0.7.0",
+ "from": "aws-sign2@>=0.7.0 <0.8.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz"
+ },
+ "aws4": {
+ "version": "1.8.0",
+ "from": "aws4@>=1.8.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz"
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "from": "balanced-match@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"
+ },
+ "base": {
+ "version": "0.11.2",
+ "from": "base@>=0.11.1 <0.12.0",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "from": "define-property@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz"
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "from": "is-accessor-descriptor@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz"
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "from": "is-data-descriptor@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz"
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "from": "is-descriptor@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz"
+ }
+ }
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "from": "bcrypt-pbkdf@^1.0.0",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"
+ },
+ "binary-extensions": {
+ "version": "1.13.1",
+ "from": "binary-extensions@^1.0.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz"
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "from": "brace-expansion@>=1.1.7 <2.0.0",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
+ },
+ "braces": {
+ "version": "2.3.2",
+ "from": "braces@^2.3.1",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "from": "extend-shallow@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz"
+ }
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.1",
+ "from": "buffer-from@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz"
+ },
+ "builtin-modules": {
+ "version": "2.0.0",
+ "from": "builtin-modules@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-2.0.0.tgz"
+ },
+ "cache-base": {
+ "version": "1.0.1",
+ "from": "cache-base@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz"
+ },
+ "camelcase": {
+ "version": "2.1.1",
+ "from": "camelcase@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz"
+ },
+ "camelcase-keys": {
+ "version": "2.1.0",
+ "from": "camelcase-keys@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz"
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "from": "caseless@>=0.12.0 <0.13.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "from": "chalk@~2.4.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
+ },
+ "chokidar": {
+ "version": "2.1.8",
+ "from": "chokidar@^2.0.4",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+ "dependencies": {
+ "is-glob": {
+ "version": "4.0.1",
+ "from": "is-glob@^4.0.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz"
+ }
+ }
+ },
+ "class-utils": {
+ "version": "0.3.6",
+ "from": "class-utils@>=0.3.5 <0.4.0",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
+ }
+ }
+ },
+ "coffeescript": {
+ "version": "1.10.0",
+ "from": "coffeescript@>=1.10.0 <1.11.0",
+ "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.10.0.tgz"
+ },
+ "collection-visit": {
+ "version": "1.0.0",
+ "from": "collection-visit@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz"
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "from": "color-convert@^1.9.0",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "from": "color-name@1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
+ },
+ "colors": {
+ "version": "1.1.2",
+ "from": "colors@>=1.1.2 <1.2.0",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz"
+ },
+ "combined-stream": {
+ "version": "1.0.8",
+ "from": "combined-stream@~1.0.6",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
+ },
+ "commander": {
+ "version": "2.19.0",
+ "from": "commander@~2.19.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz"
+ },
+ "component-emitter": {
+ "version": "1.3.0",
+ "from": "component-emitter@^1.2.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz"
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "from": "concat-map@0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+ },
+ "concat-stream": {
+ "version": "1.6.2",
+ "from": "concat-stream@1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz"
+ },
+ "copy-descriptor": {
+ "version": "0.1.1",
+ "from": "copy-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz"
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "from": "core-util-is@>=1.0.0 <1.1.0",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
+ },
+ "csproj2ts": {
+ "version": "1.1.0",
+ "from": "csproj2ts@>=1.1.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/csproj2ts/-/csproj2ts-1.1.0.tgz"
+ },
+ "currently-unhandled": {
+ "version": "0.4.1",
+ "from": "currently-unhandled@>=0.4.1 <0.5.0",
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz"
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "from": "dashdash@>=1.12.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz"
+ },
+ "dateformat": {
+ "version": "1.0.12",
+ "from": "dateformat@>=1.0.12 <1.1.0",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz"
+ },
+ "debug": {
+ "version": "2.6.9",
+ "from": "debug@>=2.2.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "from": "decamelize@>=1.1.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"
+ },
+ "decode-uri-component": {
+ "version": "0.2.0",
+ "from": "decode-uri-component@>=0.2.0 <0.3.0",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz"
+ },
+ "define-properties": {
+ "version": "1.1.3",
+ "from": "define-properties@>=1.1.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz"
+ },
+ "define-property": {
+ "version": "2.0.2",
+ "from": "define-property@>=2.0.2 <3.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "dependencies": {
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "from": "is-accessor-descriptor@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz"
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "from": "is-data-descriptor@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz"
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "from": "is-descriptor@>=1.0.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz"
+ }
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "from": "delayed-stream@>=1.0.0 <1.1.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
+ },
+ "detect-file": {
+ "version": "1.0.0",
+ "from": "detect-file@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz"
+ },
+ "detect-indent": {
+ "version": "4.0.0",
+ "from": "detect-indent@>=4.0.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz"
+ },
+ "detect-newline": {
+ "version": "2.1.0",
+ "from": "detect-newline@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz"
+ },
+ "diff": {
+ "version": "4.0.1",
+ "from": "diff@^4.0.1",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz"
+ },
+ "duplexer": {
+ "version": "0.1.1",
+ "from": "duplexer@>=0.1.1 <0.2.0",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz"
+ },
+ "ecc-jsbn": {
+ "version": "0.1.2",
+ "from": "ecc-jsbn@>=0.1.1 <0.2.0",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "from": "error-ex@>=1.2.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz"
+ },
+ "es-abstract": {
+ "version": "1.16.0",
+ "from": "es-abstract@^1.5.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz"
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "from": "es-to-primitive@^1.2.0",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz"
+ },
+ "es6-promise": {
+ "version": "4.2.8",
+ "from": "es6-promise@^4.0.3",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz"
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "from": "escape-string-regexp@>=1.0.5 <2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "from": "esprima@^4.0.0",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz"
+ },
+ "estree-walker": {
+ "version": "0.6.1",
+ "from": "estree-walker@^0.6.1",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz"
+ },
+ "esutils": {
+ "version": "2.0.3",
+ "from": "esutils@^2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"
+ },
+ "eventemitter2": {
+ "version": "0.4.14",
+ "from": "eventemitter2@>=0.4.13 <0.5.0",
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz"
+ },
+ "exit": {
+ "version": "0.1.2",
+ "from": "exit@>=0.1.1 <0.2.0",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz"
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "from": "expand-brackets@>=2.1.4 <3.0.0",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "from": "extend-shallow@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz"
+ }
+ }
+ },
+ "expand-tilde": {
+ "version": "2.0.2",
+ "from": "expand-tilde@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz"
+ },
+ "extend": {
+ "version": "3.0.2",
+ "from": "extend@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz"
+ },
+ "extend-shallow": {
+ "version": "3.0.2",
+ "from": "extend-shallow@>=3.0.2 <4.0.0",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "from": "is-extendable@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz"
+ }
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "from": "extglob@>=2.0.4 <3.0.0",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "from": "define-property@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz"
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "from": "extend-shallow@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz"
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "from": "is-accessor-descriptor@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz"
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "from": "is-data-descriptor@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz"
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "from": "is-descriptor@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz"
+ }
+ }
+ },
+ "extract-zip": {
+ "version": "1.6.7",
+ "from": "extract-zip@>=1.6.5 <2.0.0",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz"
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "from": "extsprintf@1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"
+ },
+ "fast-deep-equal": {
+ "version": "2.0.1",
+ "from": "fast-deep-equal@^2.0.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz"
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.0.0",
+ "from": "fast-json-stable-stringify@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz"
+ },
+ "fd-slicer": {
+ "version": "1.0.1",
+ "from": "fd-slicer@>=1.0.1 <1.1.0",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz"
+ },
+ "figures": {
+ "version": "1.7.0",
+ "from": "figures@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz"
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "from": "fill-range@>=4.0.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "from": "extend-shallow@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz"
+ }
+ }
+ },
+ "find-up": {
+ "version": "1.1.2",
+ "from": "find-up@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz"
+ },
+ "findup-sync": {
+ "version": "0.3.0",
+ "from": "findup-sync@>=0.3.0 <0.4.0",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz",
+ "dependencies": {
+ "glob": {
+ "version": "5.0.15",
+ "from": "glob@>=5.0.0 <5.1.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz"
+ }
+ }
+ },
+ "fined": {
+ "version": "1.2.0",
+ "from": "fined@^1.0.1",
+ "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz"
+ },
+ "flagged-respawn": {
+ "version": "1.0.1",
+ "from": "flagged-respawn@^1.0.0",
+ "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz"
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "from": "for-in@>=1.0.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz"
+ },
+ "for-own": {
+ "version": "1.0.0",
+ "from": "for-own@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz"
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "from": "forever-agent@>=0.6.1 <0.7.0",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"
+ },
+ "form-data": {
+ "version": "2.3.3",
+ "from": "form-data@~2.3.2",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz"
+ },
+ "fragment-cache": {
+ "version": "0.2.1",
+ "from": "fragment-cache@>=0.2.1 <0.3.0",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz"
+ },
+ "fs-extra": {
+ "version": "1.0.0",
+ "from": "fs-extra@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz"
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "from": "fs.realpath@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "from": "function-bind@>=1.1.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
+ },
+ "get-stdin": {
+ "version": "4.0.1",
+ "from": "get-stdin@>=4.0.1 <5.0.0",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz"
+ },
+ "get-value": {
+ "version": "2.0.6",
+ "from": "get-value@>=2.0.6 <3.0.0",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz"
+ },
+ "getobject": {
+ "version": "0.1.0",
+ "from": "getobject@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz"
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "from": "getpass@>=0.1.1 <0.2.0",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz"
+ },
+ "glob": {
+ "version": "7.0.6",
+ "from": "glob@>=7.0.0 <7.1.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz"
+ },
+ "glob-parent": {
+ "version": "3.1.0",
+ "from": "glob-parent@>=3.1.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz"
+ },
+ "global-modules": {
+ "version": "1.0.0",
+ "from": "global-modules@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz"
+ },
+ "global-prefix": {
+ "version": "1.0.2",
+ "from": "global-prefix@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz"
+ },
+ "graceful-fs": {
+ "version": "4.2.3",
+ "from": "graceful-fs@^4.1.2",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz"
+ },
+ "grunt": {
+ "version": "1.0.4",
+ "from": "grunt@^1.0.1",
+ "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.4.tgz",
+ "dependencies": {
+ "grunt-cli": {
+ "version": "1.2.0",
+ "from": "grunt-cli@>=1.2.0 <1.3.0",
+ "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz"
+ },
+ "resolve": {
+ "version": "1.1.7",
+ "from": "resolve@>=1.1.0 <1.2.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz"
+ }
+ }
+ },
+ "grunt-cli": {
+ "version": "1.3.2",
+ "from": "grunt-cli@^1.3.2",
+ "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.3.2.tgz",
+ "dependencies": {
+ "nopt": {
+ "version": "4.0.1",
+ "from": "nopt@>=4.0.1 <4.1.0",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz"
+ }
+ }
+ },
+ "grunt-contrib-qunit": {
+ "version": "2.0.0",
+ "from": "grunt-contrib-qunit@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-qunit/-/grunt-contrib-qunit-2.0.0.tgz"
+ },
+ "grunt-contrib-uglify": {
+ "version": "3.4.0",
+ "from": "grunt-contrib-uglify@^3.1.0",
+ "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-3.4.0.tgz",
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "from": "ansi-styles@>=2.2.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz"
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "from": "chalk@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "from": "supports-color@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"
+ }
+ }
+ },
+ "grunt-known-options": {
+ "version": "1.1.1",
+ "from": "grunt-known-options@>=1.1.0 <1.2.0",
+ "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz"
+ },
+ "grunt-legacy-log": {
+ "version": "2.0.0",
+ "from": "grunt-legacy-log@>=2.0.0 <2.1.0",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-2.0.0.tgz"
+ },
+ "grunt-legacy-log-utils": {
+ "version": "2.0.1",
+ "from": "grunt-legacy-log-utils@>=2.0.0 <2.1.0",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.0.1.tgz"
+ },
+ "grunt-legacy-util": {
+ "version": "1.1.1",
+ "from": "grunt-legacy-util@>=1.1.1 <1.2.0",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.1.1.tgz"
+ },
+ "grunt-lib-phantomjs": {
+ "version": "1.1.0",
+ "from": "grunt-lib-phantomjs@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/grunt-lib-phantomjs/-/grunt-lib-phantomjs-1.1.0.tgz"
+ },
+ "grunt-run": {
+ "version": "0.8.1",
+ "from": "grunt-run@>=0.8.1 <0.9.0",
+ "resolved": "https://registry.npmjs.org/grunt-run/-/grunt-run-0.8.1.tgz"
+ },
+ "grunt-ts": {
+ "version": "6.0.0-beta.22",
+ "from": "grunt-ts@^6.0.0-beta.22",
+ "resolved": "https://registry.npmjs.org/grunt-ts/-/grunt-ts-6.0.0-beta.22.tgz",
+ "dependencies": {
+ "es6-promise": {
+ "version": "0.1.2",
+ "from": "es6-promise@>=0.1.1 <0.2.0",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-0.1.2.tgz"
+ },
+ "rimraf": {
+ "version": "2.2.6",
+ "from": "rimraf@2.2.6",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.6.tgz"
+ }
+ }
+ },
+ "grunt-tslint": {
+ "version": "5.0.2",
+ "from": "grunt-tslint@>=5.0.2 <6.0.0",
+ "resolved": "https://registry.npmjs.org/grunt-tslint/-/grunt-tslint-5.0.2.tgz"
+ },
+ "gzip-size": {
+ "version": "3.0.0",
+ "from": "gzip-size@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz"
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "from": "har-schema@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz"
+ },
+ "har-validator": {
+ "version": "5.1.3",
+ "from": "har-validator@~5.1.0",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz"
+ },
+ "has": {
+ "version": "1.0.3",
+ "from": "has@>=1.0.3 <2.0.0",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz"
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "from": "has-ansi@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz"
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "from": "has-flag@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
+ },
+ "has-symbols": {
+ "version": "1.0.0",
+ "from": "has-symbols@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz"
+ },
+ "has-value": {
+ "version": "1.0.0",
+ "from": "has-value@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz"
+ },
+ "has-values": {
+ "version": "1.0.0",
+ "from": "has-values@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+ "dependencies": {
+ "kind-of": {
+ "version": "4.0.0",
+ "from": "kind-of@>=4.0.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz"
+ }
+ }
+ },
+ "hasha": {
+ "version": "2.2.0",
+ "from": "hasha@>=2.2.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz"
+ },
+ "homedir-polyfill": {
+ "version": "1.0.3",
+ "from": "homedir-polyfill@^1.0.1",
+ "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz"
+ },
+ "hooker": {
+ "version": "0.2.3",
+ "from": "hooker@>=0.2.3 <0.3.0",
+ "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz"
+ },
+ "hosted-git-info": {
+ "version": "2.8.5",
+ "from": "hosted-git-info@^2.1.4",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz"
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "from": "http-signature@>=1.2.0 <1.3.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz"
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "from": "iconv-lite@~0.4.13",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"
+ },
+ "indent-string": {
+ "version": "2.1.0",
+ "from": "indent-string@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz"
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "from": "inflight@>=1.0.4 <2.0.0",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "from": "inherits@2",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
+ },
+ "ini": {
+ "version": "1.3.5",
+ "from": "ini@>=1.3.4 <2.0.0",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz"
+ },
+ "interpret": {
+ "version": "1.1.0",
+ "from": "interpret@>=1.1.0 <1.2.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz"
+ },
+ "is-absolute": {
+ "version": "1.0.0",
+ "from": "is-absolute@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz"
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "from": "is-accessor-descriptor@>=0.1.6 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "from": "kind-of@>=3.0.2 <4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
+ }
+ }
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "from": "is-arrayish@>=0.2.1 <0.3.0",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
+ },
+ "is-binary-path": {
+ "version": "1.0.1",
+ "from": "is-binary-path@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz"
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "from": "is-buffer@>=1.1.5 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz"
+ },
+ "is-callable": {
+ "version": "1.1.4",
+ "from": "is-callable@^1.1.4",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz"
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "from": "is-data-descriptor@>=0.1.4 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "from": "kind-of@>=3.0.2 <4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
+ }
+ }
+ },
+ "is-date-object": {
+ "version": "1.0.1",
+ "from": "is-date-object@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz"
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "from": "is-descriptor@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "dependencies": {
+ "kind-of": {
+ "version": "5.1.0",
+ "from": "kind-of@>=5.0.0 <6.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz"
+ }
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "from": "is-extendable@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz"
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "from": "is-extglob@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
+ },
+ "is-finite": {
+ "version": "1.0.2",
+ "from": "is-finite@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz"
+ },
+ "is-glob": {
+ "version": "3.1.0",
+ "from": "is-glob@>=3.1.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz"
+ },
+ "is-module": {
+ "version": "1.0.0",
+ "from": "is-module@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz"
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "from": "is-number@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "from": "kind-of@>=3.0.2 <4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
+ }
+ }
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "from": "is-plain-object@>=2.0.4 <3.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz"
+ },
+ "is-regex": {
+ "version": "1.0.4",
+ "from": "is-regex@>=1.0.4 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz"
+ },
+ "is-relative": {
+ "version": "1.0.0",
+ "from": "is-relative@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz"
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "from": "is-stream@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz"
+ },
+ "is-symbol": {
+ "version": "1.0.2",
+ "from": "is-symbol@^1.0.2",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz"
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "from": "is-typedarray@>=1.0.0 <1.1.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"
+ },
+ "is-unc-path": {
+ "version": "1.0.0",
+ "from": "is-unc-path@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz"
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "from": "is-utf8@>=0.2.0 <0.3.0",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz"
+ },
+ "is-windows": {
+ "version": "1.0.2",
+ "from": "is-windows@>=1.0.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz"
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "from": "isarray@1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "from": "isexe@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "from": "isobject@>=3.0.1 <4.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz"
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "from": "isstream@>=0.1.2 <0.2.0",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"
+ },
+ "jest-worker": {
+ "version": "24.9.0",
+ "from": "jest-worker@^24.0.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz",
+ "dependencies": {
+ "supports-color": {
+ "version": "6.1.0",
+ "from": "supports-color@^6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz"
+ }
+ }
+ },
+ "js-tokens": {
+ "version": "4.0.0",
+ "from": "js-tokens@>=4.0.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
+ },
+ "js-yaml": {
+ "version": "3.13.1",
+ "from": "js-yaml@~3.13.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz"
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "from": "jsbn@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"
+ },
+ "jsmin2": {
+ "version": "1.2.1",
+ "from": "jsmin2@>=1.2.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/jsmin2/-/jsmin2-1.2.1.tgz"
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "from": "json-schema@0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz"
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "from": "json-schema-traverse@>=0.4.1 <0.5.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "from": "json-stringify-safe@>=5.0.1 <5.1.0",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
+ },
+ "jsonfile": {
+ "version": "2.4.0",
+ "from": "jsonfile@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz"
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "from": "jsprim@>=1.2.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz"
+ },
+ "kew": {
+ "version": "0.7.0",
+ "from": "kew@>=0.7.0 <0.8.0",
+ "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz"
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "from": "kind-of@>=6.0.2 <7.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz"
+ },
+ "klaw": {
+ "version": "1.3.1",
+ "from": "klaw@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz"
+ },
+ "liftoff": {
+ "version": "2.5.0",
+ "from": "liftoff@>=2.5.0 <2.6.0",
+ "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz",
+ "dependencies": {
+ "findup-sync": {
+ "version": "2.0.0",
+ "from": "findup-sync@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz"
+ }
+ }
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "from": "load-json-file@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz"
+ },
+ "lodash": {
+ "version": "4.17.15",
+ "from": "lodash@~4.17.5",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz"
+ },
+ "loud-rejection": {
+ "version": "1.6.0",
+ "from": "loud-rejection@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz"
+ },
+ "magic-string": {
+ "version": "0.25.4",
+ "from": "magic-string@^0.25.2",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.4.tgz"
+ },
+ "make-iterator": {
+ "version": "1.0.1",
+ "from": "make-iterator@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz"
+ },
+ "map-cache": {
+ "version": "0.2.2",
+ "from": "map-cache@>=0.2.2 <0.3.0",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz"
+ },
+ "map-obj": {
+ "version": "1.0.1",
+ "from": "map-obj@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz"
+ },
+ "map-visit": {
+ "version": "1.0.0",
+ "from": "map-visit@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz"
+ },
+ "maxmin": {
+ "version": "2.1.0",
+ "from": "maxmin@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-2.1.0.tgz",
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "from": "ansi-styles@>=2.2.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz"
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "from": "chalk@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "from": "supports-color@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"
+ }
+ }
+ },
+ "meow": {
+ "version": "3.7.0",
+ "from": "meow@>=3.3.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz"
+ },
+ "merge-stream": {
+ "version": "2.0.0",
+ "from": "merge-stream@^2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz"
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "from": "micromatch@^3.0.4",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz"
+ },
+ "mime-db": {
+ "version": "1.40.0",
+ "from": "mime-db@1.40.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz"
+ },
+ "mime-types": {
+ "version": "2.1.24",
+ "from": "mime-types@~2.1.19",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz"
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "from": "minimatch@>=3.0.2 <3.1.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "from": "minimist@>=1.1.3 <2.0.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz"
+ },
+ "mixin-deep": {
+ "version": "1.3.2",
+ "from": "mixin-deep@^1.2.0",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "from": "is-extendable@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz"
+ }
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "from": "mkdirp@>=0.5.1 <0.6.0",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "dependencies": {
+ "minimist": {
+ "version": "0.0.8",
+ "from": "minimist@0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+ }
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "from": "ms@2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
+ },
+ "nanomatch": {
+ "version": "1.2.13",
+ "from": "nanomatch@>=1.2.9 <2.0.0",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz"
+ },
+ "ncp": {
+ "version": "0.5.1",
+ "from": "ncp@0.5.1",
+ "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.5.1.tgz"
+ },
+ "nopt": {
+ "version": "3.0.6",
+ "from": "nopt@>=3.0.6 <3.1.0",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz"
+ },
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "from": "normalize-package-data@^2.3.4",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz"
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "from": "normalize-path@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "from": "number-is-nan@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
+ },
+ "oauth-sign": {
+ "version": "0.9.0",
+ "from": "oauth-sign@>=0.9.0 <0.10.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz"
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "from": "object-assign@>=4.0.1 <5.0.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
+ },
+ "object-copy": {
+ "version": "0.1.0",
+ "from": "object-copy@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "from": "kind-of@>=3.0.3 <4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
+ }
+ }
+ },
+ "object-inspect": {
+ "version": "1.7.0",
+ "from": "object-inspect@^1.6.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz"
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "from": "object-keys@^1.0.12",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz"
+ },
+ "object-visit": {
+ "version": "1.0.1",
+ "from": "object-visit@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz"
+ },
+ "object.defaults": {
+ "version": "1.1.0",
+ "from": "object.defaults@>=1.1.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz"
+ },
+ "object.getownpropertydescriptors": {
+ "version": "2.0.3",
+ "from": "object.getownpropertydescriptors@>=2.0.3 <3.0.0",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz"
+ },
+ "object.map": {
+ "version": "1.0.1",
+ "from": "object.map@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz"
+ },
+ "object.pick": {
+ "version": "1.3.0",
+ "from": "object.pick@>=1.3.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz"
+ },
+ "once": {
+ "version": "1.4.0",
+ "from": "once@>=1.3.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "from": "os-homedir@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz"
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "from": "os-tmpdir@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"
+ },
+ "osenv": {
+ "version": "0.1.5",
+ "from": "osenv@^0.1.4",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz"
+ },
+ "package": {
+ "version": "1.0.1",
+ "from": "package@>=1.0.0 <1.2.0",
+ "resolved": "https://registry.npmjs.org/package/-/package-1.0.1.tgz"
+ },
+ "parse-filepath": {
+ "version": "1.0.2",
+ "from": "parse-filepath@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz"
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "from": "parse-json@>=2.2.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz"
+ },
+ "parse-passwd": {
+ "version": "1.0.0",
+ "from": "parse-passwd@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz"
+ },
+ "pascalcase": {
+ "version": "0.1.1",
+ "from": "pascalcase@>=0.1.1 <0.2.0",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz"
+ },
+ "path-dirname": {
+ "version": "1.0.2",
+ "from": "path-dirname@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz"
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "from": "path-exists@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz"
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "from": "path-is-absolute@>=1.0.0 <1.1.0",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "from": "path-parse@>=1.0.6 <2.0.0",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz"
+ },
+ "path-root": {
+ "version": "0.1.1",
+ "from": "path-root@>=0.1.1 <0.2.0",
+ "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz"
+ },
+ "path-root-regex": {
+ "version": "0.1.2",
+ "from": "path-root-regex@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz"
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "from": "path-type@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz"
+ },
+ "pend": {
+ "version": "1.2.0",
+ "from": "pend@>=1.2.0 <1.3.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz"
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "from": "performance-now@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz"
+ },
+ "phantomjs-prebuilt": {
+ "version": "2.1.16",
+ "from": "phantomjs-prebuilt@>=2.1.3 <3.0.0",
+ "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz"
+ },
+ "pify": {
+ "version": "2.3.0",
+ "from": "pify@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "from": "pinkie@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "from": "pinkie-promise@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
+ },
+ "posix-character-classes": {
+ "version": "0.1.1",
+ "from": "posix-character-classes@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz"
+ },
+ "pretty-bytes": {
+ "version": "3.0.1",
+ "from": "pretty-bytes@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz"
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "from": "process-nextick-args@~2.0.0",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz"
+ },
+ "progress": {
+ "version": "1.1.8",
+ "from": "progress@>=1.1.8 <2.0.0",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz"
+ },
+ "psl": {
+ "version": "1.4.0",
+ "from": "psl@^1.1.24",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz"
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "from": "punycode@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"
+ },
+ "qs": {
+ "version": "6.5.2",
+ "from": "qs@~6.5.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz"
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "from": "read-pkg@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz"
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "from": "read-pkg-up@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz"
+ },
+ "readable-stream": {
+ "version": "2.3.6",
+ "from": "readable-stream@^2.2.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz"
+ },
+ "readdirp": {
+ "version": "2.2.1",
+ "from": "readdirp@^2.2.1",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz"
+ },
+ "rechoir": {
+ "version": "0.6.2",
+ "from": "rechoir@>=0.6.2 <0.7.0",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz"
+ },
+ "redent": {
+ "version": "1.0.0",
+ "from": "redent@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz"
+ },
+ "regex-not": {
+ "version": "1.0.2",
+ "from": "regex-not@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz"
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "from": "remove-trailing-separator@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz"
+ },
+ "repeat-element": {
+ "version": "1.1.3",
+ "from": "repeat-element@>=1.1.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz"
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "from": "repeat-string@>=1.6.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz"
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "from": "repeating@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz"
+ },
+ "request": {
+ "version": "2.88.0",
+ "from": "request@^2.81.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz"
+ },
+ "request-progress": {
+ "version": "2.0.1",
+ "from": "request-progress@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz"
+ },
+ "resolve": {
+ "version": "1.12.0",
+ "from": "resolve@^1.10.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz"
+ },
+ "resolve-dir": {
+ "version": "1.0.1",
+ "from": "resolve-dir@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz"
+ },
+ "resolve-url": {
+ "version": "0.2.1",
+ "from": "resolve-url@>=0.2.1 <0.3.0",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz"
+ },
+ "ret": {
+ "version": "0.1.15",
+ "from": "ret@>=0.1.10 <0.2.0",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz"
+ },
+ "rimraf": {
+ "version": "2.6.3",
+ "from": "rimraf@~2.6.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "dependencies": {
+ "glob": {
+ "version": "7.1.6",
+ "from": "glob@^7.1.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz"
+ }
+ }
+ },
+ "rollup": {
+ "version": "0.66.6",
+ "from": "rollup@^0.66.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.66.6.tgz"
+ },
+ "rollup-plugin-node-resolve": {
+ "version": "3.4.0",
+ "from": "rollup-plugin-node-resolve@^3.4.0",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.4.0.tgz"
+ },
+ "rollup-plugin-replace": {
+ "version": "2.2.0",
+ "from": "rollup-plugin-replace@^2.1.0",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-replace/-/rollup-plugin-replace-2.2.0.tgz"
+ },
+ "rollup-plugin-uglify": {
+ "version": "6.0.3",
+ "from": "rollup-plugin-uglify@^6.0.0",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-uglify/-/rollup-plugin-uglify-6.0.3.tgz"
+ },
+ "rollup-pluginutils": {
+ "version": "2.8.2",
+ "from": "rollup-pluginutils@^2.6.0",
+ "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz"
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "from": "safe-buffer@~5.1.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
+ },
+ "safe-regex": {
+ "version": "1.1.0",
+ "from": "safe-regex@>=1.1.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz"
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "from": "safer-buffer@>=2.1.2 <3.0.0",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
+ },
+ "sax": {
+ "version": "1.2.4",
+ "from": "sax@>=0.6.0",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz"
+ },
+ "semver": {
+ "version": "5.7.1",
+ "from": "semver@2 || 3 || 4 || 5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"
+ },
+ "serialize-javascript": {
+ "version": "1.9.1",
+ "from": "serialize-javascript@^1.9.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz"
+ },
+ "set-value": {
+ "version": "2.0.1",
+ "from": "set-value@^2.0.0",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "from": "extend-shallow@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz"
+ }
+ }
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "from": "signal-exit@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz"
+ },
+ "snapdragon": {
+ "version": "0.8.2",
+ "from": "snapdragon@>=0.8.1 <0.9.0",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "from": "extend-shallow@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz"
+ }
+ }
+ },
+ "snapdragon-node": {
+ "version": "2.1.1",
+ "from": "snapdragon-node@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "from": "define-property@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz"
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "from": "is-accessor-descriptor@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz"
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "from": "is-data-descriptor@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz"
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "from": "is-descriptor@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz"
+ }
+ }
+ },
+ "snapdragon-util": {
+ "version": "3.0.1",
+ "from": "snapdragon-util@>=3.0.1 <4.0.0",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "from": "kind-of@>=3.2.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
+ }
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "from": "source-map@>=0.5.6 <0.6.0",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
+ },
+ "source-map-resolve": {
+ "version": "0.5.2",
+ "from": "source-map-resolve@>=0.5.0 <0.6.0",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz"
+ },
+ "source-map-url": {
+ "version": "0.4.0",
+ "from": "source-map-url@>=0.4.0 <0.5.0",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz"
+ },
+ "sourcemap-codec": {
+ "version": "1.4.6",
+ "from": "sourcemap-codec@^1.4.4",
+ "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.6.tgz"
+ },
+ "spdx-correct": {
+ "version": "3.1.0",
+ "from": "spdx-correct@^3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz"
+ },
+ "spdx-exceptions": {
+ "version": "2.2.0",
+ "from": "spdx-exceptions@^2.1.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz"
+ },
+ "spdx-expression-parse": {
+ "version": "3.0.0",
+ "from": "spdx-expression-parse@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz"
+ },
+ "spdx-license-ids": {
+ "version": "3.0.5",
+ "from": "spdx-license-ids@^3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz"
+ },
+ "split-string": {
+ "version": "3.1.0",
+ "from": "split-string@>=3.0.2 <4.0.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz"
+ },
+ "sprintf-js": {
+ "version": "1.1.2",
+ "from": "sprintf-js@^1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz"
+ },
+ "sshpk": {
+ "version": "1.16.1",
+ "from": "sshpk@^1.7.0",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz"
+ },
+ "static-extend": {
+ "version": "0.1.2",
+ "from": "static-extend@>=0.1.1 <0.2.0",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "from": "define-property@>=0.2.5 <0.3.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
+ }
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "from": "string_decoder@~1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"
+ },
+ "string.prototype.trimleft": {
+ "version": "2.1.0",
+ "from": "string.prototype.trimleft@^2.1.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz"
+ },
+ "string.prototype.trimright": {
+ "version": "2.1.0",
+ "from": "string.prototype.trimright@^2.1.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz"
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "from": "strip-ansi@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "from": "strip-bom@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz"
+ },
+ "strip-indent": {
+ "version": "1.0.1",
+ "from": "strip-indent@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz"
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "from": "supports-color@^5.3.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
+ },
+ "temporary": {
+ "version": "0.0.8",
+ "from": "temporary@>=0.0.8 <0.0.9",
+ "resolved": "https://registry.npmjs.org/temporary/-/temporary-0.0.8.tgz"
+ },
+ "throttleit": {
+ "version": "1.0.0",
+ "from": "throttleit@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz"
+ },
+ "to-object-path": {
+ "version": "0.3.0",
+ "from": "to-object-path@>=0.3.0 <0.4.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "from": "kind-of@>=3.0.2 <4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
+ }
+ }
+ },
+ "to-regex": {
+ "version": "3.0.2",
+ "from": "to-regex@^3.0.2",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz"
+ },
+ "to-regex-range": {
+ "version": "2.1.1",
+ "from": "to-regex-range@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz"
+ },
+ "tough-cookie": {
+ "version": "2.4.3",
+ "from": "tough-cookie@~2.4.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
+ "dependencies": {
+ "punycode": {
+ "version": "1.4.1",
+ "from": "punycode@>=1.4.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"
+ }
+ }
+ },
+ "trim-newlines": {
+ "version": "1.0.0",
+ "from": "trim-newlines@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz"
+ },
+ "tslib": {
+ "version": "1.10.0",
+ "from": "tslib@^1.9.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz"
+ },
+ "tslint": {
+ "version": "5.20.1",
+ "from": "tslint@^5.19.0",
+ "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz",
+ "dependencies": {
+ "builtin-modules": {
+ "version": "1.1.1",
+ "from": "builtin-modules@>=1.1.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz"
+ },
+ "glob": {
+ "version": "7.1.6",
+ "from": "glob@^7.1.1",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz"
+ }
+ }
+ },
+ "tslint-config-prettier": {
+ "version": "1.18.0",
+ "from": "tslint-config-prettier@^1.18.0",
+ "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz"
+ },
+ "tslint-microsoft-contrib": {
+ "version": "5.2.1",
+ "from": "tslint-microsoft-contrib@^5.2.1",
+ "resolved": "https://registry.npmjs.org/tslint-microsoft-contrib/-/tslint-microsoft-contrib-5.2.1.tgz",
+ "dependencies": {
+ "tsutils": {
+ "version": "2.28.0",
+ "from": "tsutils@^2.27.2 <2.29.0",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.28.0.tgz"
+ }
+ }
+ },
+ "tsutils": {
+ "version": "2.29.0",
+ "from": "tsutils@^2.29.0",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz"
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "from": "tunnel-agent@>=0.6.0 <0.7.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "from": "tweetnacl@>=0.14.0 <0.15.0",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "from": "typedarray@>=0.0.6 <0.0.7",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"
+ },
+ "typescript": {
+ "version": "2.5.3",
+ "from": "typescript@2.5.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.5.3.tgz"
+ },
+ "uglify-js": {
+ "version": "3.4.10",
+ "from": "uglify-js@~3.4.0",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz",
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "from": "source-map@>=0.6.1 <0.7.0",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
+ }
+ }
+ },
+ "unc-path-regex": {
+ "version": "0.1.2",
+ "from": "unc-path-regex@>=0.1.2 <0.2.0",
+ "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz"
+ },
+ "underscore.string": {
+ "version": "3.3.5",
+ "from": "underscore.string@~3.3.4",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz"
+ },
+ "union-value": {
+ "version": "1.0.1",
+ "from": "union-value@^1.0.0",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz"
+ },
+ "unset-value": {
+ "version": "1.0.0",
+ "from": "unset-value@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "dependencies": {
+ "has-value": {
+ "version": "0.3.1",
+ "from": "has-value@>=0.3.1 <0.4.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "dependencies": {
+ "isobject": {
+ "version": "2.1.0",
+ "from": "isobject@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz"
+ }
+ }
+ },
+ "has-values": {
+ "version": "0.1.4",
+ "from": "has-values@>=0.1.4 <0.2.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz"
+ }
+ }
+ },
+ "upath": {
+ "version": "1.2.0",
+ "from": "upath@^1.1.1",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz"
+ },
+ "uri-js": {
+ "version": "4.2.2",
+ "from": "uri-js@^4.2.2",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz"
+ },
+ "uri-path": {
+ "version": "1.0.0",
+ "from": "uri-path@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz"
+ },
+ "urix": {
+ "version": "0.1.0",
+ "from": "urix@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz"
+ },
+ "use": {
+ "version": "3.1.1",
+ "from": "use@>=3.1.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz"
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "from": "util-deprecate@>=1.0.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
+ },
+ "util.promisify": {
+ "version": "1.0.0",
+ "from": "util.promisify@>=1.0.0 <1.1.0",
+ "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz"
+ },
+ "uuid": {
+ "version": "3.3.3",
+ "from": "uuid@^3.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz"
+ },
+ "v8flags": {
+ "version": "3.1.3",
+ "from": "v8flags@~3.1.1",
+ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz"
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.4",
+ "from": "validate-npm-package-license@>=3.0.1 <4.0.0",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz"
+ },
+ "verror": {
+ "version": "1.10.0",
+ "from": "verror@1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz"
+ },
+ "which": {
+ "version": "1.3.1",
+ "from": "which@~1.3.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz"
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "from": "wrappy@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+ },
+ "xml2js": {
+ "version": "0.4.22",
+ "from": "xml2js@^0.4.19",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.22.tgz"
+ },
+ "xmlbuilder": {
+ "version": "11.0.1",
+ "from": "xmlbuilder@~11.0.0",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz"
+ },
+ "yauzl": {
+ "version": "2.4.1",
+ "from": "yauzl@2.4.1",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz"
+ }
+ }
+}
diff --git a/common/scripts/install-run-rush.js b/common/scripts/install-run-rush.js
new file mode 100644
index 0000000..51bdbbb
--- /dev/null
+++ b/common/scripts/install-run-rush.js
@@ -0,0 +1,51 @@
+"use strict";
+// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
+// See the @microsoft/rush package's LICENSE file for license information.
+Object.defineProperty(exports, "__esModule", { value: true });
+// THIS FILE WAS GENERATED BY A TOOL. ANY MANUAL MODIFICATIONS WILL GET OVERWRITTEN WHENEVER RUSH IS UPGRADED.
+//
+// This script is intended for usage in an automated build environment where the Rush command may not have
+// been preinstalled, or may have an unpredictable version. This script will automatically install the version of Rush
+// specified in the rush.json configuration file (if not already installed), and then pass a command-line to it.
+// An example usage would be:
+//
+// node common/scripts/install-run-rush.js install
+//
+// For more information, see: https://rushjs.io/pages/maintainer/setup_new_repo/
+const path = require("path");
+const fs = require("fs");
+const install_run_1 = require("./install-run");
+const PACKAGE_NAME = '@microsoft/rush';
+function getRushVersion() {
+ const rushJsonFolder = install_run_1.findRushJsonFolder();
+ const rushJsonPath = path.join(rushJsonFolder, install_run_1.RUSH_JSON_FILENAME);
+ try {
+ const rushJsonContents = fs.readFileSync(rushJsonPath, 'utf-8');
+ // Use a regular expression to parse out the rushVersion value because rush.json supports comments,
+ // but JSON.parse does not and we don't want to pull in more dependencies than we need to in this script.
+ const rushJsonMatches = rushJsonContents.match(/\"rushVersion\"\s*\:\s*\"([0-9a-zA-Z.+\-]+)\"/);
+ return rushJsonMatches[1];
+ }
+ catch (e) {
+ throw new Error(`Unable to determine the required version of Rush from rush.json (${rushJsonFolder}). ` +
+ 'The \'rushVersion\' field is either not assigned in rush.json or was specified ' +
+ 'using an unexpected syntax.');
+ }
+}
+function run() {
+ const [nodePath, /* Ex: /bin/node */ // tslint:disable-line:no-unused-variable
+ scriptPath, /* /repo/common/scripts/install-run-rush.js */ // tslint:disable-line:no-unused-variable
+ ...packageBinArgs /* [build, --to, myproject] */] = process.argv;
+ if (process.argv.length < 3) {
+ console.log('Usage: install-run-rush.js [args...]');
+ console.log('Example: install-run-rush.js build --to myproject');
+ process.exit(1);
+ }
+ install_run_1.runWithErrorAndStatusCode(() => {
+ const version = getRushVersion();
+ console.log(`The rush.json configuration requests Rush version ${version}`);
+ return install_run_1.installAndRun(PACKAGE_NAME, version, 'rush', packageBinArgs);
+ });
+}
+run();
+//# sourceMappingURL=install-run-rush.js.map
\ No newline at end of file
diff --git a/common/scripts/install-run.js b/common/scripts/install-run.js
new file mode 100644
index 0000000..0853913
--- /dev/null
+++ b/common/scripts/install-run.js
@@ -0,0 +1,397 @@
+"use strict";
+// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
+// See the @microsoft/rush package's LICENSE file for license information.
+Object.defineProperty(exports, "__esModule", { value: true });
+// THIS FILE WAS GENERATED BY A TOOL. ANY MANUAL MODIFICATIONS WILL GET OVERWRITTEN WHENEVER RUSH IS UPGRADED.
+//
+// This script is intended for usage in an automated build environment where a Node tool may not have
+// been preinstalled, or may have an unpredictable version. This script will automatically install the specified
+// version of the specified tool (if not already installed), and then pass a command-line to it.
+// An example usage would be:
+//
+// node common/scripts/install-run.js rimraf@2.6.2 rimraf -f project1/lib
+//
+// For more information, see: https://rushjs.io/pages/maintainer/setup_new_repo/
+const childProcess = require("child_process");
+const fs = require("fs");
+const os = require("os");
+const path = require("path");
+exports.RUSH_JSON_FILENAME = 'rush.json';
+const INSTALLED_FLAG_FILENAME = 'installed.flag';
+const NODE_MODULES_FOLDER_NAME = 'node_modules';
+const PACKAGE_JSON_FILENAME = 'package.json';
+/**
+ * Parse a package specifier (in the form of name\@version) into name and version parts.
+ */
+function parsePackageSpecifier(rawPackageSpecifier) {
+ rawPackageSpecifier = (rawPackageSpecifier || '').trim();
+ const separatorIndex = rawPackageSpecifier.lastIndexOf('@');
+ let name;
+ let version = undefined;
+ if (separatorIndex === 0) {
+ // The specifier starts with a scope and doesn't have a version specified
+ name = rawPackageSpecifier;
+ }
+ else if (separatorIndex === -1) {
+ // The specifier doesn't have a version
+ name = rawPackageSpecifier;
+ }
+ else {
+ name = rawPackageSpecifier.substring(0, separatorIndex);
+ version = rawPackageSpecifier.substring(separatorIndex + 1);
+ }
+ if (!name) {
+ throw new Error(`Invalid package specifier: ${rawPackageSpecifier}`);
+ }
+ return { name, version };
+}
+/**
+ * Resolve a package specifier to a static version
+ */
+function resolvePackageVersion(rushCommonFolder, { name, version }) {
+ if (!version) {
+ version = '*'; // If no version is specified, use the latest version
+ }
+ if (version.match(/^[a-zA-Z0-9\-\+\.]+$/)) {
+ // If the version contains only characters that we recognize to be used in static version specifiers,
+ // pass the version through
+ return version;
+ }
+ else {
+ // version resolves to
+ try {
+ const rushTempFolder = ensureAndJoinPath(rushCommonFolder, 'temp');
+ const sourceNpmrcFolder = path.join(rushCommonFolder, 'config', 'rush');
+ syncNpmrc(sourceNpmrcFolder, rushTempFolder);
+ const npmPath = getNpmPath();
+ // This returns something that looks like:
+ // @microsoft/rush@3.0.0 '3.0.0'
+ // @microsoft/rush@3.0.1 '3.0.1'
+ // ...
+ // @microsoft/rush@3.0.20 '3.0.20'
+ //
+ const npmVersionSpawnResult = childProcess.spawnSync(npmPath, ['view', `${name}@${version}`, 'version', '--no-update-notifier'], {
+ cwd: rushTempFolder,
+ stdio: []
+ });
+ if (npmVersionSpawnResult.status !== 0) {
+ throw new Error(`"npm view" returned error code ${npmVersionSpawnResult.status}`);
+ }
+ const npmViewVersionOutput = npmVersionSpawnResult.stdout.toString();
+ const versionLines = npmViewVersionOutput.split('\n').filter((line) => !!line);
+ const latestVersion = versionLines[versionLines.length - 1];
+ if (!latestVersion) {
+ throw new Error('No versions found for the specified version range.');
+ }
+ const versionMatches = latestVersion.match(/^.+\s\'(.+)\'$/);
+ if (!versionMatches) {
+ throw new Error(`Invalid npm output ${latestVersion}`);
+ }
+ return versionMatches[1];
+ }
+ catch (e) {
+ throw new Error(`Unable to resolve version ${version} of package ${name}: ${e}`);
+ }
+ }
+}
+let _npmPath = undefined;
+/**
+ * Get the absolute path to the npm executable
+ */
+function getNpmPath() {
+ if (!_npmPath) {
+ try {
+ if (os.platform() === 'win32') {
+ // We're on Windows
+ const whereOutput = childProcess.execSync('where npm', { stdio: [] }).toString();
+ const lines = whereOutput.split(os.EOL).filter((line) => !!line);
+ // take the last result, we are looking for a .cmd command
+ // see https://github.com/Microsoft/web-build-tools/issues/759
+ _npmPath = lines[lines.length - 1];
+ }
+ else {
+ // We aren't on Windows - assume we're on *NIX or Darwin
+ _npmPath = childProcess.execSync('which npm', { stdio: [] }).toString();
+ }
+ }
+ catch (e) {
+ throw new Error(`Unable to determine the path to the NPM tool: ${e}`);
+ }
+ _npmPath = _npmPath.trim();
+ if (!fs.existsSync(_npmPath)) {
+ throw new Error('The NPM executable does not exist');
+ }
+ }
+ return _npmPath;
+}
+exports.getNpmPath = getNpmPath;
+let _rushJsonFolder;
+/**
+ * Find the absolute path to the folder containing rush.json
+ */
+function findRushJsonFolder() {
+ if (!_rushJsonFolder) {
+ let basePath = __dirname;
+ let tempPath = __dirname;
+ do {
+ const testRushJsonPath = path.join(basePath, exports.RUSH_JSON_FILENAME);
+ if (fs.existsSync(testRushJsonPath)) {
+ _rushJsonFolder = basePath;
+ break;
+ }
+ else {
+ basePath = tempPath;
+ }
+ } while (basePath !== (tempPath = path.dirname(basePath))); // Exit the loop when we hit the disk root
+ if (!_rushJsonFolder) {
+ throw new Error('Unable to find rush.json.');
+ }
+ }
+ return _rushJsonFolder;
+}
+exports.findRushJsonFolder = findRushJsonFolder;
+/**
+ * Create missing directories under the specified base directory, and return the resolved directory.
+ *
+ * Does not support "." or ".." path segments.
+ * Assumes the baseFolder exists.
+ */
+function ensureAndJoinPath(baseFolder, ...pathSegments) {
+ let joinedPath = baseFolder;
+ try {
+ for (let pathSegment of pathSegments) {
+ pathSegment = pathSegment.replace(/[\\\/]/g, '+');
+ joinedPath = path.join(joinedPath, pathSegment);
+ if (!fs.existsSync(joinedPath)) {
+ fs.mkdirSync(joinedPath);
+ }
+ }
+ }
+ catch (e) {
+ throw new Error(`Error building local installation folder (${path.join(baseFolder, ...pathSegments)}): ${e}`);
+ }
+ return joinedPath;
+}
+/**
+ * As a workaround, _syncNpmrc() copies the .npmrc file to the target folder, and also trims
+ * unusable lines from the .npmrc file. If the source .npmrc file not exist, then _syncNpmrc()
+ * will delete an .npmrc that is found in the target folder.
+ *
+ * Why are we trimming the .npmrc lines? NPM allows environment variables to be specified in
+ * the .npmrc file to provide different authentication tokens for different registry.
+ * However, if the environment variable is undefined, it expands to an empty string, which
+ * produces a valid-looking mapping with an invalid URL that causes an error. Instead,
+ * we'd prefer to skip that line and continue looking in other places such as the user's
+ * home directory.
+ *
+ * IMPORTANT: THIS CODE SHOULD BE KEPT UP TO DATE WITH Utilities._syncNpmrc()
+ */
+function syncNpmrc(sourceNpmrcFolder, targetNpmrcFolder) {
+ const sourceNpmrcPath = path.join(sourceNpmrcFolder, '.npmrc');
+ const targetNpmrcPath = path.join(targetNpmrcFolder, '.npmrc');
+ try {
+ if (fs.existsSync(sourceNpmrcPath)) {
+ let npmrcFileLines = fs.readFileSync(sourceNpmrcPath).toString().split('\n');
+ npmrcFileLines = npmrcFileLines.map((line) => (line || '').trim());
+ const resultLines = [];
+ // Trim out lines that reference environment variables that aren't defined
+ for (const line of npmrcFileLines) {
+ // This finds environment variable tokens that look like "${VAR_NAME}"
+ const regex = /\$\{([^\}]+)\}/g;
+ const environmentVariables = line.match(regex);
+ let lineShouldBeTrimmed = false;
+ if (environmentVariables) {
+ for (const token of environmentVariables) {
+ // Remove the leading "${" and the trailing "}" from the token
+ const environmentVariableName = token.substring(2, token.length - 1);
+ if (!process.env[environmentVariableName]) {
+ lineShouldBeTrimmed = true;
+ break;
+ }
+ }
+ }
+ if (lineShouldBeTrimmed) {
+ // Example output:
+ // "; MISSING ENVIRONMENT VARIABLE: //my-registry.com/npm/:_authToken=${MY_AUTH_TOKEN}"
+ resultLines.push('; MISSING ENVIRONMENT VARIABLE: ' + line);
+ }
+ else {
+ resultLines.push(line);
+ }
+ }
+ fs.writeFileSync(targetNpmrcPath, resultLines.join(os.EOL));
+ }
+ else if (fs.existsSync(targetNpmrcPath)) {
+ // If the source .npmrc doesn't exist and there is one in the target, delete the one in the target
+ fs.unlinkSync(targetNpmrcPath);
+ }
+ }
+ catch (e) {
+ throw new Error(`Error syncing .npmrc file: ${e}`);
+ }
+}
+/**
+ * Detects if the package in the specified directory is installed
+ */
+function isPackageAlreadyInstalled(packageInstallFolder) {
+ try {
+ const flagFilePath = path.join(packageInstallFolder, INSTALLED_FLAG_FILENAME);
+ if (!fs.existsSync(flagFilePath)) {
+ return false;
+ }
+ const fileContents = fs.readFileSync(flagFilePath).toString();
+ return fileContents.trim() === process.version;
+ }
+ catch (e) {
+ return false;
+ }
+}
+/**
+ * Removes the following files and directories under the specified folder path:
+ * - installed.flag
+ * -
+ * - node_modules
+ */
+function cleanInstallFolder(rushCommonFolder, packageInstallFolder) {
+ try {
+ const flagFile = path.resolve(packageInstallFolder, INSTALLED_FLAG_FILENAME);
+ if (fs.existsSync(flagFile)) {
+ fs.unlinkSync(flagFile);
+ }
+ const packageLockFile = path.resolve(packageInstallFolder, 'package-lock.json');
+ if (fs.existsSync(packageLockFile)) {
+ fs.unlinkSync(packageLockFile);
+ }
+ const nodeModulesFolder = path.resolve(packageInstallFolder, NODE_MODULES_FOLDER_NAME);
+ if (fs.existsSync(nodeModulesFolder)) {
+ const rushRecyclerFolder = ensureAndJoinPath(rushCommonFolder, 'temp', 'rush-recycler', `install-run-${Date.now().toString()}`);
+ fs.renameSync(nodeModulesFolder, rushRecyclerFolder);
+ }
+ }
+ catch (e) {
+ throw new Error(`Error cleaning the package install folder (${packageInstallFolder}): ${e}`);
+ }
+}
+function createPackageJson(packageInstallFolder, name, version) {
+ try {
+ const packageJsonContents = {
+ 'name': 'ci-rush',
+ 'version': '0.0.0',
+ 'dependencies': {
+ [name]: version
+ },
+ 'description': 'DON\'T WARN',
+ 'repository': 'DON\'T WARN',
+ 'license': 'MIT'
+ };
+ const packageJsonPath = path.join(packageInstallFolder, PACKAGE_JSON_FILENAME);
+ fs.writeFileSync(packageJsonPath, JSON.stringify(packageJsonContents, undefined, 2));
+ }
+ catch (e) {
+ throw new Error(`Unable to create package.json: ${e}`);
+ }
+}
+/**
+ * Run "npm install" in the package install folder.
+ */
+function installPackage(packageInstallFolder, name, version) {
+ try {
+ console.log(`Installing ${name}...`);
+ const npmPath = getNpmPath();
+ const result = childProcess.spawnSync(npmPath, ['install'], {
+ stdio: 'inherit',
+ cwd: packageInstallFolder,
+ env: process.env
+ });
+ if (result.status !== 0) {
+ throw new Error('"npm install" encountered an error');
+ }
+ console.log(`Successfully installed ${name}@${version}`);
+ }
+ catch (e) {
+ throw new Error(`Unable to install package: ${e}`);
+ }
+}
+/**
+ * Get the ".bin" path for the package.
+ */
+function getBinPath(packageInstallFolder, binName) {
+ const binFolderPath = path.resolve(packageInstallFolder, NODE_MODULES_FOLDER_NAME, '.bin');
+ const resolvedBinName = (os.platform() === 'win32') ? `${binName}.cmd` : binName;
+ return path.resolve(binFolderPath, resolvedBinName);
+}
+/**
+ * Write a flag file to the package's install directory, signifying that the install was successful.
+ */
+function writeFlagFile(packageInstallFolder) {
+ try {
+ const flagFilePath = path.join(packageInstallFolder, INSTALLED_FLAG_FILENAME);
+ fs.writeFileSync(flagFilePath, process.version);
+ }
+ catch (e) {
+ throw new Error(`Unable to create installed.flag file in ${packageInstallFolder}`);
+ }
+}
+function installAndRun(packageName, packageVersion, packageBinName, packageBinArgs) {
+ const rushJsonFolder = findRushJsonFolder();
+ const rushCommonFolder = path.join(rushJsonFolder, 'common');
+ const packageInstallFolder = ensureAndJoinPath(rushCommonFolder, 'temp', 'install-run', `${packageName}@${packageVersion}`);
+ if (!isPackageAlreadyInstalled(packageInstallFolder)) {
+ // The package isn't already installed
+ cleanInstallFolder(rushCommonFolder, packageInstallFolder);
+ const sourceNpmrcFolder = path.join(rushCommonFolder, 'config', 'rush');
+ syncNpmrc(sourceNpmrcFolder, packageInstallFolder);
+ createPackageJson(packageInstallFolder, packageName, packageVersion);
+ installPackage(packageInstallFolder, packageName, packageVersion);
+ writeFlagFile(packageInstallFolder);
+ }
+ const statusMessage = `Invoking "${packageBinName} ${packageBinArgs.join(' ')}"`;
+ const statusMessageLine = new Array(statusMessage.length + 1).join('-');
+ console.log(os.EOL + statusMessage + os.EOL + statusMessageLine + os.EOL);
+ const binPath = getBinPath(packageInstallFolder, packageBinName);
+ const result = childProcess.spawnSync(binPath, packageBinArgs, {
+ stdio: 'inherit',
+ cwd: process.cwd(),
+ env: process.env
+ });
+ return result.status;
+}
+exports.installAndRun = installAndRun;
+function runWithErrorAndStatusCode(fn) {
+ process.exitCode = 1;
+ try {
+ const exitCode = fn();
+ process.exitCode = exitCode;
+ }
+ catch (e) {
+ console.error(os.EOL + os.EOL + e.toString() + os.EOL + os.EOL);
+ }
+}
+exports.runWithErrorAndStatusCode = runWithErrorAndStatusCode;
+function run() {
+ const [nodePath, /* Ex: /bin/node */ // tslint:disable-line:no-unused-variable
+ scriptPath, /* /repo/common/scripts/install-run-rush.js */ rawPackageSpecifier, /* rimraf@^2.0.0 */ packageBinName, /* rimraf */ ...packageBinArgs /* [-f, myproject/lib] */] = process.argv;
+ if (path.basename(scriptPath).toLowerCase() !== 'install-run.js') {
+ // If install-run.js wasn't directly invoked, don't execute the rest of this function. Return control
+ // to the script that (presumably) imported this file
+ return;
+ }
+ if (process.argv.length < 4) {
+ console.log('Usage: install-run.js @ [args...]');
+ console.log('Example: install-run.js rimraf@2.6.2 rimraf -f project1/lib');
+ process.exit(1);
+ }
+ runWithErrorAndStatusCode(() => {
+ const rushJsonFolder = findRushJsonFolder();
+ const rushCommonFolder = ensureAndJoinPath(rushJsonFolder, 'common');
+ const packageSpecifier = parsePackageSpecifier(rawPackageSpecifier);
+ const name = packageSpecifier.name;
+ const version = resolvePackageVersion(rushCommonFolder, packageSpecifier);
+ if (packageSpecifier.version !== version) {
+ console.log(`Resolved to ${name}@${version}`);
+ }
+ return installAndRun(name, version, packageBinName, packageBinArgs);
+ });
+}
+run();
+//# sourceMappingURL=install-run.js.map
\ No newline at end of file
diff --git a/gruntfile.js b/gruntfile.js
new file mode 100644
index 0000000..5d30cc6
--- /dev/null
+++ b/gruntfile.js
@@ -0,0 +1,62 @@
+module.exports = function (grunt) {
+ grunt.initConfig({
+ tslint: {
+ options: {
+ rulesDirectory: 'node_modules/tslint-microsoft-contrib',
+ },
+ files: {
+ src: [
+ './lib/src/**/*.ts',
+ '!./**/node_modules/**',
+ '!./**/Tests/**',
+ '!./**/dist-esm/**',
+ '!./**/Generated/**'
+ ],
+ }
+ },
+ ts: {
+ options: {
+ comments: true
+ },
+ default: {
+ tsconfig: './lib/tsconfig.json'
+ },
+ dynamicproto: {
+ tsconfig: './lib/tsconfig.json'
+ },
+ dynamicprototest: {
+ tsconfig: './lib/test/tsconfig.json',
+ src: [
+ './lib/test/Selenium/DynamicProtoTests.ts'
+ ],
+ out: 'lib/test/Selenium/dynamicprototests.js'
+ }
+ },
+ qunit: {
+ dynamicproto: {
+ options: {
+ urls: [
+ './lib/test/Selenium/Tests.html'
+ ],
+ timeout: 300 * 1000, // 5 min
+ console: false,
+ summaryOnly: true,
+ '--web-security': 'false' // we need this to allow CORS requests in PhantomJS
+ }
+ }
+ }
+ });
+
+ grunt.event.on('qunit.testStart', function (name) {
+ grunt.log.ok('Running test: ' + name);
+ });
+
+ grunt.loadNpmTasks("grunt-ts");
+ grunt.loadNpmTasks('grunt-tslint');
+ grunt.loadNpmTasks('grunt-contrib-uglify');
+ grunt.loadNpmTasks('grunt-contrib-qunit');
+ grunt.loadNpmTasks('grunt-run');
+ grunt.registerTask("default", ["ts:dynamicproto", "ts:dynamicprototest", "qunit:dynamicproto"])
+ grunt.registerTask("dynamicproto", ["ts:dynamicproto"]);
+ grunt.registerTask("dynamicprototest", ["ts:dynamicproto", "ts:dynamicprototest", "qunit:dynamicproto"]);
+};
diff --git a/lib/docs/assets/css/main.css b/lib/docs/assets/css/main.css
new file mode 100644
index 0000000..c771b84
--- /dev/null
+++ b/lib/docs/assets/css/main.css
@@ -0,0 +1,2333 @@
+/*! normalize.css v1.1.3 | MIT License | git.io/normalize */
+/* ==========================================================================
+ * HTML5 display definitions
+ * ========================================================================== */
+/**
+ * Correct `block` display not defined in IE 6/7/8/9 and Firefox 3. */
+article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary {
+ display: block; }
+
+/**
+ * Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3. */
+audio, canvas, video {
+ display: inline-block;
+ *display: inline;
+ *zoom: 1; }
+
+/**
+ * Prevent modern browsers from displaying `audio` without controls.
+ * Remove excess height in iOS 5 devices. */
+audio:not([controls]) {
+ display: none;
+ height: 0; }
+
+/**
+ * Address styling not present in IE 7/8/9, Firefox 3, and Safari 4.
+ * Known issue: no IE 6 support. */
+[hidden] {
+ display: none; }
+
+/* ==========================================================================
+ * Base
+ * ========================================================================== */
+/**
+ * 1. Correct text resizing oddly in IE 6/7 when body `font-size` is set using
+ * `em` units.
+ * 2. Prevent iOS text size adjust after orientation change, without disabling
+ * user zoom. */
+html {
+ font-size: 100%;
+ /* 1 */
+ -ms-text-size-adjust: 100%;
+ /* 2 */
+ -webkit-text-size-adjust: 100%;
+ /* 2 */
+ font-family: sans-serif; }
+
+/**
+ * Address `font-family` inconsistency between `textarea` and other form
+ * elements. */
+button, input, select, textarea {
+ font-family: sans-serif; }
+
+/**
+ * Address margins handled incorrectly in IE 6/7. */
+body {
+ margin: 0; }
+
+/* ==========================================================================
+ * Links
+ * ========================================================================== */
+/**
+ * Address `outline` inconsistency between Chrome and other browsers. */
+a:focus {
+ outline: thin dotted; }
+
+a:active, a:hover {
+ outline: 0; }
+
+/**
+ * Improve readability when focused and also mouse hovered in all browsers. */
+/* ==========================================================================
+ * Typography
+ * ========================================================================== */
+/**
+ * Address font sizes and margins set differently in IE 6/7.
+ * Address font sizes within `section` and `article` in Firefox 4+, Safari 5,
+ * and Chrome. */
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0; }
+
+h2 {
+ font-size: 1.5em;
+ margin: 0.83em 0; }
+
+h3 {
+ font-size: 1.17em;
+ margin: 1em 0; }
+
+h4, .tsd-index-panel h3 {
+ font-size: 1em;
+ margin: 1.33em 0; }
+
+h5 {
+ font-size: 0.83em;
+ margin: 1.67em 0; }
+
+h6 {
+ font-size: 0.67em;
+ margin: 2.33em 0; }
+
+/**
+ * Address styling not present in IE 7/8/9, Safari 5, and Chrome. */
+abbr[title] {
+ border-bottom: 1px dotted; }
+
+/**
+ * Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome. */
+b, strong {
+ font-weight: bold; }
+
+blockquote {
+ margin: 1em 40px; }
+
+/**
+ * Address styling not present in Safari 5 and Chrome. */
+dfn {
+ font-style: italic; }
+
+/**
+ * Address differences between Firefox and other browsers.
+ * Known issue: no IE 6/7 normalization. */
+hr {
+ box-sizing: content-box;
+ height: 0; }
+
+/**
+ * Address styling not present in IE 6/7/8/9. */
+mark {
+ background: #ff0;
+ color: #000; }
+
+/**
+ * Address margins set differently in IE 6/7. */
+p, pre {
+ margin: 1em 0; }
+
+/**
+ * Correct font family set oddly in IE 6, Safari 4/5, and Chrome. */
+code, kbd, pre, samp {
+ font-family: monospace, serif;
+ _font-family: 'courier new', monospace;
+ font-size: 1em; }
+
+/**
+ * Improve readability of pre-formatted text in all browsers. */
+pre {
+ white-space: pre;
+ white-space: pre-wrap;
+ word-wrap: break-word; }
+
+/**
+ * Address CSS quotes not supported in IE 6/7. */
+q {
+ quotes: none; }
+ q:before, q:after {
+ content: '';
+ content: none; }
+
+/**
+ * Address `quotes` property not supported in Safari 4. */
+/**
+ * Address inconsistent and variable font size in all browsers. */
+small {
+ font-size: 80%; }
+
+/**
+ * Prevent `sub` and `sup` affecting `line-height` in all browsers. */
+sub {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline; }
+
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+ top: -0.5em; }
+
+sub {
+ bottom: -0.25em; }
+
+/* ==========================================================================
+ * Lists
+ * ========================================================================== */
+/**
+ * Address margins set differently in IE 6/7. */
+dl, menu, ol, ul {
+ margin: 1em 0; }
+
+dd {
+ margin: 0 0 0 40px; }
+
+/**
+ * Address paddings set differently in IE 6/7. */
+menu, ol, ul {
+ padding: 0 0 0 40px; }
+
+/**
+ * Correct list images handled incorrectly in IE 7. */
+nav ul, nav ol {
+ list-style: none;
+ list-style-image: none; }
+
+/* ==========================================================================
+ * Embedded content
+ * ========================================================================== */
+/**
+ * 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3.
+ * 2. Improve image quality when scaled in IE 7. */
+img {
+ border: 0;
+ /* 1 */
+ -ms-interpolation-mode: bicubic; }
+
+/* 2 */
+/**
+ * Correct overflow displayed oddly in IE 9. */
+svg:not(:root) {
+ overflow: hidden; }
+
+/* ==========================================================================
+ * Figures
+ * ========================================================================== */
+/**
+ * Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11. */
+figure, form {
+ margin: 0; }
+
+/* ==========================================================================
+ * Forms
+ * ========================================================================== */
+/**
+ * Correct margin displayed oddly in IE 6/7. */
+/**
+ * Define consistent border, margin, and padding. */
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em; }
+
+/**
+ * 1. Correct color not being inherited in IE 6/7/8/9.
+ * 2. Correct text not wrapping in Firefox 3.
+ * 3. Correct alignment displayed oddly in IE 6/7. */
+legend {
+ border: 0;
+ /* 1 */
+ padding: 0;
+ white-space: normal;
+ /* 2 */
+ *margin-left: -7px; }
+
+/* 3 */
+/**
+ * 1. Correct font size not being inherited in all browsers.
+ * 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5,
+ * and Chrome.
+ * 3. Improve appearance and consistency in all browsers. */
+button, input, select, textarea {
+ font-size: 100%;
+ /* 1 */
+ margin: 0;
+ /* 2 */
+ vertical-align: baseline;
+ /* 3 */
+ *vertical-align: middle; }
+
+/* 3 */
+/**
+ * Address Firefox 3+ setting `line-height` on `input` using `!important` in
+ * the UA stylesheet. */
+button, input {
+ line-height: normal; }
+
+/**
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
+ * All other form control elements do not inherit `text-transform` values.
+ * Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+.
+ * Correct `select` style inheritance in Firefox 4+ and Opera. */
+button, select {
+ text-transform: none; }
+
+/**
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
+ * and `video` controls.
+ * 2. Correct inability to style clickable `input` types in iOS.
+ * 3. Improve usability and consistency of cursor style between image-type
+ * `input` and others.
+ * 4. Remove inner spacing in IE 7 without affecting normal text inputs.
+ * Known issue: inner spacing remains in IE 6. */
+button, html input[type="button"] {
+ -webkit-appearance: button;
+ /* 2 */
+ cursor: pointer;
+ /* 3 */
+ *overflow: visible; }
+
+/* 4 */
+input[type="reset"], input[type="submit"] {
+ -webkit-appearance: button;
+ /* 2 */
+ cursor: pointer;
+ /* 3 */
+ *overflow: visible; }
+
+/* 4 */
+/**
+ * Re-set default cursor for disabled elements. */
+button[disabled], html input[disabled] {
+ cursor: default; }
+
+/**
+ * 1. Address box sizing set to content-box in IE 8/9.
+ * 2. Remove excess padding in IE 8/9.
+ * 3. Remove excess padding in IE 7.
+ * Known issue: excess padding remains in IE 6. */
+input {
+ /* 3 */ }
+ input[type="checkbox"], input[type="radio"] {
+ box-sizing: border-box;
+ /* 1 */
+ padding: 0;
+ /* 2 */
+ *height: 13px;
+ /* 3 */
+ *width: 13px; }
+ input[type="search"] {
+ -webkit-appearance: textfield;
+ /* 1 */
+ /* 2 */
+ box-sizing: content-box; }
+ input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none; }
+
+/**
+ * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
+ * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
+ * (include `-moz` to future-proof). */
+/**
+ * Remove inner padding and search cancel button in Safari 5 and Chrome
+ * on OS X. */
+/**
+ * Remove inner padding and border in Firefox 3+. */
+button::-moz-focus-inner, input::-moz-focus-inner {
+ border: 0;
+ padding: 0; }
+
+/**
+ * 1. Remove default vertical scrollbar in IE 6/7/8/9.
+ * 2. Improve readability and alignment in all browsers. */
+textarea {
+ overflow: auto;
+ /* 1 */
+ vertical-align: top; }
+
+/* 2 */
+/* ==========================================================================
+ * Tables
+ * ========================================================================== */
+/**
+ * Remove most spacing between table cells. */
+table {
+ border-collapse: collapse;
+ border-spacing: 0; }
+
+/*
+ *
+ *Visual Studio-like style based on original C# coloring by Jason Diamond */
+.hljs {
+ display: inline-block;
+ padding: 0.5em;
+ background: white;
+ color: black; }
+
+.hljs-comment, .hljs-annotation, .hljs-template_comment, .diff .hljs-header, .hljs-chunk, .apache .hljs-cbracket {
+ color: #008000; }
+
+.hljs-keyword, .hljs-id, .hljs-built_in, .css .smalltalk .hljs-class, .hljs-winutils, .bash .hljs-variable, .tex .hljs-command, .hljs-request, .hljs-status, .nginx .hljs-title {
+ color: #00f; }
+
+.xml .hljs-tag {
+ color: #00f; }
+ .xml .hljs-tag .hljs-value {
+ color: #00f; }
+
+.hljs-string, .hljs-title, .hljs-parent, .hljs-tag .hljs-value, .hljs-rules .hljs-value {
+ color: #a31515; }
+
+.ruby .hljs-symbol {
+ color: #a31515; }
+ .ruby .hljs-symbol .hljs-string {
+ color: #a31515; }
+
+.hljs-template_tag, .django .hljs-variable, .hljs-addition, .hljs-flow, .hljs-stream, .apache .hljs-tag, .hljs-date, .tex .hljs-formula, .coffeescript .hljs-attribute {
+ color: #a31515; }
+
+.ruby .hljs-string, .hljs-decorator, .hljs-filter .hljs-argument, .hljs-localvars, .hljs-array, .hljs-attr_selector, .hljs-pseudo, .hljs-pi, .hljs-doctype, .hljs-deletion, .hljs-envvar, .hljs-shebang, .hljs-preprocessor, .hljs-pragma, .userType, .apache .hljs-sqbracket, .nginx .hljs-built_in, .tex .hljs-special, .hljs-prompt {
+ color: #2b91af; }
+
+.hljs-phpdoc, .hljs-javadoc, .hljs-xmlDocTag {
+ color: #808080; }
+
+.vhdl .hljs-typename {
+ font-weight: bold; }
+
+.vhdl .hljs-string {
+ color: #666666; }
+
+.vhdl .hljs-literal {
+ color: #a31515; }
+
+.vhdl .hljs-attribute {
+ color: #00b0e8; }
+
+.xml .hljs-attribute {
+ color: #f00; }
+
+.col > :first-child, .col-1 > :first-child, .col-2 > :first-child, .col-3 > :first-child, .col-4 > :first-child, .col-5 > :first-child, .col-6 > :first-child, .col-7 > :first-child, .col-8 > :first-child, .col-9 > :first-child, .col-10 > :first-child, .col-11 > :first-child, .tsd-panel > :first-child, ul.tsd-descriptions > li > :first-child,
+.col > :first-child > :first-child,
+.col-1 > :first-child > :first-child,
+.col-2 > :first-child > :first-child,
+.col-3 > :first-child > :first-child,
+.col-4 > :first-child > :first-child,
+.col-5 > :first-child > :first-child,
+.col-6 > :first-child > :first-child,
+.col-7 > :first-child > :first-child,
+.col-8 > :first-child > :first-child,
+.col-9 > :first-child > :first-child,
+.col-10 > :first-child > :first-child,
+.col-11 > :first-child > :first-child,
+.tsd-panel > :first-child > :first-child,
+ul.tsd-descriptions > li > :first-child > :first-child,
+.col > :first-child > :first-child > :first-child,
+.col-1 > :first-child > :first-child > :first-child,
+.col-2 > :first-child > :first-child > :first-child,
+.col-3 > :first-child > :first-child > :first-child,
+.col-4 > :first-child > :first-child > :first-child,
+.col-5 > :first-child > :first-child > :first-child,
+.col-6 > :first-child > :first-child > :first-child,
+.col-7 > :first-child > :first-child > :first-child,
+.col-8 > :first-child > :first-child > :first-child,
+.col-9 > :first-child > :first-child > :first-child,
+.col-10 > :first-child > :first-child > :first-child,
+.col-11 > :first-child > :first-child > :first-child,
+.tsd-panel > :first-child > :first-child > :first-child,
+ul.tsd-descriptions > li > :first-child > :first-child > :first-child {
+ margin-top: 0; }
+
+.col > :last-child, .col-1 > :last-child, .col-2 > :last-child, .col-3 > :last-child, .col-4 > :last-child, .col-5 > :last-child, .col-6 > :last-child, .col-7 > :last-child, .col-8 > :last-child, .col-9 > :last-child, .col-10 > :last-child, .col-11 > :last-child, .tsd-panel > :last-child, ul.tsd-descriptions > li > :last-child,
+.col > :last-child > :last-child,
+.col-1 > :last-child > :last-child,
+.col-2 > :last-child > :last-child,
+.col-3 > :last-child > :last-child,
+.col-4 > :last-child > :last-child,
+.col-5 > :last-child > :last-child,
+.col-6 > :last-child > :last-child,
+.col-7 > :last-child > :last-child,
+.col-8 > :last-child > :last-child,
+.col-9 > :last-child > :last-child,
+.col-10 > :last-child > :last-child,
+.col-11 > :last-child > :last-child,
+.tsd-panel > :last-child > :last-child,
+ul.tsd-descriptions > li > :last-child > :last-child,
+.col > :last-child > :last-child > :last-child,
+.col-1 > :last-child > :last-child > :last-child,
+.col-2 > :last-child > :last-child > :last-child,
+.col-3 > :last-child > :last-child > :last-child,
+.col-4 > :last-child > :last-child > :last-child,
+.col-5 > :last-child > :last-child > :last-child,
+.col-6 > :last-child > :last-child > :last-child,
+.col-7 > :last-child > :last-child > :last-child,
+.col-8 > :last-child > :last-child > :last-child,
+.col-9 > :last-child > :last-child > :last-child,
+.col-10 > :last-child > :last-child > :last-child,
+.col-11 > :last-child > :last-child > :last-child,
+.tsd-panel > :last-child > :last-child > :last-child,
+ul.tsd-descriptions > li > :last-child > :last-child > :last-child {
+ margin-bottom: 0; }
+
+.container {
+ max-width: 1200px;
+ margin: 0 auto;
+ padding: 0 40px; }
+ @media (max-width: 640px) {
+ .container {
+ padding: 0 20px; } }
+
+.container-main {
+ padding-bottom: 200px; }
+
+.row {
+ position: relative;
+ margin: 0 -10px; }
+ .row:after {
+ visibility: hidden;
+ display: block;
+ content: "";
+ clear: both;
+ height: 0; }
+
+.col, .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11 {
+ box-sizing: border-box;
+ float: left;
+ padding: 0 10px; }
+
+.col-1 {
+ width: 8.3333333333%; }
+
+.offset-1 {
+ margin-left: 8.3333333333%; }
+
+.col-2 {
+ width: 16.6666666667%; }
+
+.offset-2 {
+ margin-left: 16.6666666667%; }
+
+.col-3 {
+ width: 25%; }
+
+.offset-3 {
+ margin-left: 25%; }
+
+.col-4 {
+ width: 33.3333333333%; }
+
+.offset-4 {
+ margin-left: 33.3333333333%; }
+
+.col-5 {
+ width: 41.6666666667%; }
+
+.offset-5 {
+ margin-left: 41.6666666667%; }
+
+.col-6 {
+ width: 50%; }
+
+.offset-6 {
+ margin-left: 50%; }
+
+.col-7 {
+ width: 58.3333333333%; }
+
+.offset-7 {
+ margin-left: 58.3333333333%; }
+
+.col-8 {
+ width: 66.6666666667%; }
+
+.offset-8 {
+ margin-left: 66.6666666667%; }
+
+.col-9 {
+ width: 75%; }
+
+.offset-9 {
+ margin-left: 75%; }
+
+.col-10 {
+ width: 83.3333333333%; }
+
+.offset-10 {
+ margin-left: 83.3333333333%; }
+
+.col-11 {
+ width: 91.6666666667%; }
+
+.offset-11 {
+ margin-left: 91.6666666667%; }
+
+.tsd-kind-icon {
+ display: block;
+ position: relative;
+ padding-left: 20px;
+ text-indent: -20px; }
+ .tsd-kind-icon:before {
+ content: '';
+ display: inline-block;
+ vertical-align: middle;
+ width: 17px;
+ height: 17px;
+ margin: 0 3px 2px 0;
+ background-image: url(../images/icons.png); }
+ @media (-webkit-min-device-pixel-ratio: 1.5), (min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) {
+ .tsd-kind-icon:before {
+ background-image: url(../images/icons@2x.png);
+ background-size: 238px 204px; } }
+
+.tsd-signature.tsd-kind-icon:before {
+ background-position: 0 -153px; }
+
+.tsd-kind-object-literal > .tsd-kind-icon:before {
+ background-position: 0px -17px; }
+
+.tsd-kind-object-literal.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -17px -17px; }
+
+.tsd-kind-object-literal.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -34px -17px; }
+
+.tsd-kind-class > .tsd-kind-icon:before {
+ background-position: 0px -34px; }
+
+.tsd-kind-class.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -17px -34px; }
+
+.tsd-kind-class.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -34px -34px; }
+
+.tsd-kind-class.tsd-has-type-parameter > .tsd-kind-icon:before {
+ background-position: 0px -51px; }
+
+.tsd-kind-class.tsd-has-type-parameter.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -17px -51px; }
+
+.tsd-kind-class.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -34px -51px; }
+
+.tsd-kind-interface > .tsd-kind-icon:before {
+ background-position: 0px -68px; }
+
+.tsd-kind-interface.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -17px -68px; }
+
+.tsd-kind-interface.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -34px -68px; }
+
+.tsd-kind-interface.tsd-has-type-parameter > .tsd-kind-icon:before {
+ background-position: 0px -85px; }
+
+.tsd-kind-interface.tsd-has-type-parameter.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -17px -85px; }
+
+.tsd-kind-interface.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -34px -85px; }
+
+.tsd-kind-module > .tsd-kind-icon:before {
+ background-position: 0px -102px; }
+
+.tsd-kind-module.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -17px -102px; }
+
+.tsd-kind-module.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -34px -102px; }
+
+.tsd-kind-external-module > .tsd-kind-icon:before {
+ background-position: 0px -102px; }
+
+.tsd-kind-external-module.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -17px -102px; }
+
+.tsd-kind-external-module.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -34px -102px; }
+
+.tsd-kind-enum > .tsd-kind-icon:before {
+ background-position: 0px -119px; }
+
+.tsd-kind-enum.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -17px -119px; }
+
+.tsd-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -34px -119px; }
+
+.tsd-kind-enum-member > .tsd-kind-icon:before {
+ background-position: 0px -136px; }
+
+.tsd-kind-enum-member.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -17px -136px; }
+
+.tsd-kind-enum-member.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -34px -136px; }
+
+.tsd-kind-signature > .tsd-kind-icon:before {
+ background-position: 0px -153px; }
+
+.tsd-kind-signature.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -17px -153px; }
+
+.tsd-kind-signature.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -34px -153px; }
+
+.tsd-kind-type-alias > .tsd-kind-icon:before {
+ background-position: 0px -170px; }
+
+.tsd-kind-type-alias.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -17px -170px; }
+
+.tsd-kind-type-alias.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -34px -170px; }
+
+.tsd-kind-type-alias.tsd-has-type-parameter > .tsd-kind-icon:before {
+ background-position: 0px -187px; }
+
+.tsd-kind-type-alias.tsd-has-type-parameter.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -17px -187px; }
+
+.tsd-kind-type-alias.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -34px -187px; }
+
+.tsd-kind-variable > .tsd-kind-icon:before {
+ background-position: -136px -0px; }
+
+.tsd-kind-variable.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -153px -0px; }
+
+.tsd-kind-variable.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -0px; }
+
+.tsd-kind-variable.tsd-parent-kind-class > .tsd-kind-icon:before {
+ background-position: -51px -0px; }
+
+.tsd-kind-variable.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -68px -0px; }
+
+.tsd-kind-variable.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -85px -0px; }
+
+.tsd-kind-variable.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -102px -0px; }
+
+.tsd-kind-variable.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -0px; }
+
+.tsd-kind-variable.tsd-parent-kind-enum > .tsd-kind-icon:before {
+ background-position: -170px -0px; }
+
+.tsd-kind-variable.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -187px -0px; }
+
+.tsd-kind-variable.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -0px; }
+
+.tsd-kind-variable.tsd-parent-kind-interface > .tsd-kind-icon:before {
+ background-position: -204px -0px; }
+
+.tsd-kind-variable.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -221px -0px; }
+
+.tsd-kind-property > .tsd-kind-icon:before {
+ background-position: -136px -0px; }
+
+.tsd-kind-property.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -153px -0px; }
+
+.tsd-kind-property.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -0px; }
+
+.tsd-kind-property.tsd-parent-kind-class > .tsd-kind-icon:before {
+ background-position: -51px -0px; }
+
+.tsd-kind-property.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -68px -0px; }
+
+.tsd-kind-property.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -85px -0px; }
+
+.tsd-kind-property.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -102px -0px; }
+
+.tsd-kind-property.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -0px; }
+
+.tsd-kind-property.tsd-parent-kind-enum > .tsd-kind-icon:before {
+ background-position: -170px -0px; }
+
+.tsd-kind-property.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -187px -0px; }
+
+.tsd-kind-property.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -0px; }
+
+.tsd-kind-property.tsd-parent-kind-interface > .tsd-kind-icon:before {
+ background-position: -204px -0px; }
+
+.tsd-kind-property.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -221px -0px; }
+
+.tsd-kind-get-signature > .tsd-kind-icon:before {
+ background-position: -136px -17px; }
+
+.tsd-kind-get-signature.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -153px -17px; }
+
+.tsd-kind-get-signature.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -17px; }
+
+.tsd-kind-get-signature.tsd-parent-kind-class > .tsd-kind-icon:before {
+ background-position: -51px -17px; }
+
+.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -68px -17px; }
+
+.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -85px -17px; }
+
+.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -102px -17px; }
+
+.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -17px; }
+
+.tsd-kind-get-signature.tsd-parent-kind-enum > .tsd-kind-icon:before {
+ background-position: -170px -17px; }
+
+.tsd-kind-get-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -187px -17px; }
+
+.tsd-kind-get-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -17px; }
+
+.tsd-kind-get-signature.tsd-parent-kind-interface > .tsd-kind-icon:before {
+ background-position: -204px -17px; }
+
+.tsd-kind-get-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -221px -17px; }
+
+.tsd-kind-set-signature > .tsd-kind-icon:before {
+ background-position: -136px -34px; }
+
+.tsd-kind-set-signature.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -153px -34px; }
+
+.tsd-kind-set-signature.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -34px; }
+
+.tsd-kind-set-signature.tsd-parent-kind-class > .tsd-kind-icon:before {
+ background-position: -51px -34px; }
+
+.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -68px -34px; }
+
+.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -85px -34px; }
+
+.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -102px -34px; }
+
+.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -34px; }
+
+.tsd-kind-set-signature.tsd-parent-kind-enum > .tsd-kind-icon:before {
+ background-position: -170px -34px; }
+
+.tsd-kind-set-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -187px -34px; }
+
+.tsd-kind-set-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -34px; }
+
+.tsd-kind-set-signature.tsd-parent-kind-interface > .tsd-kind-icon:before {
+ background-position: -204px -34px; }
+
+.tsd-kind-set-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -221px -34px; }
+
+.tsd-kind-accessor > .tsd-kind-icon:before {
+ background-position: -136px -51px; }
+
+.tsd-kind-accessor.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -153px -51px; }
+
+.tsd-kind-accessor.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -51px; }
+
+.tsd-kind-accessor.tsd-parent-kind-class > .tsd-kind-icon:before {
+ background-position: -51px -51px; }
+
+.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -68px -51px; }
+
+.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -85px -51px; }
+
+.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -102px -51px; }
+
+.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -51px; }
+
+.tsd-kind-accessor.tsd-parent-kind-enum > .tsd-kind-icon:before {
+ background-position: -170px -51px; }
+
+.tsd-kind-accessor.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -187px -51px; }
+
+.tsd-kind-accessor.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -51px; }
+
+.tsd-kind-accessor.tsd-parent-kind-interface > .tsd-kind-icon:before {
+ background-position: -204px -51px; }
+
+.tsd-kind-accessor.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -221px -51px; }
+
+.tsd-kind-function > .tsd-kind-icon:before {
+ background-position: -136px -68px; }
+
+.tsd-kind-function.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -153px -68px; }
+
+.tsd-kind-function.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -68px; }
+
+.tsd-kind-function.tsd-parent-kind-class > .tsd-kind-icon:before {
+ background-position: -51px -68px; }
+
+.tsd-kind-function.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -68px -68px; }
+
+.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -85px -68px; }
+
+.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -102px -68px; }
+
+.tsd-kind-function.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -68px; }
+
+.tsd-kind-function.tsd-parent-kind-enum > .tsd-kind-icon:before {
+ background-position: -170px -68px; }
+
+.tsd-kind-function.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -187px -68px; }
+
+.tsd-kind-function.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -68px; }
+
+.tsd-kind-function.tsd-parent-kind-interface > .tsd-kind-icon:before {
+ background-position: -204px -68px; }
+
+.tsd-kind-function.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -221px -68px; }
+
+.tsd-kind-method > .tsd-kind-icon:before {
+ background-position: -136px -68px; }
+
+.tsd-kind-method.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -153px -68px; }
+
+.tsd-kind-method.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -68px; }
+
+.tsd-kind-method.tsd-parent-kind-class > .tsd-kind-icon:before {
+ background-position: -51px -68px; }
+
+.tsd-kind-method.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -68px -68px; }
+
+.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -85px -68px; }
+
+.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -102px -68px; }
+
+.tsd-kind-method.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -68px; }
+
+.tsd-kind-method.tsd-parent-kind-enum > .tsd-kind-icon:before {
+ background-position: -170px -68px; }
+
+.tsd-kind-method.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -187px -68px; }
+
+.tsd-kind-method.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -68px; }
+
+.tsd-kind-method.tsd-parent-kind-interface > .tsd-kind-icon:before {
+ background-position: -204px -68px; }
+
+.tsd-kind-method.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -221px -68px; }
+
+.tsd-kind-call-signature > .tsd-kind-icon:before {
+ background-position: -136px -68px; }
+
+.tsd-kind-call-signature.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -153px -68px; }
+
+.tsd-kind-call-signature.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -68px; }
+
+.tsd-kind-call-signature.tsd-parent-kind-class > .tsd-kind-icon:before {
+ background-position: -51px -68px; }
+
+.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -68px -68px; }
+
+.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -85px -68px; }
+
+.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -102px -68px; }
+
+.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -68px; }
+
+.tsd-kind-call-signature.tsd-parent-kind-enum > .tsd-kind-icon:before {
+ background-position: -170px -68px; }
+
+.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -187px -68px; }
+
+.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -68px; }
+
+.tsd-kind-call-signature.tsd-parent-kind-interface > .tsd-kind-icon:before {
+ background-position: -204px -68px; }
+
+.tsd-kind-call-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -221px -68px; }
+
+.tsd-kind-function.tsd-has-type-parameter > .tsd-kind-icon:before {
+ background-position: -136px -85px; }
+
+.tsd-kind-function.tsd-has-type-parameter.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -153px -85px; }
+
+.tsd-kind-function.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -85px; }
+
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class > .tsd-kind-icon:before {
+ background-position: -51px -85px; }
+
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -68px -85px; }
+
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -85px -85px; }
+
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -102px -85px; }
+
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -85px; }
+
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum > .tsd-kind-icon:before {
+ background-position: -170px -85px; }
+
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -187px -85px; }
+
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -85px; }
+
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-interface > .tsd-kind-icon:before {
+ background-position: -204px -85px; }
+
+.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -221px -85px; }
+
+.tsd-kind-method.tsd-has-type-parameter > .tsd-kind-icon:before {
+ background-position: -136px -85px; }
+
+.tsd-kind-method.tsd-has-type-parameter.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -153px -85px; }
+
+.tsd-kind-method.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -85px; }
+
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class > .tsd-kind-icon:before {
+ background-position: -51px -85px; }
+
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -68px -85px; }
+
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -85px -85px; }
+
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -102px -85px; }
+
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -85px; }
+
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum > .tsd-kind-icon:before {
+ background-position: -170px -85px; }
+
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -187px -85px; }
+
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -85px; }
+
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-interface > .tsd-kind-icon:before {
+ background-position: -204px -85px; }
+
+.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -221px -85px; }
+
+.tsd-kind-constructor > .tsd-kind-icon:before {
+ background-position: -136px -102px; }
+
+.tsd-kind-constructor.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -153px -102px; }
+
+.tsd-kind-constructor.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -102px; }
+
+.tsd-kind-constructor.tsd-parent-kind-class > .tsd-kind-icon:before {
+ background-position: -51px -102px; }
+
+.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -68px -102px; }
+
+.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -85px -102px; }
+
+.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -102px -102px; }
+
+.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -102px; }
+
+.tsd-kind-constructor.tsd-parent-kind-enum > .tsd-kind-icon:before {
+ background-position: -170px -102px; }
+
+.tsd-kind-constructor.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -187px -102px; }
+
+.tsd-kind-constructor.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -102px; }
+
+.tsd-kind-constructor.tsd-parent-kind-interface > .tsd-kind-icon:before {
+ background-position: -204px -102px; }
+
+.tsd-kind-constructor.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -221px -102px; }
+
+.tsd-kind-constructor-signature > .tsd-kind-icon:before {
+ background-position: -136px -102px; }
+
+.tsd-kind-constructor-signature.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -153px -102px; }
+
+.tsd-kind-constructor-signature.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -102px; }
+
+.tsd-kind-constructor-signature.tsd-parent-kind-class > .tsd-kind-icon:before {
+ background-position: -51px -102px; }
+
+.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -68px -102px; }
+
+.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -85px -102px; }
+
+.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -102px -102px; }
+
+.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -102px; }
+
+.tsd-kind-constructor-signature.tsd-parent-kind-enum > .tsd-kind-icon:before {
+ background-position: -170px -102px; }
+
+.tsd-kind-constructor-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -187px -102px; }
+
+.tsd-kind-constructor-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -102px; }
+
+.tsd-kind-constructor-signature.tsd-parent-kind-interface > .tsd-kind-icon:before {
+ background-position: -204px -102px; }
+
+.tsd-kind-constructor-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -221px -102px; }
+
+.tsd-kind-index-signature > .tsd-kind-icon:before {
+ background-position: -136px -119px; }
+
+.tsd-kind-index-signature.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -153px -119px; }
+
+.tsd-kind-index-signature.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -119px; }
+
+.tsd-kind-index-signature.tsd-parent-kind-class > .tsd-kind-icon:before {
+ background-position: -51px -119px; }
+
+.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -68px -119px; }
+
+.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -85px -119px; }
+
+.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -102px -119px; }
+
+.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -119px; }
+
+.tsd-kind-index-signature.tsd-parent-kind-enum > .tsd-kind-icon:before {
+ background-position: -170px -119px; }
+
+.tsd-kind-index-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -187px -119px; }
+
+.tsd-kind-index-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -119px; }
+
+.tsd-kind-index-signature.tsd-parent-kind-interface > .tsd-kind-icon:before {
+ background-position: -204px -119px; }
+
+.tsd-kind-index-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -221px -119px; }
+
+.tsd-kind-event > .tsd-kind-icon:before {
+ background-position: -136px -136px; }
+
+.tsd-kind-event.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -153px -136px; }
+
+.tsd-kind-event.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -136px; }
+
+.tsd-kind-event.tsd-parent-kind-class > .tsd-kind-icon:before {
+ background-position: -51px -136px; }
+
+.tsd-kind-event.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -68px -136px; }
+
+.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -85px -136px; }
+
+.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -102px -136px; }
+
+.tsd-kind-event.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -136px; }
+
+.tsd-kind-event.tsd-parent-kind-enum > .tsd-kind-icon:before {
+ background-position: -170px -136px; }
+
+.tsd-kind-event.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -187px -136px; }
+
+.tsd-kind-event.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -136px; }
+
+.tsd-kind-event.tsd-parent-kind-interface > .tsd-kind-icon:before {
+ background-position: -204px -136px; }
+
+.tsd-kind-event.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -221px -136px; }
+
+.tsd-is-static > .tsd-kind-icon:before {
+ background-position: -136px -153px; }
+
+.tsd-is-static.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -153px -153px; }
+
+.tsd-is-static.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -153px; }
+
+.tsd-is-static.tsd-parent-kind-class > .tsd-kind-icon:before {
+ background-position: -51px -153px; }
+
+.tsd-is-static.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -68px -153px; }
+
+.tsd-is-static.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -85px -153px; }
+
+.tsd-is-static.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -102px -153px; }
+
+.tsd-is-static.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -153px; }
+
+.tsd-is-static.tsd-parent-kind-enum > .tsd-kind-icon:before {
+ background-position: -170px -153px; }
+
+.tsd-is-static.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -187px -153px; }
+
+.tsd-is-static.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -153px; }
+
+.tsd-is-static.tsd-parent-kind-interface > .tsd-kind-icon:before {
+ background-position: -204px -153px; }
+
+.tsd-is-static.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -221px -153px; }
+
+.tsd-is-static.tsd-kind-function > .tsd-kind-icon:before {
+ background-position: -136px -170px; }
+
+.tsd-is-static.tsd-kind-function.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -153px -170px; }
+
+.tsd-is-static.tsd-kind-function.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -170px; }
+
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-class > .tsd-kind-icon:before {
+ background-position: -51px -170px; }
+
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -68px -170px; }
+
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -85px -170px; }
+
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -102px -170px; }
+
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -170px; }
+
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-enum > .tsd-kind-icon:before {
+ background-position: -170px -170px; }
+
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -187px -170px; }
+
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -170px; }
+
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-interface > .tsd-kind-icon:before {
+ background-position: -204px -170px; }
+
+.tsd-is-static.tsd-kind-function.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -221px -170px; }
+
+.tsd-is-static.tsd-kind-method > .tsd-kind-icon:before {
+ background-position: -136px -170px; }
+
+.tsd-is-static.tsd-kind-method.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -153px -170px; }
+
+.tsd-is-static.tsd-kind-method.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -170px; }
+
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-class > .tsd-kind-icon:before {
+ background-position: -51px -170px; }
+
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -68px -170px; }
+
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -85px -170px; }
+
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -102px -170px; }
+
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -170px; }
+
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-enum > .tsd-kind-icon:before {
+ background-position: -170px -170px; }
+
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -187px -170px; }
+
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -170px; }
+
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-interface > .tsd-kind-icon:before {
+ background-position: -204px -170px; }
+
+.tsd-is-static.tsd-kind-method.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -221px -170px; }
+
+.tsd-is-static.tsd-kind-call-signature > .tsd-kind-icon:before {
+ background-position: -136px -170px; }
+
+.tsd-is-static.tsd-kind-call-signature.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -153px -170px; }
+
+.tsd-is-static.tsd-kind-call-signature.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -170px; }
+
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class > .tsd-kind-icon:before {
+ background-position: -51px -170px; }
+
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -68px -170px; }
+
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -85px -170px; }
+
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -102px -170px; }
+
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -170px; }
+
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum > .tsd-kind-icon:before {
+ background-position: -170px -170px; }
+
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -187px -170px; }
+
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -170px; }
+
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-interface > .tsd-kind-icon:before {
+ background-position: -204px -170px; }
+
+.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -221px -170px; }
+
+.tsd-is-static.tsd-kind-event > .tsd-kind-icon:before {
+ background-position: -136px -187px; }
+
+.tsd-is-static.tsd-kind-event.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -153px -187px; }
+
+.tsd-is-static.tsd-kind-event.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -187px; }
+
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-class > .tsd-kind-icon:before {
+ background-position: -51px -187px; }
+
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -68px -187px; }
+
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -85px -187px; }
+
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -102px -187px; }
+
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -187px; }
+
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-enum > .tsd-kind-icon:before {
+ background-position: -170px -187px; }
+
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before {
+ background-position: -187px -187px; }
+
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before {
+ background-position: -119px -187px; }
+
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-interface > .tsd-kind-icon:before {
+ background-position: -204px -187px; }
+
+.tsd-is-static.tsd-kind-event.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before {
+ background-position: -221px -187px; }
+
+.no-transition {
+ transition: none !important; }
+
+@keyframes fade-in {
+ from {
+ opacity: 0; }
+ to {
+ opacity: 1; } }
+
+@keyframes fade-out {
+ from {
+ opacity: 1;
+ visibility: visible; }
+ to {
+ opacity: 0; } }
+
+@keyframes fade-in-delayed {
+ 0% {
+ opacity: 0; }
+ 33% {
+ opacity: 0; }
+ 100% {
+ opacity: 1; } }
+
+@keyframes fade-out-delayed {
+ 0% {
+ opacity: 1;
+ visibility: visible; }
+ 66% {
+ opacity: 0; }
+ 100% {
+ opacity: 0; } }
+
+@keyframes shift-to-left {
+ from {
+ transform: translate(0, 0); }
+ to {
+ transform: translate(-25%, 0); } }
+
+@keyframes unshift-to-left {
+ from {
+ transform: translate(-25%, 0); }
+ to {
+ transform: translate(0, 0); } }
+
+@keyframes pop-in-from-right {
+ from {
+ transform: translate(100%, 0); }
+ to {
+ transform: translate(0, 0); } }
+
+@keyframes pop-out-to-right {
+ from {
+ transform: translate(0, 0);
+ visibility: visible; }
+ to {
+ transform: translate(100%, 0); } }
+
+body {
+ background: #fdfdfd;
+ font-family: "Segoe UI", sans-serif;
+ font-size: 16px;
+ color: #222; }
+
+a {
+ color: #4da6ff;
+ text-decoration: none; }
+ a:hover {
+ text-decoration: underline; }
+
+code, pre {
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
+ padding: 0.2em;
+ margin: 0;
+ font-size: 14px;
+ background-color: rgba(0, 0, 0, 0.04); }
+
+pre {
+ padding: 10px; }
+ pre code {
+ padding: 0;
+ font-size: 100%;
+ background-color: transparent; }
+
+.tsd-typography {
+ line-height: 1.333em; }
+ .tsd-typography ul {
+ list-style: square;
+ padding: 0 0 0 20px;
+ margin: 0; }
+ .tsd-typography h4, .tsd-typography .tsd-index-panel h3, .tsd-index-panel .tsd-typography h3, .tsd-typography h5, .tsd-typography h6 {
+ font-size: 1em;
+ margin: 0; }
+ .tsd-typography h5, .tsd-typography h6 {
+ font-weight: normal; }
+ .tsd-typography p, .tsd-typography ul, .tsd-typography ol {
+ margin: 1em 0; }
+
+@media (min-width: 901px) and (max-width: 1024px) {
+ html.default .col-content {
+ width: 72%; }
+ html.default .col-menu {
+ width: 28%; }
+ html.default .tsd-navigation {
+ padding-left: 10px; } }
+
+@media (max-width: 900px) {
+ html.default .col-content {
+ float: none;
+ width: 100%; }
+ html.default .col-menu {
+ position: fixed !important;
+ overflow: auto;
+ -webkit-overflow-scrolling: touch;
+ overflow-scrolling: touch;
+ z-index: 1024;
+ top: 0 !important;
+ bottom: 0 !important;
+ left: auto !important;
+ right: 0 !important;
+ width: 100%;
+ padding: 20px 20px 0 0;
+ max-width: 450px;
+ visibility: hidden;
+ background-color: #fff;
+ transform: translate(100%, 0); }
+ html.default .col-menu > *:last-child {
+ padding-bottom: 20px; }
+ html.default .overlay {
+ content: '';
+ display: block;
+ position: fixed;
+ z-index: 1023;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background-color: rgba(0, 0, 0, 0.75);
+ visibility: hidden; }
+ html.default.to-has-menu .overlay {
+ animation: fade-in 0.4s; }
+ html.default.to-has-menu header,
+ html.default.to-has-menu footer,
+ html.default.to-has-menu .col-content {
+ animation: shift-to-left 0.4s; }
+ html.default.to-has-menu .col-menu {
+ animation: pop-in-from-right 0.4s; }
+ html.default.from-has-menu .overlay {
+ animation: fade-out 0.4s; }
+ html.default.from-has-menu header,
+ html.default.from-has-menu footer,
+ html.default.from-has-menu .col-content {
+ animation: unshift-to-left 0.4s; }
+ html.default.from-has-menu .col-menu {
+ animation: pop-out-to-right 0.4s; }
+ html.default.has-menu body {
+ overflow: hidden; }
+ html.default.has-menu .overlay {
+ visibility: visible; }
+ html.default.has-menu header,
+ html.default.has-menu footer,
+ html.default.has-menu .col-content {
+ transform: translate(-25%, 0); }
+ html.default.has-menu .col-menu {
+ visibility: visible;
+ transform: translate(0, 0); } }
+
+.tsd-page-title {
+ padding: 70px 0 20px 0;
+ margin: 0 0 40px 0;
+ background: #fff;
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.35); }
+ .tsd-page-title h1 {
+ margin: 0; }
+
+.tsd-breadcrumb {
+ margin: 0;
+ padding: 0;
+ color: #808080; }
+ .tsd-breadcrumb a {
+ color: #808080;
+ text-decoration: none; }
+ .tsd-breadcrumb a:hover {
+ text-decoration: underline; }
+ .tsd-breadcrumb li {
+ display: inline; }
+ .tsd-breadcrumb li:after {
+ content: ' / '; }
+
+html.minimal .container {
+ margin: 0; }
+
+html.minimal .container-main {
+ padding-top: 50px;
+ padding-bottom: 0; }
+
+html.minimal .content-wrap {
+ padding-left: 300px; }
+
+html.minimal .tsd-navigation {
+ position: fixed !important;
+ overflow: auto;
+ -webkit-overflow-scrolling: touch;
+ overflow-scrolling: touch;
+ box-sizing: border-box;
+ z-index: 1;
+ left: 0;
+ top: 40px;
+ bottom: 0;
+ width: 300px;
+ padding: 20px;
+ margin: 0; }
+
+html.minimal .tsd-member .tsd-member {
+ margin-left: 0; }
+
+html.minimal .tsd-page-toolbar {
+ position: fixed;
+ z-index: 2; }
+
+html.minimal #tsd-filter .tsd-filter-group {
+ right: 0;
+ transform: none; }
+
+html.minimal footer {
+ background-color: transparent; }
+ html.minimal footer .container {
+ padding: 0; }
+
+html.minimal .tsd-generator {
+ padding: 0; }
+
+@media (max-width: 900px) {
+ html.minimal .tsd-navigation {
+ display: none; }
+ html.minimal .content-wrap {
+ padding-left: 0; } }
+
+dl.tsd-comment-tags {
+ overflow: hidden; }
+ dl.tsd-comment-tags dt {
+ float: left;
+ padding: 1px 5px;
+ margin: 0 10px 0 0;
+ border-radius: 4px;
+ border: 1px solid #808080;
+ color: #808080;
+ font-size: 0.8em;
+ font-weight: normal; }
+ dl.tsd-comment-tags dd {
+ margin: 0 0 10px 0; }
+ dl.tsd-comment-tags dd:before, dl.tsd-comment-tags dd:after {
+ display: table;
+ content: " "; }
+ dl.tsd-comment-tags dd pre, dl.tsd-comment-tags dd:after {
+ clear: both; }
+ dl.tsd-comment-tags p {
+ margin: 0; }
+
+.tsd-panel.tsd-comment .lead {
+ font-size: 1.1em;
+ line-height: 1.333em;
+ margin-bottom: 2em; }
+ .tsd-panel.tsd-comment .lead:last-child {
+ margin-bottom: 0; }
+
+.toggle-protected .tsd-is-private {
+ display: none; }
+
+.toggle-public .tsd-is-private,
+.toggle-public .tsd-is-protected,
+.toggle-public .tsd-is-private-protected {
+ display: none; }
+
+.toggle-inherited .tsd-is-inherited {
+ display: none; }
+
+.toggle-only-exported .tsd-is-not-exported {
+ display: none; }
+
+.toggle-externals .tsd-is-external {
+ display: none; }
+
+#tsd-filter {
+ position: relative;
+ display: inline-block;
+ height: 40px;
+ vertical-align: bottom; }
+ .no-filter #tsd-filter {
+ display: none; }
+ #tsd-filter .tsd-filter-group {
+ display: inline-block;
+ height: 40px;
+ vertical-align: bottom;
+ white-space: nowrap; }
+ #tsd-filter input {
+ display: none; }
+ @media (max-width: 900px) {
+ #tsd-filter .tsd-filter-group {
+ display: block;
+ position: absolute;
+ top: 40px;
+ right: 20px;
+ height: auto;
+ background-color: #fff;
+ visibility: hidden;
+ transform: translate(50%, 0);
+ box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); }
+ .has-options #tsd-filter .tsd-filter-group {
+ visibility: visible; }
+ .to-has-options #tsd-filter .tsd-filter-group {
+ animation: fade-in 0.2s; }
+ .from-has-options #tsd-filter .tsd-filter-group {
+ animation: fade-out 0.2s; }
+ #tsd-filter label,
+ #tsd-filter .tsd-select {
+ display: block;
+ padding-right: 20px; } }
+
+footer {
+ border-top: 1px solid #eee;
+ background-color: #fff; }
+ footer.with-border-bottom {
+ border-bottom: 1px solid #eee; }
+ footer .tsd-legend-group {
+ font-size: 0; }
+ footer .tsd-legend {
+ display: inline-block;
+ width: 25%;
+ padding: 0;
+ font-size: 16px;
+ list-style: none;
+ line-height: 1.333em;
+ vertical-align: top; }
+ @media (max-width: 900px) {
+ footer .tsd-legend {
+ width: 50%; } }
+
+.tsd-hierarchy {
+ list-style: square;
+ padding: 0 0 0 20px;
+ margin: 0; }
+ .tsd-hierarchy .target {
+ font-weight: bold; }
+
+.tsd-index-panel .tsd-index-content {
+ margin-bottom: -30px !important; }
+
+.tsd-index-panel .tsd-index-section {
+ margin-bottom: 30px !important; }
+
+.tsd-index-panel h3 {
+ margin: 0 -20px 10px -20px;
+ padding: 0 20px 10px 20px;
+ border-bottom: 1px solid #eee; }
+
+.tsd-index-panel ul.tsd-index-list {
+ -moz-column-count: 3;
+ -ms-column-count: 3;
+ -o-column-count: 3;
+ column-count: 3;
+ -moz-column-gap: 20px;
+ -ms-column-gap: 20px;
+ -o-column-gap: 20px;
+ column-gap: 20px;
+ padding: 0;
+ list-style: none;
+ line-height: 1.333em; }
+ @media (max-width: 900px) {
+ .tsd-index-panel ul.tsd-index-list {
+ -moz-column-count: 1;
+ -ms-column-count: 1;
+ -o-column-count: 1;
+ column-count: 1; } }
+ @media (min-width: 901px) and (max-width: 1024px) {
+ .tsd-index-panel ul.tsd-index-list {
+ -moz-column-count: 2;
+ -ms-column-count: 2;
+ -o-column-count: 2;
+ column-count: 2; } }
+ .tsd-index-panel ul.tsd-index-list li {
+ -webkit-column-break-inside: avoid;
+ -moz-column-break-inside: avoid;
+ -ms-column-break-inside: avoid;
+ -o-column-break-inside: avoid;
+ column-break-inside: avoid;
+ -webkit-page-break-inside: avoid;
+ -moz-page-break-inside: avoid;
+ -ms-page-break-inside: avoid;
+ -o-page-break-inside: avoid;
+ page-break-inside: avoid; }
+
+.tsd-index-panel a,
+.tsd-index-panel .tsd-parent-kind-module a {
+ color: #9600ff; }
+
+.tsd-index-panel .tsd-parent-kind-interface a {
+ color: #7da01f; }
+
+.tsd-index-panel .tsd-parent-kind-enum a {
+ color: #cc9900; }
+
+.tsd-index-panel .tsd-parent-kind-class a {
+ color: #4da6ff; }
+
+.tsd-index-panel .tsd-kind-module a {
+ color: #9600ff; }
+
+.tsd-index-panel .tsd-kind-interface a {
+ color: #7da01f; }
+
+.tsd-index-panel .tsd-kind-enum a {
+ color: #cc9900; }
+
+.tsd-index-panel .tsd-kind-class a {
+ color: #4da6ff; }
+
+.tsd-index-panel .tsd-is-private a {
+ color: #808080; }
+
+.tsd-flag {
+ display: inline-block;
+ padding: 1px 5px;
+ border-radius: 4px;
+ color: #fff;
+ background-color: #808080;
+ text-indent: 0;
+ font-size: 14px;
+ font-weight: normal; }
+
+.tsd-anchor {
+ position: absolute;
+ top: -100px; }
+
+.tsd-member {
+ position: relative; }
+ .tsd-member .tsd-anchor + h3 {
+ margin-top: 0;
+ margin-bottom: 0;
+ border-bottom: none; }
+
+.tsd-navigation {
+ padding: 0 0 0 40px; }
+ .tsd-navigation a {
+ display: block;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ border-left: 2px solid transparent;
+ color: #222;
+ text-decoration: none;
+ transition: border-left-color 0.1s; }
+ .tsd-navigation a:hover {
+ text-decoration: underline; }
+ .tsd-navigation ul {
+ margin: 0;
+ padding: 0;
+ list-style: none; }
+ .tsd-navigation li {
+ padding: 0; }
+
+.tsd-navigation.primary {
+ padding-bottom: 40px; }
+ .tsd-navigation.primary a {
+ display: block;
+ padding-top: 6px;
+ padding-bottom: 6px; }
+ .tsd-navigation.primary ul li a {
+ padding-left: 5px; }
+ .tsd-navigation.primary ul li li a {
+ padding-left: 25px; }
+ .tsd-navigation.primary ul li li li a {
+ padding-left: 45px; }
+ .tsd-navigation.primary ul li li li li a {
+ padding-left: 65px; }
+ .tsd-navigation.primary ul li li li li li a {
+ padding-left: 85px; }
+ .tsd-navigation.primary ul li li li li li li a {
+ padding-left: 105px; }
+ .tsd-navigation.primary > ul {
+ border-bottom: 1px solid #eee; }
+ .tsd-navigation.primary li {
+ border-top: 1px solid #eee; }
+ .tsd-navigation.primary li.current > a {
+ font-weight: bold; }
+ .tsd-navigation.primary li.label span {
+ display: block;
+ padding: 20px 0 6px 5px;
+ color: #808080; }
+ .tsd-navigation.primary li.globals + li > span,
+ .tsd-navigation.primary li.globals + li > a {
+ padding-top: 20px; }
+
+.tsd-navigation.secondary ul {
+ transition: opacity 0.2s; }
+ .tsd-navigation.secondary ul li a {
+ padding-left: 25px; }
+ .tsd-navigation.secondary ul li li a {
+ padding-left: 45px; }
+ .tsd-navigation.secondary ul li li li a {
+ padding-left: 65px; }
+ .tsd-navigation.secondary ul li li li li a {
+ padding-left: 85px; }
+ .tsd-navigation.secondary ul li li li li li a {
+ padding-left: 105px; }
+ .tsd-navigation.secondary ul li li li li li li a {
+ padding-left: 125px; }
+ .tsd-navigation.secondary ul.current a {
+ border-left-color: #eee; }
+
+.tsd-navigation.secondary li.focus > a,
+.tsd-navigation.secondary ul.current li.focus > a {
+ border-left-color: #000; }
+
+.tsd-navigation.secondary li.current {
+ margin-top: 20px;
+ margin-bottom: 20px;
+ border-left-color: #eee; }
+ .tsd-navigation.secondary li.current > a {
+ font-weight: bold; }
+
+@media (min-width: 901px) {
+ .menu-sticky-wrap {
+ position: static; }
+ .no-csspositionsticky .menu-sticky-wrap.sticky {
+ position: fixed; }
+ .no-csspositionsticky .menu-sticky-wrap.sticky-current {
+ position: fixed; }
+ .no-csspositionsticky .menu-sticky-wrap.sticky-current ul.before-current,
+ .no-csspositionsticky .menu-sticky-wrap.sticky-current ul.after-current {
+ opacity: 0; }
+ .no-csspositionsticky .menu-sticky-wrap.sticky-bottom {
+ position: absolute;
+ top: auto !important;
+ left: auto !important;
+ bottom: 0;
+ right: 0; }
+ .csspositionsticky .menu-sticky-wrap.sticky {
+ position: -webkit-sticky;
+ position: sticky; }
+ .csspositionsticky .menu-sticky-wrap.sticky-current {
+ position: -webkit-sticky;
+ position: sticky; } }
+
+.tsd-panel {
+ margin: 20px 0;
+ padding: 20px;
+ background-color: #fff;
+ box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); }
+ .tsd-panel:empty {
+ display: none; }
+ .tsd-panel > h1, .tsd-panel > h2, .tsd-panel > h3 {
+ margin: 1.5em -20px 10px -20px;
+ padding: 0 20px 10px 20px;
+ border-bottom: 1px solid #eee; }
+ .tsd-panel > h1.tsd-before-signature, .tsd-panel > h2.tsd-before-signature, .tsd-panel > h3.tsd-before-signature {
+ margin-bottom: 0;
+ border-bottom: 0; }
+ .tsd-panel table {
+ display: block;
+ width: 100%;
+ overflow: auto;
+ margin-top: 10px;
+ word-break: normal;
+ word-break: keep-all; }
+ .tsd-panel table th {
+ font-weight: bold; }
+ .tsd-panel table th, .tsd-panel table td {
+ padding: 6px 13px;
+ border: 1px solid #ddd; }
+ .tsd-panel table tr {
+ background-color: #fff;
+ border-top: 1px solid #ccc; }
+ .tsd-panel table tr:nth-child(2n) {
+ background-color: #f8f8f8; }
+
+.tsd-panel-group {
+ margin: 60px 0; }
+ .tsd-panel-group > h1, .tsd-panel-group > h2, .tsd-panel-group > h3 {
+ padding-left: 20px;
+ padding-right: 20px; }
+
+#tsd-search {
+ transition: background-color 0.2s; }
+ #tsd-search .title {
+ position: relative;
+ z-index: 2; }
+ #tsd-search .field {
+ position: absolute;
+ left: 0;
+ top: 0;
+ right: 40px;
+ height: 40px; }
+ #tsd-search .field input {
+ box-sizing: border-box;
+ position: relative;
+ top: -50px;
+ z-index: 1;
+ width: 100%;
+ padding: 0 10px;
+ opacity: 0;
+ outline: 0;
+ border: 0;
+ background: transparent;
+ color: #222; }
+ #tsd-search .field label {
+ position: absolute;
+ overflow: hidden;
+ right: -40px; }
+ #tsd-search .field input,
+ #tsd-search .title {
+ transition: opacity 0.2s; }
+ #tsd-search .results {
+ position: absolute;
+ visibility: hidden;
+ top: 40px;
+ width: 100%;
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); }
+ #tsd-search .results li {
+ padding: 0 10px;
+ background-color: #fdfdfd; }
+ #tsd-search .results li:nth-child(even) {
+ background-color: #fff; }
+ #tsd-search .results li.state {
+ display: none; }
+ #tsd-search .results li.current,
+ #tsd-search .results li:hover {
+ background-color: #eee; }
+ #tsd-search .results a {
+ display: block; }
+ #tsd-search .results a:before {
+ top: 10px; }
+ #tsd-search .results span.parent {
+ color: #808080;
+ font-weight: normal; }
+ #tsd-search.has-focus {
+ background-color: #eee; }
+ #tsd-search.has-focus .field input {
+ top: 0;
+ opacity: 1; }
+ #tsd-search.has-focus .title {
+ z-index: 0;
+ opacity: 0; }
+ #tsd-search.has-focus .results {
+ visibility: visible; }
+ #tsd-search.loading .results li.state.loading {
+ display: block; }
+ #tsd-search.failure .results li.state.failure {
+ display: block; }
+
+.tsd-signature {
+ margin: 0 0 1em 0;
+ padding: 10px;
+ border: 1px solid #eee;
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
+ font-size: 14px; }
+ .tsd-signature.tsd-kind-icon {
+ padding-left: 30px; }
+ .tsd-signature.tsd-kind-icon:before {
+ top: 10px;
+ left: 10px; }
+ .tsd-panel > .tsd-signature {
+ margin-left: -20px;
+ margin-right: -20px;
+ border-width: 1px 0; }
+ .tsd-panel > .tsd-signature.tsd-kind-icon {
+ padding-left: 40px; }
+ .tsd-panel > .tsd-signature.tsd-kind-icon:before {
+ left: 20px; }
+
+.tsd-signature-symbol {
+ color: #808080;
+ font-weight: normal; }
+
+.tsd-signature-type {
+ font-style: italic;
+ font-weight: normal; }
+
+.tsd-signatures {
+ padding: 0;
+ margin: 0 0 1em 0;
+ border: 1px solid #eee; }
+ .tsd-signatures .tsd-signature {
+ margin: 0;
+ border-width: 1px 0 0 0;
+ transition: background-color 0.1s; }
+ .tsd-signatures .tsd-signature:first-child {
+ border-top-width: 0; }
+ .tsd-signatures .tsd-signature.current {
+ background-color: #eee; }
+ .tsd-signatures.active > .tsd-signature {
+ cursor: pointer; }
+ .tsd-panel > .tsd-signatures {
+ margin-left: -20px;
+ margin-right: -20px;
+ border-width: 1px 0; }
+ .tsd-panel > .tsd-signatures .tsd-signature.tsd-kind-icon {
+ padding-left: 40px; }
+ .tsd-panel > .tsd-signatures .tsd-signature.tsd-kind-icon:before {
+ left: 20px; }
+ .tsd-panel > a.anchor + .tsd-signatures {
+ border-top-width: 0;
+ margin-top: -20px; }
+
+ul.tsd-descriptions {
+ position: relative;
+ overflow: hidden;
+ transition: height 0.3s;
+ padding: 0;
+ list-style: none; }
+ ul.tsd-descriptions.active > .tsd-description {
+ display: none; }
+ ul.tsd-descriptions.active > .tsd-description.current {
+ display: block; }
+ ul.tsd-descriptions.active > .tsd-description.fade-in {
+ animation: fade-in-delayed 0.3s; }
+ ul.tsd-descriptions.active > .tsd-description.fade-out {
+ animation: fade-out-delayed 0.3s;
+ position: absolute;
+ display: block;
+ top: 0;
+ left: 0;
+ right: 0;
+ opacity: 0;
+ visibility: hidden; }
+ ul.tsd-descriptions h4, ul.tsd-descriptions .tsd-index-panel h3, .tsd-index-panel ul.tsd-descriptions h3 {
+ font-size: 16px;
+ margin: 1em 0 0.5em 0; }
+
+ul.tsd-parameters,
+ul.tsd-type-parameters {
+ list-style: square;
+ margin: 0;
+ padding-left: 20px; }
+ ul.tsd-parameters > li.tsd-parameter-siganture,
+ ul.tsd-type-parameters > li.tsd-parameter-siganture {
+ list-style: none;
+ margin-left: -20px; }
+ ul.tsd-parameters h5,
+ ul.tsd-type-parameters h5 {
+ font-size: 16px;
+ margin: 1em 0 0.5em 0; }
+ ul.tsd-parameters .tsd-comment,
+ ul.tsd-type-parameters .tsd-comment {
+ margin-top: -0.5em; }
+
+.tsd-sources {
+ font-size: 14px;
+ color: #808080;
+ margin: 0 0 1em 0; }
+ .tsd-sources a {
+ color: #808080;
+ text-decoration: underline; }
+ .tsd-sources ul, .tsd-sources p {
+ margin: 0 !important; }
+ .tsd-sources ul {
+ list-style: none;
+ padding: 0; }
+
+.tsd-page-toolbar {
+ position: absolute;
+ z-index: 1;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 40px;
+ color: #333;
+ background: #fff;
+ border-bottom: 1px solid #eee; }
+ .tsd-page-toolbar a {
+ color: #333;
+ text-decoration: none; }
+ .tsd-page-toolbar a.title {
+ font-weight: bold; }
+ .tsd-page-toolbar a.title:hover {
+ text-decoration: underline; }
+ .tsd-page-toolbar .table-wrap {
+ display: table;
+ width: 100%;
+ height: 40px; }
+ .tsd-page-toolbar .table-cell {
+ display: table-cell;
+ position: relative;
+ white-space: nowrap;
+ line-height: 40px; }
+ .tsd-page-toolbar .table-cell:first-child {
+ width: 100%; }
+
+.tsd-widget:before, .tsd-select .tsd-select-label:before, .tsd-select .tsd-select-list li:before {
+ content: '';
+ display: inline-block;
+ width: 40px;
+ height: 40px;
+ margin: 0 -8px 0 0;
+ background-image: url(../images/widgets.png);
+ background-repeat: no-repeat;
+ text-indent: -1024px;
+ vertical-align: bottom; }
+ @media (-webkit-min-device-pixel-ratio: 1.5), (min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) {
+ .tsd-widget:before, .tsd-select .tsd-select-label:before, .tsd-select .tsd-select-list li:before {
+ background-image: url(../images/widgets@2x.png);
+ background-size: 320px 40px; } }
+
+.tsd-widget {
+ display: inline-block;
+ overflow: hidden;
+ opacity: 0.6;
+ height: 40px;
+ transition: opacity 0.1s, background-color 0.2s;
+ vertical-align: bottom;
+ cursor: pointer; }
+ .tsd-widget:hover {
+ opacity: 0.8; }
+ .tsd-widget.active {
+ opacity: 1;
+ background-color: #eee; }
+ .tsd-widget.no-caption {
+ width: 40px; }
+ .tsd-widget.no-caption:before {
+ margin: 0; }
+ .tsd-widget.search:before {
+ background-position: 0 0; }
+ .tsd-widget.menu:before {
+ background-position: -40px 0; }
+ .tsd-widget.options:before {
+ background-position: -80px 0; }
+ .tsd-widget.options, .tsd-widget.menu {
+ display: none; }
+ @media (max-width: 900px) {
+ .tsd-widget.options, .tsd-widget.menu {
+ display: inline-block; } }
+ input[type=checkbox] + .tsd-widget:before {
+ background-position: -120px 0; }
+ input[type=checkbox]:checked + .tsd-widget:before {
+ background-position: -160px 0; }
+
+.tsd-select {
+ position: relative;
+ display: inline-block;
+ height: 40px;
+ transition: opacity 0.1s, background-color 0.2s;
+ vertical-align: bottom;
+ cursor: pointer; }
+ .tsd-select .tsd-select-label {
+ opacity: 0.6;
+ transition: opacity 0.2s; }
+ .tsd-select .tsd-select-label:before {
+ background-position: -240px 0; }
+ .tsd-select.active .tsd-select-label {
+ opacity: 0.8; }
+ .tsd-select.active .tsd-select-list {
+ visibility: visible;
+ opacity: 1;
+ transition-delay: 0s; }
+ .tsd-select .tsd-select-list {
+ position: absolute;
+ visibility: hidden;
+ top: 40px;
+ left: 0;
+ margin: 0;
+ padding: 0;
+ opacity: 0;
+ list-style: none;
+ box-shadow: 0 0 4px rgba(0, 0, 0, 0.25);
+ transition: visibility 0s 0.2s, opacity 0.2s; }
+ .tsd-select .tsd-select-list li {
+ padding: 0 20px 0 0;
+ background-color: #fdfdfd; }
+ .tsd-select .tsd-select-list li:before {
+ background-position: 40px 0; }
+ .tsd-select .tsd-select-list li:nth-child(even) {
+ background-color: #fff; }
+ .tsd-select .tsd-select-list li:hover {
+ background-color: #eee; }
+ .tsd-select .tsd-select-list li.selected:before {
+ background-position: -200px 0; }
+ @media (max-width: 900px) {
+ .tsd-select .tsd-select-list {
+ top: 0;
+ left: auto;
+ right: 100%;
+ margin-right: -5px; }
+ .tsd-select .tsd-select-label:before {
+ background-position: -280px 0; } }
+
+img {
+ max-width: 100%; }
diff --git a/lib/docs/assets/images/icons.png b/lib/docs/assets/images/icons.png
new file mode 100644
index 0000000..3836d5f
Binary files /dev/null and b/lib/docs/assets/images/icons.png differ
diff --git a/lib/docs/assets/images/icons@2x.png b/lib/docs/assets/images/icons@2x.png
new file mode 100644
index 0000000..5a209e2
Binary files /dev/null and b/lib/docs/assets/images/icons@2x.png differ
diff --git a/lib/docs/assets/images/widgets.png b/lib/docs/assets/images/widgets.png
new file mode 100644
index 0000000..c738053
Binary files /dev/null and b/lib/docs/assets/images/widgets.png differ
diff --git a/lib/docs/assets/images/widgets@2x.png b/lib/docs/assets/images/widgets@2x.png
new file mode 100644
index 0000000..4bbbd57
Binary files /dev/null and b/lib/docs/assets/images/widgets@2x.png differ
diff --git a/lib/docs/assets/js/main.js b/lib/docs/assets/js/main.js
new file mode 100644
index 0000000..667b269
--- /dev/null
+++ b/lib/docs/assets/js/main.js
@@ -0,0 +1 @@
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";function x(e){return null!=e&&e===e.window}var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0>10|55296,1023&r|56320)}function oe(){T()}var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){for((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;o--;)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){for(var n=e.split("|"),r=n.length;r--;)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){for(var n,r=a([],e.length,o),i=r.length;i--;)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if(void 0!==t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if(void 0!==t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"!==e)return o;for(;n=o[i++];)1===n.nodeType&&r.push(n);return r},b.find.CLASS=d.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"!=typeof e)return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this);if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};function ve(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v)for(n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return void 0!==k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;l--;)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){for(l=(t=(t||"").match(R)||[""]).length;l--;)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){for(f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;o--;)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/
+