mirror of
				https://github.com/musix-org/musix-oss
				synced 2025-11-04 00:29:32 +00:00 
			
		
		
		
	Updated
This commit is contained in:
		
							
								
								
									
										155
									
								
								node_modules/es6-promise/CHANGELOG.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										155
									
								
								node_modules/es6-promise/CHANGELOG.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,155 @@
 | 
			
		||||
# Master
 | 
			
		||||
 | 
			
		||||
# 4.2.5
 | 
			
		||||
 | 
			
		||||
* remove old try/catch performance hacks, modern runtimes do not require these tricks
 | 
			
		||||
 | 
			
		||||
# 4.2.4
 | 
			
		||||
 | 
			
		||||
* [Fixes #305] Confuse webpack
 | 
			
		||||
 | 
			
		||||
# 4.2.3
 | 
			
		||||
 | 
			
		||||
* Cleanup testem related build configuration
 | 
			
		||||
* Use `prepublishOnly` instead of `prepublish` (thanks @rhysd)
 | 
			
		||||
* Add Node.js 9, 8 to testing matrix
 | 
			
		||||
* drop now unused s3 deployment files
 | 
			
		||||
* internal cleanup (thanks to @bekzod, @mariusschulz)
 | 
			
		||||
* Fixup Changelog
 | 
			
		||||
 | 
			
		||||
# 4.2.2
 | 
			
		||||
 | 
			
		||||
* Ensure PROMISE_ID works correctly
 | 
			
		||||
* internal cleanup (thanks yo @mariusschulz)
 | 
			
		||||
 | 
			
		||||
# 4.2.1
 | 
			
		||||
 | 
			
		||||
* drop bower support
 | 
			
		||||
 | 
			
		||||
# 4.2.0
 | 
			
		||||
 | 
			
		||||
* drop `dist` from git repo
 | 
			
		||||
* add `Promise.prototype.finally`
 | 
			
		||||
* update various build related dependencies
 | 
			
		||||
* add CDN links
 | 
			
		||||
 | 
			
		||||
# 4.1.0
 | 
			
		||||
 | 
			
		||||
* [BUGFIX] Fix memory leak [#269]
 | 
			
		||||
* [BUGFIX] Auto Bundles within an AMD Environment [#263]
 | 
			
		||||
 | 
			
		||||
# 4.0.5
 | 
			
		||||
 | 
			
		||||
* fix require('es6-promise/auto') for Node < 4
 | 
			
		||||
 | 
			
		||||
# 4.0.4
 | 
			
		||||
 | 
			
		||||
* fix asap when using https://github.com/Kinvey/titanium-sdk
 | 
			
		||||
 | 
			
		||||
# 4.0.3
 | 
			
		||||
 | 
			
		||||
* fix Readme links
 | 
			
		||||
 | 
			
		||||
# 4.0.2
 | 
			
		||||
 | 
			
		||||
* fix require('es6-promise/auto');
 | 
			
		||||
 | 
			
		||||
# 4.0.0
 | 
			
		||||
 | 
			
		||||
* no longer polyfill automatically, if needed one can still invoke
 | 
			
		||||
  `require('es6-promise/auto')` directly.
 | 
			
		||||
 | 
			
		||||
# 3.3.1
 | 
			
		||||
 | 
			
		||||
* fix links in readme
 | 
			
		||||
 | 
			
		||||
# 3.3.0
 | 
			
		||||
 | 
			
		||||
* support polyfil on WebMAF (playstation env)
 | 
			
		||||
* fix tampering related bug global `constructor` was referenced by mistake.
 | 
			
		||||
* provide TS Typings
 | 
			
		||||
* increase compatibliity with sinon.useFakeTimers();
 | 
			
		||||
* update build tools (use rollup)
 | 
			
		||||
* directly export promise;
 | 
			
		||||
 | 
			
		||||
# 3.2.2
 | 
			
		||||
 | 
			
		||||
* IE8: use isArray
 | 
			
		||||
* update build dependencies
 | 
			
		||||
 | 
			
		||||
# 3.2.1
 | 
			
		||||
 | 
			
		||||
* fix race tampering issue
 | 
			
		||||
* use eslint
 | 
			
		||||
* fix Promise.all tampering
 | 
			
		||||
* remove unused code
 | 
			
		||||
* fix issues with NWJS/electron
 | 
			
		||||
 | 
			
		||||
# 3.2.0
 | 
			
		||||
 | 
			
		||||
* improve tamper resistence of Promise.all Promise.race and
 | 
			
		||||
  Promise.prototype.then (note, this isn't complete, but addresses an exception
 | 
			
		||||
  when used \w core-js, follow up work will address entirely)
 | 
			
		||||
* remove spec incompatible then chaining fast-path
 | 
			
		||||
* add eslint
 | 
			
		||||
* update build deps
 | 
			
		||||
 | 
			
		||||
# 3.1.2
 | 
			
		||||
 | 
			
		||||
* fix node detection issues with NWJS/electron
 | 
			
		||||
 | 
			
		||||
# 3.1.0
 | 
			
		||||
 | 
			
		||||
* improve performance of Promise.all when it encounters a non-promise input object input
 | 
			
		||||
* then/resolve tamper protection
 | 
			
		||||
* reduce AST size of promise constructor, to facilitate more inlining
 | 
			
		||||
* Update README.md with details about PhantomJS requirement for running tests
 | 
			
		||||
* Mangle and compress the minified version
 | 
			
		||||
 | 
			
		||||
# 3.0.2
 | 
			
		||||
 | 
			
		||||
* correctly bump both bower and package.json versions
 | 
			
		||||
 | 
			
		||||
# 3.0.1
 | 
			
		||||
 | 
			
		||||
* no longer include dist/test in npm releases
 | 
			
		||||
 | 
			
		||||
# 3.0.0
 | 
			
		||||
 | 
			
		||||
* use nextTick() instead of setImmediate() to schedule microtasks with node 0.10. Later versions of
 | 
			
		||||
  nodes are not affected as they were already using nextTick(). Note that using nextTick() might
 | 
			
		||||
  trigger a depreciation warning on 0.10 as described at https://github.com/cujojs/when/issues/410.
 | 
			
		||||
  The reason why nextTick() is preferred is that is setImmediate() would schedule a macrotask
 | 
			
		||||
  instead of a microtask and might result in a different scheduling.
 | 
			
		||||
  If needed you can revert to the former behavior as follow:
 | 
			
		||||
 | 
			
		||||
    var Promise = require('es6-promise').Promise;
 | 
			
		||||
    Promise._setScheduler(setImmediate);
 | 
			
		||||
 | 
			
		||||
# 2.3.0
 | 
			
		||||
 | 
			
		||||
* #121: Ability to override the internal asap implementation
 | 
			
		||||
* #120: Use an ascii character for an apostrophe, for source maps
 | 
			
		||||
 | 
			
		||||
# 2.2.0
 | 
			
		||||
 | 
			
		||||
* #116: Expose asap() and a way to override the scheduling mechanism on Promise
 | 
			
		||||
* Lock to v0.2.3 of ember-cli
 | 
			
		||||
 | 
			
		||||
# 2.1.1
 | 
			
		||||
 | 
			
		||||
* Fix #100 via #105: tell browserify to ignore vertx require
 | 
			
		||||
* Fix #101 via #102: "follow thenable state, not own state"
 | 
			
		||||
 | 
			
		||||
# 2.1.0
 | 
			
		||||
 | 
			
		||||
* #59: Automatic polyfill. No need to invoke `ES6Promise.polyfill()` anymore.
 | 
			
		||||
* ... (see the commit log)
 | 
			
		||||
 | 
			
		||||
# 2.0.0
 | 
			
		||||
 | 
			
		||||
* re-sync with RSVP. Many large performance improvements and bugfixes.
 | 
			
		||||
 | 
			
		||||
# 1.0.0
 | 
			
		||||
 | 
			
		||||
* first subset of RSVP
 | 
			
		||||
							
								
								
									
										19
									
								
								node_modules/es6-promise/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								node_modules/es6-promise/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
 | 
			
		||||
this software and associated documentation files (the "Software"), to deal in
 | 
			
		||||
the Software without restriction, including without limitation the rights to
 | 
			
		||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
 | 
			
		||||
of the Software, and to permit persons to whom the Software is furnished to do
 | 
			
		||||
so, subject to the following conditions:
 | 
			
		||||
 | 
			
		||||
The above copyright notice and this permission notice shall be included in all
 | 
			
		||||
copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
			
		||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
			
		||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
			
		||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
			
		||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
			
		||||
SOFTWARE.
 | 
			
		||||
							
								
								
									
										97
									
								
								node_modules/es6-promise/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								node_modules/es6-promise/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,97 @@
 | 
			
		||||
# ES6-Promise (subset of [rsvp.js](https://github.com/tildeio/rsvp.js)) [](https://travis-ci.org/stefanpenner/es6-promise)
 | 
			
		||||
 | 
			
		||||
This is a polyfill of the [ES6 Promise](http://www.ecma-international.org/ecma-262/6.0/#sec-promise-constructor). The implementation is a subset of [rsvp.js](https://github.com/tildeio/rsvp.js) extracted by @jakearchibald, if you're wanting extra features and more debugging options, check out the [full library](https://github.com/tildeio/rsvp.js).
 | 
			
		||||
 | 
			
		||||
For API details and how to use promises, see the <a href="http://www.html5rocks.com/en/tutorials/es6/promises/">JavaScript Promises HTML5Rocks article</a>.
 | 
			
		||||
 | 
			
		||||
## Downloads
 | 
			
		||||
 | 
			
		||||
* [es6-promise 27.86 KB (7.33 KB gzipped)](https://cdn.jsdelivr.net/npm/es6-promise/dist/es6-promise.js)
 | 
			
		||||
* [es6-promise-auto 27.78 KB (7.3 KB gzipped)](https://cdn.jsdelivr.net/npm/es6-promise/dist/es6-promise.auto.js) - Automatically provides/replaces `Promise` if missing or broken.
 | 
			
		||||
* [es6-promise-min 6.17 KB (2.4 KB gzipped)](https://cdn.jsdelivr.net/npm/es6-promise/dist/es6-promise.min.js)
 | 
			
		||||
* [es6-promise-auto-min 6.19 KB (2.4 KB gzipped)](https://cdn.jsdelivr.net/npm/es6-promise/dist/es6-promise.auto.min.js) - Minified version of `es6-promise-auto` above.
 | 
			
		||||
 | 
			
		||||
## CDN 
 | 
			
		||||
 | 
			
		||||
To use via a CDN include this in your html:
 | 
			
		||||
 | 
			
		||||
```html
 | 
			
		||||
<!-- Automatically provides/replaces `Promise` if missing or broken. -->
 | 
			
		||||
<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.js"></script>
 | 
			
		||||
<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.js"></script> 
 | 
			
		||||
 | 
			
		||||
<!-- Minified version of `es6-promise-auto` below. -->
 | 
			
		||||
<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.min.js"></script>
 | 
			
		||||
<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.min.js"></script> 
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Node.js
 | 
			
		||||
 | 
			
		||||
To install:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
yarn add es6-promise
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
or
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
npm install es6-promise
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
To use:
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
var Promise = require('es6-promise').Promise;
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Usage in IE<9
 | 
			
		||||
 | 
			
		||||
`catch` and `finally` are reserved keywords in IE<9, meaning
 | 
			
		||||
`promise.catch(func)` or `promise.finally(func)` throw a syntax error. To work
 | 
			
		||||
around this, you can use a string to access the property as shown in the
 | 
			
		||||
following example.
 | 
			
		||||
 | 
			
		||||
However most minifiers will automatically fix this for you, making the
 | 
			
		||||
resulting code safe for old browsers and production:
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
promise['catch'](function(err) {
 | 
			
		||||
  // ...
 | 
			
		||||
});
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
promise['finally'](function() {
 | 
			
		||||
  // ...
 | 
			
		||||
});
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Auto-polyfill
 | 
			
		||||
 | 
			
		||||
To polyfill the global environment (either in Node or in the browser via CommonJS) use the following code snippet:
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
require('es6-promise').polyfill();
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Alternatively
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
require('es6-promise/auto');
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Notice that we don't assign the result of `polyfill()` to any variable. The `polyfill()` method will patch the global environment (in this case to the `Promise` name) when called.
 | 
			
		||||
 | 
			
		||||
## Building & Testing
 | 
			
		||||
 | 
			
		||||
You will need to have PhantomJS installed globally in order to run the tests.
 | 
			
		||||
 | 
			
		||||
`npm install -g phantomjs`
 | 
			
		||||
 | 
			
		||||
* `npm run build` to build
 | 
			
		||||
* `npm test` to run tests
 | 
			
		||||
* `npm start` to run a build watcher, and webserver to test
 | 
			
		||||
* `npm run test:server` for a testem test runner and watching builder
 | 
			
		||||
							
								
								
									
										4
									
								
								node_modules/es6-promise/auto.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								node_modules/es6-promise/auto.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
			
		||||
// This file can be required in Browserify and Node.js for automatic polyfill
 | 
			
		||||
// To use it:  require('es6-promise/auto');
 | 
			
		||||
'use strict';
 | 
			
		||||
module.exports = require('./').polyfill();
 | 
			
		||||
							
								
								
									
										1176
									
								
								node_modules/es6-promise/dist/es6-promise.auto.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1176
									
								
								node_modules/es6-promise/dist/es6-promise.auto.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1
									
								
								node_modules/es6-promise/dist/es6-promise.auto.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/es6-promise/dist/es6-promise.auto.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								node_modules/es6-promise/dist/es6-promise.auto.min.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/es6-promise/dist/es6-promise.auto.min.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								node_modules/es6-promise/dist/es6-promise.auto.min.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/es6-promise/dist/es6-promise.auto.min.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1174
									
								
								node_modules/es6-promise/dist/es6-promise.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1174
									
								
								node_modules/es6-promise/dist/es6-promise.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1
									
								
								node_modules/es6-promise/dist/es6-promise.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/es6-promise/dist/es6-promise.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								node_modules/es6-promise/dist/es6-promise.min.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/es6-promise/dist/es6-promise.min.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								node_modules/es6-promise/dist/es6-promise.min.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/es6-promise/dist/es6-promise.min.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										85
									
								
								node_modules/es6-promise/es6-promise.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								node_modules/es6-promise/es6-promise.d.ts
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,85 @@
 | 
			
		||||
export interface Thenable <R> {
 | 
			
		||||
  then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => U | Thenable<U>): Thenable<U>;
 | 
			
		||||
  then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => void): Thenable<U>;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export class Promise <R> implements Thenable <R> {
 | 
			
		||||
  /**
 | 
			
		||||
   * If you call resolve in the body of the callback passed to the constructor,
 | 
			
		||||
   * your promise is fulfilled with result object passed to resolve.
 | 
			
		||||
   * If you call reject your promise is rejected with the object passed to resolve.
 | 
			
		||||
   * For consistency and debugging (eg stack traces), obj should be an instanceof Error.
 | 
			
		||||
   * Any errors thrown in the constructor callback will be implicitly passed to reject().
 | 
			
		||||
   */
 | 
			
		||||
  constructor (callback: (resolve : (value?: R | Thenable<R>) => void, reject: (error?: any) => void) => void);
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * onFulfilled is called when/if "promise" resolves. onRejected is called when/if "promise" rejects.
 | 
			
		||||
   * Both are optional, if either/both are omitted the next onFulfilled/onRejected in the chain is called.
 | 
			
		||||
   * Both callbacks have a single parameter , the fulfillment value or rejection reason.
 | 
			
		||||
   * "then" returns a new promise equivalent to the value you return from onFulfilled/onRejected after being passed through Promise.resolve.
 | 
			
		||||
   * If an error is thrown in the callback, the returned promise rejects with that error.
 | 
			
		||||
   *
 | 
			
		||||
   * @param onFulfilled called when/if "promise" resolves
 | 
			
		||||
   * @param onRejected called when/if "promise" rejects
 | 
			
		||||
   */
 | 
			
		||||
  then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => U | Thenable<U>): Promise<U>;
 | 
			
		||||
  then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => void): Promise<U>;
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Sugar for promise.then(undefined, onRejected)
 | 
			
		||||
   *
 | 
			
		||||
   * @param onRejected called when/if "promise" rejects
 | 
			
		||||
   */
 | 
			
		||||
  catch <U> (onRejected?: (error: any) => U | Thenable<U>): Promise<U>;
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * onSettled is invoked when/if the "promise" settles (either rejects or fulfills).
 | 
			
		||||
   * The returned promise is settled when the `Thenable` returned by `onFinally` settles;
 | 
			
		||||
   * it is rejected if `onFinally` throws or rejects; otherwise it assumes the state of the
 | 
			
		||||
   * original Promise.
 | 
			
		||||
   *
 | 
			
		||||
   * @param onFinally called when/if "promise" settles
 | 
			
		||||
 | 
			
		||||
   */
 | 
			
		||||
  finally (onFinally?: () => any | Thenable<any>): Promise<R>;
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Make a new promise from the thenable.
 | 
			
		||||
   * A thenable is promise-like in as far as it has a "then" method.
 | 
			
		||||
   */
 | 
			
		||||
  static resolve (): Promise<void>;
 | 
			
		||||
  static resolve <R> (value: R | Thenable<R>): Promise<R>;
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Make a promise that rejects to obj. For consistency and debugging (eg stack traces), obj should be an instanceof Error
 | 
			
		||||
   */
 | 
			
		||||
  static reject <R> (error: any): Promise<R>;
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Make a promise that fulfills when every item in the array fulfills, and rejects if (and when) any item rejects.
 | 
			
		||||
   * the array passed to all can be a mixture of promise-like objects and other objects.
 | 
			
		||||
   * The fulfillment value is an array (in order) of fulfillment values. The rejection value is the first rejection value.
 | 
			
		||||
   */
 | 
			
		||||
  static all<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>, T9 | Thenable<T9>, T10 | Thenable<T10>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;
 | 
			
		||||
  static all<T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>, T9 | Thenable<T9>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;
 | 
			
		||||
  static all<T1, T2, T3, T4, T5, T6, T7, T8>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;
 | 
			
		||||
  static all<T1, T2, T3, T4, T5, T6, T7>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;
 | 
			
		||||
  static all<T1, T2, T3, T4, T5, T6>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>]): Promise<[T1, T2, T3, T4, T5, T6]>;
 | 
			
		||||
  static all<T1, T2, T3, T4, T5>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>]): Promise<[T1, T2, T3, T4, T5]>;
 | 
			
		||||
  static all<T1, T2, T3, T4>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>]): Promise<[T1, T2, T3, T4]>;
 | 
			
		||||
  static all<T1, T2, T3>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>]): Promise<[T1, T2, T3]>;
 | 
			
		||||
  static all<T1, T2>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>]): Promise<[T1, T2]>;
 | 
			
		||||
  static all<T1>(values: [T1 | Thenable<T1>]): Promise<[T1]>;
 | 
			
		||||
  static all<TAll>(values: Array<TAll | Thenable<TAll>>): Promise<TAll[]>;
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Make a Promise that fulfills when any item fulfills, and rejects if any item rejects.
 | 
			
		||||
   */
 | 
			
		||||
  static race <R> (promises: (R | Thenable<R>)[]): Promise<R>;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * The polyfill method will patch the global environment (in this case to the Promise name) when called.
 | 
			
		||||
 */
 | 
			
		||||
export function polyfill (): void;
 | 
			
		||||
							
								
								
									
										3
									
								
								node_modules/es6-promise/lib/es6-promise.auto.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								node_modules/es6-promise/lib/es6-promise.auto.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
import Promise from './es6-promise';
 | 
			
		||||
Promise.polyfill();
 | 
			
		||||
export default Promise;
 | 
			
		||||
							
								
								
									
										7
									
								
								node_modules/es6-promise/lib/es6-promise.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								node_modules/es6-promise/lib/es6-promise.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
import Promise from './es6-promise/promise';
 | 
			
		||||
import polyfill from './es6-promise/polyfill';
 | 
			
		||||
 | 
			
		||||
// Strange compat..
 | 
			
		||||
Promise.polyfill = polyfill;
 | 
			
		||||
Promise.Promise = Promise;
 | 
			
		||||
export default Promise;
 | 
			
		||||
							
								
								
									
										243
									
								
								node_modules/es6-promise/lib/es6-promise/-internal.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										243
									
								
								node_modules/es6-promise/lib/es6-promise/-internal.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,243 @@
 | 
			
		||||
import {
 | 
			
		||||
  objectOrFunction,
 | 
			
		||||
  isFunction
 | 
			
		||||
} from './utils';
 | 
			
		||||
 | 
			
		||||
import {
 | 
			
		||||
  asap
 | 
			
		||||
} from './asap';
 | 
			
		||||
 | 
			
		||||
import originalThen from './then';
 | 
			
		||||
import originalResolve from './promise/resolve';
 | 
			
		||||
 | 
			
		||||
export const PROMISE_ID = Math.random().toString(36).substring(2);
 | 
			
		||||
 | 
			
		||||
function noop() {}
 | 
			
		||||
 | 
			
		||||
const PENDING   = void 0;
 | 
			
		||||
const FULFILLED = 1;
 | 
			
		||||
const REJECTED  = 2;
 | 
			
		||||
 | 
			
		||||
function selfFulfillment() {
 | 
			
		||||
  return new TypeError("You cannot resolve a promise with itself");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function cannotReturnOwn() {
 | 
			
		||||
  return new TypeError('A promises callback cannot return that same promise.');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function tryThen(then, value, fulfillmentHandler, rejectionHandler) {
 | 
			
		||||
  try {
 | 
			
		||||
    then.call(value, fulfillmentHandler, rejectionHandler);
 | 
			
		||||
  } catch(e) {
 | 
			
		||||
    return e;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function handleForeignThenable(promise, thenable, then) {
 | 
			
		||||
   asap(promise => {
 | 
			
		||||
    let sealed = false;
 | 
			
		||||
    let error = tryThen(then, thenable, value => {
 | 
			
		||||
      if (sealed) { return; }
 | 
			
		||||
      sealed = true;
 | 
			
		||||
      if (thenable !== value) {
 | 
			
		||||
        resolve(promise, value);
 | 
			
		||||
      } else {
 | 
			
		||||
        fulfill(promise, value);
 | 
			
		||||
      }
 | 
			
		||||
    }, reason => {
 | 
			
		||||
      if (sealed) { return; }
 | 
			
		||||
      sealed = true;
 | 
			
		||||
 | 
			
		||||
      reject(promise, reason);
 | 
			
		||||
    }, 'Settle: ' + (promise._label || ' unknown promise'));
 | 
			
		||||
 | 
			
		||||
    if (!sealed && error) {
 | 
			
		||||
      sealed = true;
 | 
			
		||||
      reject(promise, error);
 | 
			
		||||
    }
 | 
			
		||||
  }, promise);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function handleOwnThenable(promise, thenable) {
 | 
			
		||||
  if (thenable._state === FULFILLED) {
 | 
			
		||||
    fulfill(promise, thenable._result);
 | 
			
		||||
  } else if (thenable._state === REJECTED) {
 | 
			
		||||
    reject(promise, thenable._result);
 | 
			
		||||
  } else {
 | 
			
		||||
    subscribe(thenable, undefined, value  => resolve(promise, value),
 | 
			
		||||
                                   reason => reject(promise, reason))
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function handleMaybeThenable(promise, maybeThenable, then) {
 | 
			
		||||
  if (maybeThenable.constructor === promise.constructor &&
 | 
			
		||||
      then === originalThen &&
 | 
			
		||||
      maybeThenable.constructor.resolve === originalResolve) {
 | 
			
		||||
    handleOwnThenable(promise, maybeThenable);
 | 
			
		||||
  } else {
 | 
			
		||||
    if (then === undefined) {
 | 
			
		||||
      fulfill(promise, maybeThenable);
 | 
			
		||||
    } else if (isFunction(then)) {
 | 
			
		||||
      handleForeignThenable(promise, maybeThenable, then);
 | 
			
		||||
    } else {
 | 
			
		||||
      fulfill(promise, maybeThenable);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function resolve(promise, value) {
 | 
			
		||||
  if (promise === value) {
 | 
			
		||||
    reject(promise, selfFulfillment());
 | 
			
		||||
  } else if (objectOrFunction(value)) {
 | 
			
		||||
    let then;
 | 
			
		||||
    try {
 | 
			
		||||
      then = value.then;
 | 
			
		||||
    } catch (error) {
 | 
			
		||||
      reject(promise, error);
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
    handleMaybeThenable(promise, value, then);
 | 
			
		||||
  } else {
 | 
			
		||||
    fulfill(promise, value);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function publishRejection(promise) {
 | 
			
		||||
  if (promise._onerror) {
 | 
			
		||||
    promise._onerror(promise._result);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  publish(promise);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function fulfill(promise, value) {
 | 
			
		||||
  if (promise._state !== PENDING) { return; }
 | 
			
		||||
 | 
			
		||||
  promise._result = value;
 | 
			
		||||
  promise._state = FULFILLED;
 | 
			
		||||
 | 
			
		||||
  if (promise._subscribers.length !== 0) {
 | 
			
		||||
    asap(publish, promise);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function reject(promise, reason) {
 | 
			
		||||
  if (promise._state !== PENDING) { return; }
 | 
			
		||||
  promise._state = REJECTED;
 | 
			
		||||
  promise._result = reason;
 | 
			
		||||
 | 
			
		||||
  asap(publishRejection, promise);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function subscribe(parent, child, onFulfillment, onRejection) {
 | 
			
		||||
  let { _subscribers } = parent;
 | 
			
		||||
  let { length } = _subscribers;
 | 
			
		||||
 | 
			
		||||
  parent._onerror = null;
 | 
			
		||||
 | 
			
		||||
  _subscribers[length] = child;
 | 
			
		||||
  _subscribers[length + FULFILLED] = onFulfillment;
 | 
			
		||||
  _subscribers[length + REJECTED]  = onRejection;
 | 
			
		||||
 | 
			
		||||
  if (length === 0 && parent._state) {
 | 
			
		||||
    asap(publish, parent);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function publish(promise) {
 | 
			
		||||
  let subscribers = promise._subscribers;
 | 
			
		||||
  let settled = promise._state;
 | 
			
		||||
 | 
			
		||||
  if (subscribers.length === 0) { return; }
 | 
			
		||||
 | 
			
		||||
  let child, callback, detail = promise._result;
 | 
			
		||||
 | 
			
		||||
  for (let i = 0; i < subscribers.length; i += 3) {
 | 
			
		||||
    child = subscribers[i];
 | 
			
		||||
    callback = subscribers[i + settled];
 | 
			
		||||
 | 
			
		||||
    if (child) {
 | 
			
		||||
      invokeCallback(settled, child, callback, detail);
 | 
			
		||||
    } else {
 | 
			
		||||
      callback(detail);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  promise._subscribers.length = 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function invokeCallback(settled, promise, callback, detail) {
 | 
			
		||||
  let hasCallback = isFunction(callback),
 | 
			
		||||
      value, error, succeeded = true;
 | 
			
		||||
 | 
			
		||||
  if (hasCallback) {
 | 
			
		||||
    try {
 | 
			
		||||
      value = callback(detail);
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      succeeded = false;
 | 
			
		||||
      error = e;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (promise === value) {
 | 
			
		||||
      reject(promise, cannotReturnOwn());
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
  } else {
 | 
			
		||||
    value = detail;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (promise._state !== PENDING) {
 | 
			
		||||
    // noop
 | 
			
		||||
  } else if (hasCallback && succeeded) {
 | 
			
		||||
    resolve(promise, value);
 | 
			
		||||
  } else if (succeeded === false) {
 | 
			
		||||
    reject(promise, error);
 | 
			
		||||
  } else if (settled === FULFILLED) {
 | 
			
		||||
    fulfill(promise, value);
 | 
			
		||||
  } else if (settled === REJECTED) {
 | 
			
		||||
    reject(promise, value);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function initializePromise(promise, resolver) {
 | 
			
		||||
  try {
 | 
			
		||||
    resolver(function resolvePromise(value){
 | 
			
		||||
      resolve(promise, value);
 | 
			
		||||
    }, function rejectPromise(reason) {
 | 
			
		||||
      reject(promise, reason);
 | 
			
		||||
    });
 | 
			
		||||
  } catch(e) {
 | 
			
		||||
    reject(promise, e);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
let id = 0;
 | 
			
		||||
function nextId() {
 | 
			
		||||
  return id++;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function makePromise(promise) {
 | 
			
		||||
  promise[PROMISE_ID] = id++;
 | 
			
		||||
  promise._state = undefined;
 | 
			
		||||
  promise._result = undefined;
 | 
			
		||||
  promise._subscribers = [];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export {
 | 
			
		||||
  nextId,
 | 
			
		||||
  makePromise,
 | 
			
		||||
  noop,
 | 
			
		||||
  resolve,
 | 
			
		||||
  reject,
 | 
			
		||||
  fulfill,
 | 
			
		||||
  subscribe,
 | 
			
		||||
  publish,
 | 
			
		||||
  publishRejection,
 | 
			
		||||
  initializePromise,
 | 
			
		||||
  invokeCallback,
 | 
			
		||||
  FULFILLED,
 | 
			
		||||
  REJECTED,
 | 
			
		||||
  PENDING,
 | 
			
		||||
  handleMaybeThenable
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										119
									
								
								node_modules/es6-promise/lib/es6-promise/asap.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								node_modules/es6-promise/lib/es6-promise/asap.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,119 @@
 | 
			
		||||
let len = 0;
 | 
			
		||||
let vertxNext;
 | 
			
		||||
let customSchedulerFn;
 | 
			
		||||
 | 
			
		||||
export var asap = function asap(callback, arg) {
 | 
			
		||||
  queue[len] = callback;
 | 
			
		||||
  queue[len + 1] = arg;
 | 
			
		||||
  len += 2;
 | 
			
		||||
  if (len === 2) {
 | 
			
		||||
    // If len is 2, that means that we need to schedule an async flush.
 | 
			
		||||
    // If additional callbacks are queued before the queue is flushed, they
 | 
			
		||||
    // will be processed by this flush that we are scheduling.
 | 
			
		||||
    if (customSchedulerFn) {
 | 
			
		||||
      customSchedulerFn(flush);
 | 
			
		||||
    } else {
 | 
			
		||||
      scheduleFlush();
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function setScheduler(scheduleFn) {
 | 
			
		||||
  customSchedulerFn = scheduleFn;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function setAsap(asapFn) {
 | 
			
		||||
  asap = asapFn;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const browserWindow = (typeof window !== 'undefined') ? window : undefined;
 | 
			
		||||
const browserGlobal = browserWindow || {};
 | 
			
		||||
const BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
 | 
			
		||||
const isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';
 | 
			
		||||
 | 
			
		||||
// test for web worker but not in IE10
 | 
			
		||||
const isWorker = typeof Uint8ClampedArray !== 'undefined' &&
 | 
			
		||||
  typeof importScripts !== 'undefined' &&
 | 
			
		||||
  typeof MessageChannel !== 'undefined';
 | 
			
		||||
 | 
			
		||||
// node
 | 
			
		||||
function useNextTick() {
 | 
			
		||||
  // node version 0.10.x displays a deprecation warning when nextTick is used recursively
 | 
			
		||||
  // see https://github.com/cujojs/when/issues/410 for details
 | 
			
		||||
  return () => process.nextTick(flush);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// vertx
 | 
			
		||||
function useVertxTimer() {
 | 
			
		||||
  if (typeof vertxNext !== 'undefined') {
 | 
			
		||||
    return function() {
 | 
			
		||||
      vertxNext(flush);
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return useSetTimeout();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function useMutationObserver() {
 | 
			
		||||
  let iterations = 0;
 | 
			
		||||
  const observer = new BrowserMutationObserver(flush);
 | 
			
		||||
  const node = document.createTextNode('');
 | 
			
		||||
  observer.observe(node, { characterData: true });
 | 
			
		||||
 | 
			
		||||
  return () => {
 | 
			
		||||
    node.data = (iterations = ++iterations % 2);
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// web worker
 | 
			
		||||
function useMessageChannel() {
 | 
			
		||||
  const channel = new MessageChannel();
 | 
			
		||||
  channel.port1.onmessage = flush;
 | 
			
		||||
  return () => channel.port2.postMessage(0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function useSetTimeout() {
 | 
			
		||||
  // Store setTimeout reference so es6-promise will be unaffected by
 | 
			
		||||
  // other code modifying setTimeout (like sinon.useFakeTimers())
 | 
			
		||||
  const globalSetTimeout = setTimeout;
 | 
			
		||||
  return () => globalSetTimeout(flush, 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const queue = new Array(1000);
 | 
			
		||||
function flush() {
 | 
			
		||||
  for (let i = 0; i < len; i+=2) {
 | 
			
		||||
    let callback = queue[i];
 | 
			
		||||
    let arg = queue[i+1];
 | 
			
		||||
 | 
			
		||||
    callback(arg);
 | 
			
		||||
 | 
			
		||||
    queue[i] = undefined;
 | 
			
		||||
    queue[i+1] = undefined;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  len = 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function attemptVertx() {
 | 
			
		||||
  try {
 | 
			
		||||
    const vertx = Function('return this')().require('vertx');
 | 
			
		||||
    vertxNext = vertx.runOnLoop || vertx.runOnContext;
 | 
			
		||||
    return useVertxTimer();
 | 
			
		||||
  } catch(e) {
 | 
			
		||||
    return useSetTimeout();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
let scheduleFlush;
 | 
			
		||||
// Decide what async method to use to triggering processing of queued callbacks:
 | 
			
		||||
if (isNode) {
 | 
			
		||||
  scheduleFlush = useNextTick();
 | 
			
		||||
} else if (BrowserMutationObserver) {
 | 
			
		||||
  scheduleFlush = useMutationObserver();
 | 
			
		||||
} else if (isWorker) {
 | 
			
		||||
  scheduleFlush = useMessageChannel();
 | 
			
		||||
} else if (browserWindow === undefined && typeof require === 'function') {
 | 
			
		||||
  scheduleFlush = attemptVertx();
 | 
			
		||||
} else {
 | 
			
		||||
  scheduleFlush = useSetTimeout();
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										124
									
								
								node_modules/es6-promise/lib/es6-promise/enumerator.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										124
									
								
								node_modules/es6-promise/lib/es6-promise/enumerator.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,124 @@
 | 
			
		||||
import {
 | 
			
		||||
  isArray,
 | 
			
		||||
  isMaybeThenable
 | 
			
		||||
} from './utils';
 | 
			
		||||
import {
 | 
			
		||||
  noop,
 | 
			
		||||
  reject,
 | 
			
		||||
  fulfill,
 | 
			
		||||
  subscribe,
 | 
			
		||||
  FULFILLED,
 | 
			
		||||
  REJECTED,
 | 
			
		||||
  PENDING,
 | 
			
		||||
  handleMaybeThenable
 | 
			
		||||
} from './-internal';
 | 
			
		||||
 | 
			
		||||
import then from './then';
 | 
			
		||||
import Promise from './promise';
 | 
			
		||||
import originalResolve from './promise/resolve';
 | 
			
		||||
import originalThen from './then';
 | 
			
		||||
import { makePromise, PROMISE_ID } from './-internal';
 | 
			
		||||
 | 
			
		||||
function validationError() {
 | 
			
		||||
  return new Error('Array Methods must be provided an Array');
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default class Enumerator {
 | 
			
		||||
  constructor(Constructor, input) {
 | 
			
		||||
    this._instanceConstructor = Constructor;
 | 
			
		||||
    this.promise = new Constructor(noop);
 | 
			
		||||
 | 
			
		||||
    if (!this.promise[PROMISE_ID]) {
 | 
			
		||||
      makePromise(this.promise);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (isArray(input)) {
 | 
			
		||||
      this.length     = input.length;
 | 
			
		||||
      this._remaining = input.length;
 | 
			
		||||
 | 
			
		||||
      this._result = new Array(this.length);
 | 
			
		||||
 | 
			
		||||
      if (this.length === 0) {
 | 
			
		||||
        fulfill(this.promise, this._result);
 | 
			
		||||
      } else {
 | 
			
		||||
        this.length = this.length || 0;
 | 
			
		||||
        this._enumerate(input);
 | 
			
		||||
        if (this._remaining === 0) {
 | 
			
		||||
          fulfill(this.promise, this._result);
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    } else {
 | 
			
		||||
      reject(this.promise, validationError());
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  _enumerate(input) {
 | 
			
		||||
    for (let i = 0; this._state === PENDING && i < input.length; i++) {
 | 
			
		||||
      this._eachEntry(input[i], i);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  _eachEntry(entry, i) {
 | 
			
		||||
    let c = this._instanceConstructor;
 | 
			
		||||
    let { resolve } = c;
 | 
			
		||||
 | 
			
		||||
    if (resolve === originalResolve) {
 | 
			
		||||
      let then;
 | 
			
		||||
      let error;
 | 
			
		||||
      let didError = false;
 | 
			
		||||
      try {
 | 
			
		||||
        then = entry.then;
 | 
			
		||||
      } catch (e) {
 | 
			
		||||
        didError = true;
 | 
			
		||||
        error = e;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (then === originalThen &&
 | 
			
		||||
        entry._state !== PENDING) {
 | 
			
		||||
        this._settledAt(entry._state, i, entry._result);
 | 
			
		||||
      } else if (typeof then !== 'function') {
 | 
			
		||||
        this._remaining--;
 | 
			
		||||
        this._result[i] = entry;
 | 
			
		||||
      } else if (c === Promise) {
 | 
			
		||||
        let promise = new c(noop);
 | 
			
		||||
        if (didError) {
 | 
			
		||||
          reject(promise, error);
 | 
			
		||||
        } else {
 | 
			
		||||
          handleMaybeThenable(promise, entry, then);
 | 
			
		||||
        }
 | 
			
		||||
        this._willSettleAt(promise, i);
 | 
			
		||||
      } else {
 | 
			
		||||
        this._willSettleAt(new c(resolve => resolve(entry)), i);
 | 
			
		||||
      }
 | 
			
		||||
    } else {
 | 
			
		||||
      this._willSettleAt(resolve(entry), i);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  _settledAt(state, i, value) {
 | 
			
		||||
    let { promise } = this;
 | 
			
		||||
 | 
			
		||||
    if (promise._state === PENDING) {
 | 
			
		||||
      this._remaining--;
 | 
			
		||||
 | 
			
		||||
      if (state === REJECTED) {
 | 
			
		||||
        reject(promise, value);
 | 
			
		||||
      } else {
 | 
			
		||||
        this._result[i] = value;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (this._remaining === 0) {
 | 
			
		||||
      fulfill(promise, this._result);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  _willSettleAt(promise, i) {
 | 
			
		||||
    let enumerator = this;
 | 
			
		||||
 | 
			
		||||
    subscribe(
 | 
			
		||||
      promise, undefined,
 | 
			
		||||
      value => enumerator._settledAt(FULFILLED, i, value),
 | 
			
		||||
      reason => enumerator._settledAt(REJECTED, i, reason)
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										35
									
								
								node_modules/es6-promise/lib/es6-promise/polyfill.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								node_modules/es6-promise/lib/es6-promise/polyfill.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
/*global self*/
 | 
			
		||||
import Promise from './promise';
 | 
			
		||||
 | 
			
		||||
export default function polyfill() {
 | 
			
		||||
  let local;
 | 
			
		||||
 | 
			
		||||
  if (typeof global !== 'undefined') {
 | 
			
		||||
    local = global;
 | 
			
		||||
  } else if (typeof self !== 'undefined') {
 | 
			
		||||
    local = self;
 | 
			
		||||
  } else {
 | 
			
		||||
    try {
 | 
			
		||||
      local = Function('return this')();
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      throw new Error('polyfill failed because global object is unavailable in this environment');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  let P = local.Promise;
 | 
			
		||||
 | 
			
		||||
  if (P) {
 | 
			
		||||
    var promiseToString = null;
 | 
			
		||||
    try {
 | 
			
		||||
      promiseToString = Object.prototype.toString.call(P.resolve());
 | 
			
		||||
    } catch(e) {
 | 
			
		||||
      // silently ignored
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (promiseToString === '[object Promise]' && !P.cast){
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  local.Promise = Promise;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										431
									
								
								node_modules/es6-promise/lib/es6-promise/promise.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										431
									
								
								node_modules/es6-promise/lib/es6-promise/promise.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,431 @@
 | 
			
		||||
import {
 | 
			
		||||
  isFunction
 | 
			
		||||
} from './utils';
 | 
			
		||||
import {
 | 
			
		||||
  noop,
 | 
			
		||||
  nextId,
 | 
			
		||||
  PROMISE_ID,
 | 
			
		||||
  initializePromise
 | 
			
		||||
} from './-internal';
 | 
			
		||||
import {
 | 
			
		||||
  asap,
 | 
			
		||||
  setAsap,
 | 
			
		||||
  setScheduler
 | 
			
		||||
} from './asap';
 | 
			
		||||
 | 
			
		||||
import all from './promise/all';
 | 
			
		||||
import race from './promise/race';
 | 
			
		||||
import Resolve from './promise/resolve';
 | 
			
		||||
import Reject from './promise/reject';
 | 
			
		||||
import then from './then';
 | 
			
		||||
 | 
			
		||||
function needsResolver() {
 | 
			
		||||
  throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function needsNew() {
 | 
			
		||||
  throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  Promise objects represent the eventual result of an asynchronous operation. The
 | 
			
		||||
  primary way of interacting with a promise is through its `then` method, which
 | 
			
		||||
  registers callbacks to receive either a promise's eventual value or the reason
 | 
			
		||||
  why the promise cannot be fulfilled.
 | 
			
		||||
 | 
			
		||||
  Terminology
 | 
			
		||||
  -----------
 | 
			
		||||
 | 
			
		||||
  - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
 | 
			
		||||
  - `thenable` is an object or function that defines a `then` method.
 | 
			
		||||
  - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
 | 
			
		||||
  - `exception` is a value that is thrown using the throw statement.
 | 
			
		||||
  - `reason` is a value that indicates why a promise was rejected.
 | 
			
		||||
  - `settled` the final resting state of a promise, fulfilled or rejected.
 | 
			
		||||
 | 
			
		||||
  A promise can be in one of three states: pending, fulfilled, or rejected.
 | 
			
		||||
 | 
			
		||||
  Promises that are fulfilled have a fulfillment value and are in the fulfilled
 | 
			
		||||
  state.  Promises that are rejected have a rejection reason and are in the
 | 
			
		||||
  rejected state.  A fulfillment value is never a thenable.
 | 
			
		||||
 | 
			
		||||
  Promises can also be said to *resolve* a value.  If this value is also a
 | 
			
		||||
  promise, then the original promise's settled state will match the value's
 | 
			
		||||
  settled state.  So a promise that *resolves* a promise that rejects will
 | 
			
		||||
  itself reject, and a promise that *resolves* a promise that fulfills will
 | 
			
		||||
  itself fulfill.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  Basic Usage:
 | 
			
		||||
  ------------
 | 
			
		||||
 | 
			
		||||
  ```js
 | 
			
		||||
  let promise = new Promise(function(resolve, reject) {
 | 
			
		||||
    // on success
 | 
			
		||||
    resolve(value);
 | 
			
		||||
 | 
			
		||||
    // on failure
 | 
			
		||||
    reject(reason);
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  promise.then(function(value) {
 | 
			
		||||
    // on fulfillment
 | 
			
		||||
  }, function(reason) {
 | 
			
		||||
    // on rejection
 | 
			
		||||
  });
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  Advanced Usage:
 | 
			
		||||
  ---------------
 | 
			
		||||
 | 
			
		||||
  Promises shine when abstracting away asynchronous interactions such as
 | 
			
		||||
  `XMLHttpRequest`s.
 | 
			
		||||
 | 
			
		||||
  ```js
 | 
			
		||||
  function getJSON(url) {
 | 
			
		||||
    return new Promise(function(resolve, reject){
 | 
			
		||||
      let xhr = new XMLHttpRequest();
 | 
			
		||||
 | 
			
		||||
      xhr.open('GET', url);
 | 
			
		||||
      xhr.onreadystatechange = handler;
 | 
			
		||||
      xhr.responseType = 'json';
 | 
			
		||||
      xhr.setRequestHeader('Accept', 'application/json');
 | 
			
		||||
      xhr.send();
 | 
			
		||||
 | 
			
		||||
      function handler() {
 | 
			
		||||
        if (this.readyState === this.DONE) {
 | 
			
		||||
          if (this.status === 200) {
 | 
			
		||||
            resolve(this.response);
 | 
			
		||||
          } else {
 | 
			
		||||
            reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      };
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  getJSON('/posts.json').then(function(json) {
 | 
			
		||||
    // on fulfillment
 | 
			
		||||
  }, function(reason) {
 | 
			
		||||
    // on rejection
 | 
			
		||||
  });
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  Unlike callbacks, promises are great composable primitives.
 | 
			
		||||
 | 
			
		||||
  ```js
 | 
			
		||||
  Promise.all([
 | 
			
		||||
    getJSON('/posts'),
 | 
			
		||||
    getJSON('/comments')
 | 
			
		||||
  ]).then(function(values){
 | 
			
		||||
    values[0] // => postsJSON
 | 
			
		||||
    values[1] // => commentsJSON
 | 
			
		||||
 | 
			
		||||
    return values;
 | 
			
		||||
  });
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  @class Promise
 | 
			
		||||
  @param {Function} resolver
 | 
			
		||||
  Useful for tooling.
 | 
			
		||||
  @constructor
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
class Promise {
 | 
			
		||||
  constructor(resolver) {
 | 
			
		||||
    this[PROMISE_ID] = nextId();
 | 
			
		||||
    this._result = this._state = undefined;
 | 
			
		||||
    this._subscribers = [];
 | 
			
		||||
 | 
			
		||||
    if (noop !== resolver) {
 | 
			
		||||
      typeof resolver !== 'function' && needsResolver();
 | 
			
		||||
      this instanceof Promise ? initializePromise(this, resolver) : needsNew();
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
  The primary way of interacting with a promise is through its `then` method,
 | 
			
		||||
  which registers callbacks to receive either a promise's eventual value or the
 | 
			
		||||
  reason why the promise cannot be fulfilled.
 | 
			
		||||
 | 
			
		||||
  ```js
 | 
			
		||||
  findUser().then(function(user){
 | 
			
		||||
    // user is available
 | 
			
		||||
  }, function(reason){
 | 
			
		||||
    // user is unavailable, and you are given the reason why
 | 
			
		||||
  });
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  Chaining
 | 
			
		||||
  --------
 | 
			
		||||
 | 
			
		||||
  The return value of `then` is itself a promise.  This second, 'downstream'
 | 
			
		||||
  promise is resolved with the return value of the first promise's fulfillment
 | 
			
		||||
  or rejection handler, or rejected if the handler throws an exception.
 | 
			
		||||
 | 
			
		||||
  ```js
 | 
			
		||||
  findUser().then(function (user) {
 | 
			
		||||
    return user.name;
 | 
			
		||||
  }, function (reason) {
 | 
			
		||||
    return 'default name';
 | 
			
		||||
  }).then(function (userName) {
 | 
			
		||||
    // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
 | 
			
		||||
    // will be `'default name'`
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  findUser().then(function (user) {
 | 
			
		||||
    throw new Error('Found user, but still unhappy');
 | 
			
		||||
  }, function (reason) {
 | 
			
		||||
    throw new Error('`findUser` rejected and we're unhappy');
 | 
			
		||||
  }).then(function (value) {
 | 
			
		||||
    // never reached
 | 
			
		||||
  }, function (reason) {
 | 
			
		||||
    // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
 | 
			
		||||
    // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
 | 
			
		||||
  });
 | 
			
		||||
  ```
 | 
			
		||||
  If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
 | 
			
		||||
 | 
			
		||||
  ```js
 | 
			
		||||
  findUser().then(function (user) {
 | 
			
		||||
    throw new PedagogicalException('Upstream error');
 | 
			
		||||
  }).then(function (value) {
 | 
			
		||||
    // never reached
 | 
			
		||||
  }).then(function (value) {
 | 
			
		||||
    // never reached
 | 
			
		||||
  }, function (reason) {
 | 
			
		||||
    // The `PedgagocialException` is propagated all the way down to here
 | 
			
		||||
  });
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  Assimilation
 | 
			
		||||
  ------------
 | 
			
		||||
 | 
			
		||||
  Sometimes the value you want to propagate to a downstream promise can only be
 | 
			
		||||
  retrieved asynchronously. This can be achieved by returning a promise in the
 | 
			
		||||
  fulfillment or rejection handler. The downstream promise will then be pending
 | 
			
		||||
  until the returned promise is settled. This is called *assimilation*.
 | 
			
		||||
 | 
			
		||||
  ```js
 | 
			
		||||
  findUser().then(function (user) {
 | 
			
		||||
    return findCommentsByAuthor(user);
 | 
			
		||||
  }).then(function (comments) {
 | 
			
		||||
    // The user's comments are now available
 | 
			
		||||
  });
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  If the assimliated promise rejects, then the downstream promise will also reject.
 | 
			
		||||
 | 
			
		||||
  ```js
 | 
			
		||||
  findUser().then(function (user) {
 | 
			
		||||
    return findCommentsByAuthor(user);
 | 
			
		||||
  }).then(function (comments) {
 | 
			
		||||
    // If `findCommentsByAuthor` fulfills, we'll have the value here
 | 
			
		||||
  }, function (reason) {
 | 
			
		||||
    // If `findCommentsByAuthor` rejects, we'll have the reason here
 | 
			
		||||
  });
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  Simple Example
 | 
			
		||||
  --------------
 | 
			
		||||
 | 
			
		||||
  Synchronous Example
 | 
			
		||||
 | 
			
		||||
  ```javascript
 | 
			
		||||
  let result;
 | 
			
		||||
 | 
			
		||||
  try {
 | 
			
		||||
    result = findResult();
 | 
			
		||||
    // success
 | 
			
		||||
  } catch(reason) {
 | 
			
		||||
    // failure
 | 
			
		||||
  }
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  Errback Example
 | 
			
		||||
 | 
			
		||||
  ```js
 | 
			
		||||
  findResult(function(result, err){
 | 
			
		||||
    if (err) {
 | 
			
		||||
      // failure
 | 
			
		||||
    } else {
 | 
			
		||||
      // success
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  Promise Example;
 | 
			
		||||
 | 
			
		||||
  ```javascript
 | 
			
		||||
  findResult().then(function(result){
 | 
			
		||||
    // success
 | 
			
		||||
  }, function(reason){
 | 
			
		||||
    // failure
 | 
			
		||||
  });
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  Advanced Example
 | 
			
		||||
  --------------
 | 
			
		||||
 | 
			
		||||
  Synchronous Example
 | 
			
		||||
 | 
			
		||||
  ```javascript
 | 
			
		||||
  let author, books;
 | 
			
		||||
 | 
			
		||||
  try {
 | 
			
		||||
    author = findAuthor();
 | 
			
		||||
    books  = findBooksByAuthor(author);
 | 
			
		||||
    // success
 | 
			
		||||
  } catch(reason) {
 | 
			
		||||
    // failure
 | 
			
		||||
  }
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  Errback Example
 | 
			
		||||
 | 
			
		||||
  ```js
 | 
			
		||||
 | 
			
		||||
  function foundBooks(books) {
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  function failure(reason) {
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  findAuthor(function(author, err){
 | 
			
		||||
    if (err) {
 | 
			
		||||
      failure(err);
 | 
			
		||||
      // failure
 | 
			
		||||
    } else {
 | 
			
		||||
      try {
 | 
			
		||||
        findBoooksByAuthor(author, function(books, err) {
 | 
			
		||||
          if (err) {
 | 
			
		||||
            failure(err);
 | 
			
		||||
          } else {
 | 
			
		||||
            try {
 | 
			
		||||
              foundBooks(books);
 | 
			
		||||
            } catch(reason) {
 | 
			
		||||
              failure(reason);
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        });
 | 
			
		||||
      } catch(error) {
 | 
			
		||||
        failure(err);
 | 
			
		||||
      }
 | 
			
		||||
      // success
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  Promise Example;
 | 
			
		||||
 | 
			
		||||
  ```javascript
 | 
			
		||||
  findAuthor().
 | 
			
		||||
    then(findBooksByAuthor).
 | 
			
		||||
    then(function(books){
 | 
			
		||||
      // found books
 | 
			
		||||
  }).catch(function(reason){
 | 
			
		||||
    // something went wrong
 | 
			
		||||
  });
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  @method then
 | 
			
		||||
  @param {Function} onFulfilled
 | 
			
		||||
  @param {Function} onRejected
 | 
			
		||||
  Useful for tooling.
 | 
			
		||||
  @return {Promise}
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
  `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
 | 
			
		||||
  as the catch block of a try/catch statement.
 | 
			
		||||
 | 
			
		||||
  ```js
 | 
			
		||||
  function findAuthor(){
 | 
			
		||||
    throw new Error('couldn't find that author');
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // synchronous
 | 
			
		||||
  try {
 | 
			
		||||
    findAuthor();
 | 
			
		||||
  } catch(reason) {
 | 
			
		||||
    // something went wrong
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // async with promises
 | 
			
		||||
  findAuthor().catch(function(reason){
 | 
			
		||||
    // something went wrong
 | 
			
		||||
  });
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  @method catch
 | 
			
		||||
  @param {Function} onRejection
 | 
			
		||||
  Useful for tooling.
 | 
			
		||||
  @return {Promise}
 | 
			
		||||
  */
 | 
			
		||||
  catch(onRejection) {
 | 
			
		||||
    return this.then(null, onRejection);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  `finally` will be invoked regardless of the promise's fate just as native
 | 
			
		||||
  try/catch/finally behaves
 | 
			
		||||
 | 
			
		||||
  Synchronous example:
 | 
			
		||||
 | 
			
		||||
  ```js
 | 
			
		||||
  findAuthor() {
 | 
			
		||||
    if (Math.random() > 0.5) {
 | 
			
		||||
      throw new Error();
 | 
			
		||||
    }
 | 
			
		||||
    return new Author();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  try {
 | 
			
		||||
    return findAuthor(); // succeed or fail
 | 
			
		||||
  } catch(error) {
 | 
			
		||||
    return findOtherAuther();
 | 
			
		||||
  } finally {
 | 
			
		||||
    // always runs
 | 
			
		||||
    // doesn't affect the return value
 | 
			
		||||
  }
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  Asynchronous example:
 | 
			
		||||
 | 
			
		||||
  ```js
 | 
			
		||||
  findAuthor().catch(function(reason){
 | 
			
		||||
    return findOtherAuther();
 | 
			
		||||
  }).finally(function(){
 | 
			
		||||
    // author was either found, or not
 | 
			
		||||
  });
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  @method finally
 | 
			
		||||
  @param {Function} callback
 | 
			
		||||
  @return {Promise}
 | 
			
		||||
*/
 | 
			
		||||
  finally(callback) {
 | 
			
		||||
    let promise = this;
 | 
			
		||||
    let constructor = promise.constructor;
 | 
			
		||||
 | 
			
		||||
    if ( isFunction(callback) ) {
 | 
			
		||||
      return promise.then(value => constructor.resolve(callback()).then(() => value),
 | 
			
		||||
                         reason => constructor.resolve(callback()).then(() => { throw reason; }));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return promise.then(callback, callback);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Promise.prototype.then = then;
 | 
			
		||||
export default Promise;
 | 
			
		||||
Promise.all = all;
 | 
			
		||||
Promise.race = race;
 | 
			
		||||
Promise.resolve = Resolve;
 | 
			
		||||
Promise.reject = Reject;
 | 
			
		||||
Promise._setScheduler = setScheduler;
 | 
			
		||||
Promise._setAsap = setAsap;
 | 
			
		||||
Promise._asap = asap;
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										52
									
								
								node_modules/es6-promise/lib/es6-promise/promise/all.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								node_modules/es6-promise/lib/es6-promise/promise/all.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
			
		||||
import Enumerator from '../enumerator';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  `Promise.all` accepts an array of promises, and returns a new promise which
 | 
			
		||||
  is fulfilled with an array of fulfillment values for the passed promises, or
 | 
			
		||||
  rejected with the reason of the first passed promise to be rejected. It casts all
 | 
			
		||||
  elements of the passed iterable to promises as it runs this algorithm.
 | 
			
		||||
 | 
			
		||||
  Example:
 | 
			
		||||
 | 
			
		||||
  ```javascript
 | 
			
		||||
  let promise1 = resolve(1);
 | 
			
		||||
  let promise2 = resolve(2);
 | 
			
		||||
  let promise3 = resolve(3);
 | 
			
		||||
  let promises = [ promise1, promise2, promise3 ];
 | 
			
		||||
 | 
			
		||||
  Promise.all(promises).then(function(array){
 | 
			
		||||
    // The array here would be [ 1, 2, 3 ];
 | 
			
		||||
  });
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  If any of the `promises` given to `all` are rejected, the first promise
 | 
			
		||||
  that is rejected will be given as an argument to the returned promises's
 | 
			
		||||
  rejection handler. For example:
 | 
			
		||||
 | 
			
		||||
  Example:
 | 
			
		||||
 | 
			
		||||
  ```javascript
 | 
			
		||||
  let promise1 = resolve(1);
 | 
			
		||||
  let promise2 = reject(new Error("2"));
 | 
			
		||||
  let promise3 = reject(new Error("3"));
 | 
			
		||||
  let promises = [ promise1, promise2, promise3 ];
 | 
			
		||||
 | 
			
		||||
  Promise.all(promises).then(function(array){
 | 
			
		||||
    // Code here never runs because there are rejected promises!
 | 
			
		||||
  }, function(error) {
 | 
			
		||||
    // error.message === "2"
 | 
			
		||||
  });
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  @method all
 | 
			
		||||
  @static
 | 
			
		||||
  @param {Array} entries array of promises
 | 
			
		||||
  @param {String} label optional string for labeling the promise.
 | 
			
		||||
  Useful for tooling.
 | 
			
		||||
  @return {Promise} promise that is fulfilled when all `promises` have been
 | 
			
		||||
  fulfilled, or rejected if any of them become rejected.
 | 
			
		||||
  @static
 | 
			
		||||
*/
 | 
			
		||||
export default function all(entries) {
 | 
			
		||||
  return new Enumerator(this, entries).promise;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										84
									
								
								node_modules/es6-promise/lib/es6-promise/promise/race.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								node_modules/es6-promise/lib/es6-promise/promise/race.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,84 @@
 | 
			
		||||
import {
 | 
			
		||||
  isArray
 | 
			
		||||
} from "../utils";
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  `Promise.race` returns a new promise which is settled in the same way as the
 | 
			
		||||
  first passed promise to settle.
 | 
			
		||||
 | 
			
		||||
  Example:
 | 
			
		||||
 | 
			
		||||
  ```javascript
 | 
			
		||||
  let promise1 = new Promise(function(resolve, reject){
 | 
			
		||||
    setTimeout(function(){
 | 
			
		||||
      resolve('promise 1');
 | 
			
		||||
    }, 200);
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  let promise2 = new Promise(function(resolve, reject){
 | 
			
		||||
    setTimeout(function(){
 | 
			
		||||
      resolve('promise 2');
 | 
			
		||||
    }, 100);
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  Promise.race([promise1, promise2]).then(function(result){
 | 
			
		||||
    // result === 'promise 2' because it was resolved before promise1
 | 
			
		||||
    // was resolved.
 | 
			
		||||
  });
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  `Promise.race` is deterministic in that only the state of the first
 | 
			
		||||
  settled promise matters. For example, even if other promises given to the
 | 
			
		||||
  `promises` array argument are resolved, but the first settled promise has
 | 
			
		||||
  become rejected before the other promises became fulfilled, the returned
 | 
			
		||||
  promise will become rejected:
 | 
			
		||||
 | 
			
		||||
  ```javascript
 | 
			
		||||
  let promise1 = new Promise(function(resolve, reject){
 | 
			
		||||
    setTimeout(function(){
 | 
			
		||||
      resolve('promise 1');
 | 
			
		||||
    }, 200);
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  let promise2 = new Promise(function(resolve, reject){
 | 
			
		||||
    setTimeout(function(){
 | 
			
		||||
      reject(new Error('promise 2'));
 | 
			
		||||
    }, 100);
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  Promise.race([promise1, promise2]).then(function(result){
 | 
			
		||||
    // Code here never runs
 | 
			
		||||
  }, function(reason){
 | 
			
		||||
    // reason.message === 'promise 2' because promise 2 became rejected before
 | 
			
		||||
    // promise 1 became fulfilled
 | 
			
		||||
  });
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  An example real-world use case is implementing timeouts:
 | 
			
		||||
 | 
			
		||||
  ```javascript
 | 
			
		||||
  Promise.race([ajax('foo.json'), timeout(5000)])
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  @method race
 | 
			
		||||
  @static
 | 
			
		||||
  @param {Array} promises array of promises to observe
 | 
			
		||||
  Useful for tooling.
 | 
			
		||||
  @return {Promise} a promise which settles in the same way as the first passed
 | 
			
		||||
  promise to settle.
 | 
			
		||||
*/
 | 
			
		||||
export default function race(entries) {
 | 
			
		||||
  /*jshint validthis:true */
 | 
			
		||||
  let Constructor = this;
 | 
			
		||||
 | 
			
		||||
  if (!isArray(entries)) {
 | 
			
		||||
    return new Constructor((_, reject) => reject(new TypeError('You must pass an array to race.')));
 | 
			
		||||
  } else {
 | 
			
		||||
    return new Constructor((resolve, reject) => {
 | 
			
		||||
      let length = entries.length;
 | 
			
		||||
      for (let i = 0; i < length; i++) {
 | 
			
		||||
        Constructor.resolve(entries[i]).then(resolve, reject);
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										46
									
								
								node_modules/es6-promise/lib/es6-promise/promise/reject.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								node_modules/es6-promise/lib/es6-promise/promise/reject.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
			
		||||
import {
 | 
			
		||||
  noop,
 | 
			
		||||
  reject as _reject
 | 
			
		||||
} from '../-internal';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  `Promise.reject` returns a promise rejected with the passed `reason`.
 | 
			
		||||
  It is shorthand for the following:
 | 
			
		||||
 | 
			
		||||
  ```javascript
 | 
			
		||||
  let promise = new Promise(function(resolve, reject){
 | 
			
		||||
    reject(new Error('WHOOPS'));
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  promise.then(function(value){
 | 
			
		||||
    // Code here doesn't run because the promise is rejected!
 | 
			
		||||
  }, function(reason){
 | 
			
		||||
    // reason.message === 'WHOOPS'
 | 
			
		||||
  });
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  Instead of writing the above, your code now simply becomes the following:
 | 
			
		||||
 | 
			
		||||
  ```javascript
 | 
			
		||||
  let promise = Promise.reject(new Error('WHOOPS'));
 | 
			
		||||
 | 
			
		||||
  promise.then(function(value){
 | 
			
		||||
    // Code here doesn't run because the promise is rejected!
 | 
			
		||||
  }, function(reason){
 | 
			
		||||
    // reason.message === 'WHOOPS'
 | 
			
		||||
  });
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  @method reject
 | 
			
		||||
  @static
 | 
			
		||||
  @param {Any} reason value that the returned promise will be rejected with.
 | 
			
		||||
  Useful for tooling.
 | 
			
		||||
  @return {Promise} a promise rejected with the given `reason`.
 | 
			
		||||
*/
 | 
			
		||||
export default function reject(reason) {
 | 
			
		||||
  /*jshint validthis:true */
 | 
			
		||||
  let Constructor = this;
 | 
			
		||||
  let promise = new Constructor(noop);
 | 
			
		||||
  _reject(promise, reason);
 | 
			
		||||
  return promise;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										48
									
								
								node_modules/es6-promise/lib/es6-promise/promise/resolve.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								node_modules/es6-promise/lib/es6-promise/promise/resolve.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,48 @@
 | 
			
		||||
import {
 | 
			
		||||
  noop,
 | 
			
		||||
  resolve as _resolve
 | 
			
		||||
} from '../-internal';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  `Promise.resolve` returns a promise that will become resolved with the
 | 
			
		||||
  passed `value`. It is shorthand for the following:
 | 
			
		||||
 | 
			
		||||
  ```javascript
 | 
			
		||||
  let promise = new Promise(function(resolve, reject){
 | 
			
		||||
    resolve(1);
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  promise.then(function(value){
 | 
			
		||||
    // value === 1
 | 
			
		||||
  });
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  Instead of writing the above, your code now simply becomes the following:
 | 
			
		||||
 | 
			
		||||
  ```javascript
 | 
			
		||||
  let promise = Promise.resolve(1);
 | 
			
		||||
 | 
			
		||||
  promise.then(function(value){
 | 
			
		||||
    // value === 1
 | 
			
		||||
  });
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  @method resolve
 | 
			
		||||
  @static
 | 
			
		||||
  @param {Any} value value that the returned promise will be resolved with
 | 
			
		||||
  Useful for tooling.
 | 
			
		||||
  @return {Promise} a promise that will become fulfilled with the given
 | 
			
		||||
  `value`
 | 
			
		||||
*/
 | 
			
		||||
export default function resolve(object) {
 | 
			
		||||
  /*jshint validthis:true */
 | 
			
		||||
  let Constructor = this;
 | 
			
		||||
 | 
			
		||||
  if (object && typeof object === 'object' && object.constructor === Constructor) {
 | 
			
		||||
    return object;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  let promise = new Constructor(noop);
 | 
			
		||||
  _resolve(promise, object);
 | 
			
		||||
  return promise;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										32
									
								
								node_modules/es6-promise/lib/es6-promise/then.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								node_modules/es6-promise/lib/es6-promise/then.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
import {
 | 
			
		||||
  invokeCallback,
 | 
			
		||||
  subscribe,
 | 
			
		||||
  FULFILLED,
 | 
			
		||||
  REJECTED,
 | 
			
		||||
  noop,
 | 
			
		||||
  makePromise,
 | 
			
		||||
  PROMISE_ID
 | 
			
		||||
} from './-internal';
 | 
			
		||||
 | 
			
		||||
import { asap } from './asap';
 | 
			
		||||
 | 
			
		||||
export default function then(onFulfillment, onRejection) {
 | 
			
		||||
  const parent = this;
 | 
			
		||||
 | 
			
		||||
  const child = new this.constructor(noop);
 | 
			
		||||
 | 
			
		||||
  if (child[PROMISE_ID] === undefined) {
 | 
			
		||||
    makePromise(child);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const { _state } = parent;
 | 
			
		||||
 | 
			
		||||
  if (_state) {
 | 
			
		||||
    const callback = arguments[_state - 1];
 | 
			
		||||
    asap(() => invokeCallback(_state, child, callback, parent._result));
 | 
			
		||||
  } else {
 | 
			
		||||
    subscribe(parent, child, onFulfillment, onRejection);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return child;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										21
									
								
								node_modules/es6-promise/lib/es6-promise/utils.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								node_modules/es6-promise/lib/es6-promise/utils.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
export function objectOrFunction(x) {
 | 
			
		||||
  let type = typeof x;
 | 
			
		||||
  return x !== null && (type === 'object' || type === 'function');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function isFunction(x) {
 | 
			
		||||
  return typeof x === 'function';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function isMaybeThenable(x) {
 | 
			
		||||
  return x !== null && typeof x === 'object';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
let _isArray;
 | 
			
		||||
if (Array.isArray) {
 | 
			
		||||
  _isArray = Array.isArray;
 | 
			
		||||
} else {
 | 
			
		||||
  _isArray = x => Object.prototype.toString.call(x) === '[object Array]';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export const isArray = _isArray;
 | 
			
		||||
							
								
								
									
										106
									
								
								node_modules/es6-promise/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										106
									
								
								node_modules/es6-promise/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,106 @@
 | 
			
		||||
{
 | 
			
		||||
  "_from": "es6-promise@^4.0.3",
 | 
			
		||||
  "_id": "es6-promise@4.2.8",
 | 
			
		||||
  "_inBundle": false,
 | 
			
		||||
  "_integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
 | 
			
		||||
  "_location": "/es6-promise",
 | 
			
		||||
  "_phantomChildren": {},
 | 
			
		||||
  "_requested": {
 | 
			
		||||
    "type": "range",
 | 
			
		||||
    "registry": true,
 | 
			
		||||
    "raw": "es6-promise@^4.0.3",
 | 
			
		||||
    "name": "es6-promise",
 | 
			
		||||
    "escapedName": "es6-promise",
 | 
			
		||||
    "rawSpec": "^4.0.3",
 | 
			
		||||
    "saveSpec": null,
 | 
			
		||||
    "fetchSpec": "^4.0.3"
 | 
			
		||||
  },
 | 
			
		||||
  "_requiredBy": [
 | 
			
		||||
    "/es6-promisify"
 | 
			
		||||
  ],
 | 
			
		||||
  "_resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
 | 
			
		||||
  "_shasum": "4eb21594c972bc40553d276e510539143db53e0a",
 | 
			
		||||
  "_spec": "es6-promise@^4.0.3",
 | 
			
		||||
  "_where": "C:\\Users\\matia\\Documents\\GitHub\\FutoX-Musix\\node_modules\\es6-promisify",
 | 
			
		||||
  "author": {
 | 
			
		||||
    "name": "Yehuda Katz, Tom Dale, Stefan Penner and contributors",
 | 
			
		||||
    "url": "Conversion to ES6 API by Jake Archibald"
 | 
			
		||||
  },
 | 
			
		||||
  "browser": {
 | 
			
		||||
    "vertx": false
 | 
			
		||||
  },
 | 
			
		||||
  "bugs": {
 | 
			
		||||
    "url": "https://github.com/stefanpenner/es6-promise/issues"
 | 
			
		||||
  },
 | 
			
		||||
  "bundleDependencies": false,
 | 
			
		||||
  "dependencies": {},
 | 
			
		||||
  "deprecated": false,
 | 
			
		||||
  "description": "A lightweight library that provides tools for organizing asynchronous code",
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
 | 
			
		||||
    "babel-plugin-transform-es2015-block-scoping": "^6.24.1",
 | 
			
		||||
    "babel-plugin-transform-es2015-classes": "^6.24.1",
 | 
			
		||||
    "babel-plugin-transform-es2015-computed-properties": "^6.24.1",
 | 
			
		||||
    "babel-plugin-transform-es2015-constants": "^6.1.4",
 | 
			
		||||
    "babel-plugin-transform-es2015-destructuring": "^6.23.0",
 | 
			
		||||
    "babel-plugin-transform-es2015-parameters": "^6.24.1",
 | 
			
		||||
    "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1",
 | 
			
		||||
    "babel-plugin-transform-es2015-spread": "^6.22.0",
 | 
			
		||||
    "babel-plugin-transform-es2015-template-literals": "^6.22.0",
 | 
			
		||||
    "babel6-plugin-strip-class-callcheck": "^6.0.0",
 | 
			
		||||
    "broccoli-babel-transpiler": "^6.0.0",
 | 
			
		||||
    "broccoli-concat": "^3.1.0",
 | 
			
		||||
    "broccoli-merge-trees": "^2.0.0",
 | 
			
		||||
    "broccoli-rollup": "^2.0.0",
 | 
			
		||||
    "broccoli-stew": "^1.5.0",
 | 
			
		||||
    "broccoli-uglify-js": "^0.2.0",
 | 
			
		||||
    "broccoli-watchify": "^1.0.1",
 | 
			
		||||
    "ember-cli": "2.18.0-beta.2",
 | 
			
		||||
    "ember-cli-dependency-checker": "^2.1.0",
 | 
			
		||||
    "git-repo-version": "1.0.1",
 | 
			
		||||
    "json3": "^3.3.2",
 | 
			
		||||
    "mocha": "^4.0.1",
 | 
			
		||||
    "promises-aplus-tests-phantom": "^2.1.0-revise"
 | 
			
		||||
  },
 | 
			
		||||
  "directories": {
 | 
			
		||||
    "lib": "lib"
 | 
			
		||||
  },
 | 
			
		||||
  "files": [
 | 
			
		||||
    "dist",
 | 
			
		||||
    "lib",
 | 
			
		||||
    "es6-promise.d.ts",
 | 
			
		||||
    "auto.js",
 | 
			
		||||
    "!dist/test"
 | 
			
		||||
  ],
 | 
			
		||||
  "homepage": "https://github.com/stefanpenner/es6-promise",
 | 
			
		||||
  "jsdelivr": "dist/es6-promise.auto.min.js",
 | 
			
		||||
  "keywords": [
 | 
			
		||||
    "futures",
 | 
			
		||||
    "polyfill",
 | 
			
		||||
    "promise",
 | 
			
		||||
    "promises"
 | 
			
		||||
  ],
 | 
			
		||||
  "license": "MIT",
 | 
			
		||||
  "main": "dist/es6-promise.js",
 | 
			
		||||
  "name": "es6-promise",
 | 
			
		||||
  "namespace": "es6-promise",
 | 
			
		||||
  "repository": {
 | 
			
		||||
    "type": "git",
 | 
			
		||||
    "url": "git://github.com/stefanpenner/es6-promise.git"
 | 
			
		||||
  },
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "build": "ember build --environment production",
 | 
			
		||||
    "prepublishOnly": "ember build --environment production",
 | 
			
		||||
    "start": "ember s",
 | 
			
		||||
    "test": "ember test",
 | 
			
		||||
    "test:browser": "ember test --launch PhantomJS",
 | 
			
		||||
    "test:node": "ember test --launch Mocha",
 | 
			
		||||
    "test:server": "ember test --server"
 | 
			
		||||
  },
 | 
			
		||||
  "spm": {
 | 
			
		||||
    "main": "dist/es6-promise.js"
 | 
			
		||||
  },
 | 
			
		||||
  "typings": "es6-promise.d.ts",
 | 
			
		||||
  "unpkg": "dist/es6-promise.auto.min.js",
 | 
			
		||||
  "version": "4.2.8"
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user