UNPKG

api-flow

Version:

A flow written in ES6 using Immutable to convert between API description formats (Swagger, etc.) and other programs such as cURL command lines.

1,584 lines (1,353 loc) 4.54 MB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("fs"), require("path"), require("util"), require("buffer"), require("url"), require("http"), require("https"), require("zlib"), require("stream"), require("events"), require("net"), require("punycode"), require("crypto"), require("dgram"), require("dns"), require("assert"), require("string_decoder"), require("tls"), require("querystring")); else if(typeof define === 'function' && define.amd) define(["fs", "path", "util", "buffer", "url", "http", "https", "zlib", "stream", "events", "net", "punycode", "crypto", "dgram", "dns", "assert", "string_decoder", "tls", "querystring"], factory); else { var a = typeof exports === 'object' ? factory(require("fs"), require("path"), require("util"), require("buffer"), require("url"), require("http"), require("https"), require("zlib"), require("stream"), require("events"), require("net"), require("punycode"), require("crypto"), require("dgram"), require("dns"), require("assert"), require("string_decoder"), require("tls"), require("querystring")) : factory(root["fs"], root["path"], root["util"], root["buffer"], root["url"], root["http"], root["https"], root["zlib"], root["stream"], root["events"], root["net"], root["punycode"], root["crypto"], root["dgram"], root["dns"], root["assert"], root["string_decoder"], root["tls"], root["querystring"]); for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; } })(this, function(__WEBPACK_EXTERNAL_MODULE_84__, __WEBPACK_EXTERNAL_MODULE_85__, __WEBPACK_EXTERNAL_MODULE_90__, __WEBPACK_EXTERNAL_MODULE_149__, __WEBPACK_EXTERNAL_MODULE_1200__, __WEBPACK_EXTERNAL_MODULE_1217__, __WEBPACK_EXTERNAL_MODULE_1218__, __WEBPACK_EXTERNAL_MODULE_1219__, __WEBPACK_EXTERNAL_MODULE_1224__, __WEBPACK_EXTERNAL_MODULE_1228__, __WEBPACK_EXTERNAL_MODULE_1273__, __WEBPACK_EXTERNAL_MODULE_1275__, __WEBPACK_EXTERNAL_MODULE_1283__, __WEBPACK_EXTERNAL_MODULE_1293__, __WEBPACK_EXTERNAL_MODULE_1294__, __WEBPACK_EXTERNAL_MODULE_1305__, __WEBPACK_EXTERNAL_MODULE_1353__, __WEBPACK_EXTERNAL_MODULE_1356__, __WEBPACK_EXTERNAL_MODULE_1370__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ exports: {}, /******/ id: moduleId, /******/ loaded: false /******/ }; /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ // Flag the module as loaded /******/ module.loaded = true; /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ // __webpack_public_path__ /******/ __webpack_require__.p = "/build/node/"; /******/ // Load entry module and return exports /******/ return __webpack_require__(0); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ function(module, exports, __webpack_require__) { module.exports = __webpack_require__(1); /***/ }, /* 1 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _keys = __webpack_require__(2); var _keys2 = _interopRequireDefault(_keys); var _promise = __webpack_require__(14); var _promise2 = _interopRequireDefault(_promise); var _getPrototypeOf = __webpack_require__(62); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _classCallCheck2 = __webpack_require__(65); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = __webpack_require__(66); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = __webpack_require__(69); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = __webpack_require__(78); var _inherits3 = _interopRequireDefault(_inherits2); var _class, _temp; var _fs = __webpack_require__(84); var _fs2 = _interopRequireDefault(_fs); var _path2 = __webpack_require__(85); var _path3 = _interopRequireDefault(_path2); var _package = __webpack_require__(86); var _package2 = _interopRequireDefault(_package); var _argparse = __webpack_require__(87); var _Options = __webpack_require__(112); var _Options2 = _interopRequireDefault(_Options); var _Parser = __webpack_require__(123); var _Parser2 = _interopRequireDefault(_Parser); var _Parser3 = __webpack_require__(1183); var _Parser4 = _interopRequireDefault(_Parser3); var _Parser5 = __webpack_require__(1250); var _Parser6 = _interopRequireDefault(_Parser5); var _Parser7 = __webpack_require__(1254); var _Parser8 = _interopRequireDefault(_Parser7); var _Parser9 = __webpack_require__(1256); var _Parser10 = _interopRequireDefault(_Parser9); var _Serializer = __webpack_require__(1257); var _Serializer2 = _interopRequireDefault(_Serializer); var _Serializer3 = __webpack_require__(1263); var _Serializer4 = _interopRequireDefault(_Serializer3); var _Serializer5 = __webpack_require__(1264); var _Serializer6 = _interopRequireDefault(_Serializer5); var _Serializer7 = __webpack_require__(1266); var _Serializer8 = _interopRequireDefault(_Serializer7); var _Serializer9 = __webpack_require__(1267); var _Serializer10 = _interopRequireDefault(_Serializer9); var _NodeEnvironment = __webpack_require__(1268); var _NodeEnvironment2 = _interopRequireDefault(_NodeEnvironment); var _baseRunner = __webpack_require__(1411); var _baseRunner2 = _interopRequireDefault(_baseRunner); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var FlowCLI = (_temp = _class = function (_BaseFlow) { (0, _inherits3.default)(FlowCLI, _BaseFlow); function FlowCLI() { (0, _classCallCheck3.default)(this, FlowCLI); return (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(FlowCLI).call(this, _NodeEnvironment2.default, _NodeEnvironment.URLResolver)); } (0, _createClass3.default)(FlowCLI, [{ key: 'getParsers', value: function getParsers() { return FlowCLI.parsers; } }, { key: 'getSerializers', value: function getSerializers() { return FlowCLI.serializers; } }, { key: 'load', value: function load(input, opts) { var url = null; var contentPromise = void 0; var base = opts.getIn(['resolver', 'base']); if (base === 'raw') { contentPromise = new _promise2.default(function (resolve) { return resolve(input); }); } else if (base === 'local') { (function () { var _path = _path3.default.resolve('./', input); contentPromise = new _promise2.default(function (resolve, reject) { _fs2.default.readFile(_path, function (err, data) { if (err) { return reject(err); } resolve(data.toString()); }); }); })(); } else { contentPromise = new this.URLResolver().resolve(input); url = input; } return contentPromise.then(function (content) { return { url: url, content: content }; }); } }, { key: 'getFormat', value: function getFormat(input, opts) { var _this2 = this; return this.load(input, opts).then(function (_ref) { var content = _ref.content; return content; }).then(function (content) { return _this2.detectFormat(content); }); } }, { key: 'getName', value: function getName(input, opts) { var _this3 = this; return this.load(input, opts).then(function (_ref2) { var content = _ref2.content; return content; }).then(function (content) { return _this3.detectName(content); }); } }, { key: '_createParser', value: function _createParser() { var parser = new _argparse.ArgumentParser({ version: _package2.default.version, addHelp: true, formatterClass: _argparse.RawTextHelpFormatter, description: _package2.default.description }); parser.addArgument(['source'], { help: 'The source file' }); parser.addArgument(['-d', '--detect-format'], { metavar: 'file', help: 'If this option is set, returns the format of the input file', nargs: 0, action: 'storeTrue' }); parser.addArgument(['-n', '--detect-name'], { metavar: 'file', help: 'If this option is set, returns the name of the input file', nargs: 0, action: 'storeTrue' }); parser.addArgument(['-c', '--config'], { metavar: 'path', help: 'The path to a JSON file representing the base options of ' + 'the command. These values are overriden by config values ' + 'provided directly as arguments', nargs: 1 }); var parsers = (0, _keys2.default)(this.getParsers()); parser.addArgument(['-f', '--from'], { metavar: 'format', help: 'The format of the source file', choices: parsers, nargs: 1, action: 'store' }); var serializers = (0, _keys2.default)(this.getSerializers()); parser.addArgument(['-t', '--to'], { metavar: 'format', help: 'The format of the destination file', choices: serializers, defaultValue: ['swagger'], nargs: 1, action: 'store' }); parser.addArgument(['-b', '--base'], { metavar: 'location', help: 'The location of the source file. If the location is set to ' + 'raw, the input source will expect the content instead of a ' + 'path or url', choices: ['local', 'remote', 'raw'], defaultValue: ['local'], nargs: 1 }); parser.addArgument(['-r', '--ref'], { metavar: ['uri', 'solve', 'val'], help: 'uri: The uri of the reference\n' + 'solve: A boolean describing whether to resolve ' + 'the reference\n' + 'val: The value to use for the reference\n' + 'All 3 parameters are required.', nargs: 3, action: 'append' }); parser.addArgument(['-p', '--param'], { metavar: ['key', 'val'], help: 'key: The key of the parameter\n' + 'val: The value to use for the parameter\n' + 'Both parameters are required.', nargs: 2, action: 'append' }); return parser; } }, { key: 'processArguments', value: function processArguments(parser) { var args = parser.parseArgs(); var config = new _Options2.default(); if (args.config) { try { var baseData = _fs2.default.readFileSync(args.config).toString(); var baseJSON = JSON.parse(baseData); config = new _Options2.default(baseJSON); } catch (e) { config = new _Options2.default(); } } if (args.from) { config = config.setIn(['parser', 'name'], args.from[0]).setIn(['parser', 'isDefault'], false); } if (args.to) { config = config.setIn(['serializer', 'name'], args.to[0]); } if (args.base) { config = config.setIn(['resolver', 'base'], args.base[0]); } if (args.ref || args.param) { var refs = (args.ref || []).map(function (ref) { return { uri: ref[0], resolve: ref[1], value: ref[2] }; }); var params = (args.param || []).map(function (param) { return { key: param[0], value: param[1] }; }); var resolution = config.getIn(['resolver', 'resolve']); resolution = resolution.addCustomResolutions(refs.concat(params)); config = config.setIn(['resolver', 'resolve'], resolution); } this.options = config; this.input = args.source; var action = 'transform'; if (args.detect_format) { action = 'format'; } else if (args.detect_name) { action = 'name'; } this.action = action; } }, { key: 'run', value: function run(_input, _options, _callback) { var callback = _callback || function (result) { return result; }; var actionMap = { format: this.getFormat.bind(this), name: this.getName.bind(this), transform: this.transform.bind(this) }; var actor = actionMap[this.action]; if (!actor) { return new Error('Unknown action: ', this.action); } var input = _input || this.input; var options = _options || this.options; return actor(input, options).then(callback).catch(function (e) { /* eslint-disable no-console */ console.error('error ..', e, e.stack); /* eslint-enable no-console */ }); } }]); return FlowCLI; }(_baseRunner2.default), _class.parsers = { swagger: _Parser2.default, raml: _Parser4.default, postman: _Parser6.default, curl: _Parser8.default, __internal__: _Parser10.default }, _class.serializers = { swagger: _Serializer2.default, raml: _Serializer4.default, postman: _Serializer6.default, curl: _Serializer8.default, __internal__: _Serializer10.default }, _temp); exports.default = FlowCLI; /***/ }, /* 2 */ /***/ function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(3), __esModule: true }; /***/ }, /* 3 */ /***/ function(module, exports, __webpack_require__) { __webpack_require__(4); module.exports = __webpack_require__(10).Object.keys; /***/ }, /* 4 */ /***/ function(module, exports, __webpack_require__) { // 19.1.2.14 Object.keys(O) var toObject = __webpack_require__(5); __webpack_require__(7)('keys', function($keys){ return function keys(it){ return $keys(toObject(it)); }; }); /***/ }, /* 5 */ /***/ function(module, exports, __webpack_require__) { // 7.1.13 ToObject(argument) var defined = __webpack_require__(6); module.exports = function(it){ return Object(defined(it)); }; /***/ }, /* 6 */ /***/ function(module, exports) { // 7.2.1 RequireObjectCoercible(argument) module.exports = function(it){ if(it == undefined)throw TypeError("Can't call method on " + it); return it; }; /***/ }, /* 7 */ /***/ function(module, exports, __webpack_require__) { // most Object methods by ES6 should accept primitives var $export = __webpack_require__(8) , core = __webpack_require__(10) , fails = __webpack_require__(13); module.exports = function(KEY, exec){ var fn = (core.Object || {})[KEY] || Object[KEY] , exp = {}; exp[KEY] = exec(fn); $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp); }; /***/ }, /* 8 */ /***/ function(module, exports, __webpack_require__) { var global = __webpack_require__(9) , core = __webpack_require__(10) , ctx = __webpack_require__(11) , PROTOTYPE = 'prototype'; var $export = function(type, name, source){ var IS_FORCED = type & $export.F , IS_GLOBAL = type & $export.G , IS_STATIC = type & $export.S , IS_PROTO = type & $export.P , IS_BIND = type & $export.B , IS_WRAP = type & $export.W , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] , key, own, out; if(IS_GLOBAL)source = name; for(key in source){ // contains in native own = !IS_FORCED && target && key in target; if(own && key in exports)continue; // export native or passed out = own ? target[key] : source[key]; // prevent global pollution for namespaces exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] // bind timers to global for call from export context : IS_BIND && own ? ctx(out, global) // wrap global constructors for prevent change them in library : IS_WRAP && target[key] == out ? (function(C){ var F = function(param){ return this instanceof C ? new C(param) : C(param); }; F[PROTOTYPE] = C[PROTOTYPE]; return F; // make static versions for prototype methods })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; if(IS_PROTO)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out; } }; // type bitmap $export.F = 1; // forced $export.G = 2; // global $export.S = 4; // static $export.P = 8; // proto $export.B = 16; // bind $export.W = 32; // wrap module.exports = $export; /***/ }, /* 9 */ /***/ function(module, exports) { // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef /***/ }, /* 10 */ /***/ function(module, exports) { var core = module.exports = {version: '1.2.6'}; if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef /***/ }, /* 11 */ /***/ function(module, exports, __webpack_require__) { // optional / simple context binding var aFunction = __webpack_require__(12); module.exports = function(fn, that, length){ aFunction(fn); if(that === undefined)return fn; switch(length){ case 1: return function(a){ return fn.call(that, a); }; case 2: return function(a, b){ return fn.call(that, a, b); }; case 3: return function(a, b, c){ return fn.call(that, a, b, c); }; } return function(/* ...args */){ return fn.apply(that, arguments); }; }; /***/ }, /* 12 */ /***/ function(module, exports) { module.exports = function(it){ if(typeof it != 'function')throw TypeError(it + ' is not a function!'); return it; }; /***/ }, /* 13 */ /***/ function(module, exports) { module.exports = function(exec){ try { return !!exec(); } catch(e){ return true; } }; /***/ }, /* 14 */ /***/ function(module, exports, __webpack_require__) { module.exports = { "default": __webpack_require__(15), __esModule: true }; /***/ }, /* 15 */ /***/ function(module, exports, __webpack_require__) { __webpack_require__(16); __webpack_require__(17); __webpack_require__(34); __webpack_require__(41); module.exports = __webpack_require__(10).Promise; /***/ }, /* 16 */ /***/ function(module, exports) { /***/ }, /* 17 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var $at = __webpack_require__(18)(true); // 21.1.3.27 String.prototype[@@iterator]() __webpack_require__(20)(String, 'String', function(iterated){ this._t = String(iterated); // target this._i = 0; // next index // 21.1.5.2.1 %StringIteratorPrototype%.next() }, function(){ var O = this._t , index = this._i , point; if(index >= O.length)return {value: undefined, done: true}; point = $at(O, index); this._i += point.length; return {value: point, done: false}; }); /***/ }, /* 18 */ /***/ function(module, exports, __webpack_require__) { var toInteger = __webpack_require__(19) , defined = __webpack_require__(6); // true -> String#at // false -> String#codePointAt module.exports = function(TO_STRING){ return function(that, pos){ var s = String(defined(that)) , i = toInteger(pos) , l = s.length , a, b; if(i < 0 || i >= l)return TO_STRING ? '' : undefined; a = s.charCodeAt(i); return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; }; }; /***/ }, /* 19 */ /***/ function(module, exports) { // 7.1.4 ToInteger var ceil = Math.ceil , floor = Math.floor; module.exports = function(it){ return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); }; /***/ }, /* 20 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var LIBRARY = __webpack_require__(21) , $export = __webpack_require__(8) , redefine = __webpack_require__(22) , hide = __webpack_require__(23) , has = __webpack_require__(27) , Iterators = __webpack_require__(28) , $iterCreate = __webpack_require__(29) , setToStringTag = __webpack_require__(30) , getProto = __webpack_require__(24).getProto , ITERATOR = __webpack_require__(31)('iterator') , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next` , FF_ITERATOR = '@@iterator' , KEYS = 'keys' , VALUES = 'values'; var returnThis = function(){ return this; }; module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){ $iterCreate(Constructor, NAME, next); var getMethod = function(kind){ if(!BUGGY && kind in proto)return proto[kind]; switch(kind){ case KEYS: return function keys(){ return new Constructor(this, kind); }; case VALUES: return function values(){ return new Constructor(this, kind); }; } return function entries(){ return new Constructor(this, kind); }; }; var TAG = NAME + ' Iterator' , DEF_VALUES = DEFAULT == VALUES , VALUES_BUG = false , proto = Base.prototype , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT] , $default = $native || getMethod(DEFAULT) , methods, key; // Fix native if($native){ var IteratorPrototype = getProto($default.call(new Base)); // Set @@toStringTag to native iterators setToStringTag(IteratorPrototype, TAG, true); // FF fix if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis); // fix Array#{values, @@iterator}.name in V8 / FF if(DEF_VALUES && $native.name !== VALUES){ VALUES_BUG = true; $default = function values(){ return $native.call(this); }; } } // Define iterator if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){ hide(proto, ITERATOR, $default); } // Plug for library Iterators[NAME] = $default; Iterators[TAG] = returnThis; if(DEFAULT){ methods = { values: DEF_VALUES ? $default : getMethod(VALUES), keys: IS_SET ? $default : getMethod(KEYS), entries: !DEF_VALUES ? $default : getMethod('entries') }; if(FORCED)for(key in methods){ if(!(key in proto))redefine(proto, key, methods[key]); } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); } return methods; }; /***/ }, /* 21 */ /***/ function(module, exports) { module.exports = true; /***/ }, /* 22 */ /***/ function(module, exports, __webpack_require__) { module.exports = __webpack_require__(23); /***/ }, /* 23 */ /***/ function(module, exports, __webpack_require__) { var $ = __webpack_require__(24) , createDesc = __webpack_require__(25); module.exports = __webpack_require__(26) ? function(object, key, value){ return $.setDesc(object, key, createDesc(1, value)); } : function(object, key, value){ object[key] = value; return object; }; /***/ }, /* 24 */ /***/ function(module, exports) { var $Object = Object; module.exports = { create: $Object.create, getProto: $Object.getPrototypeOf, isEnum: {}.propertyIsEnumerable, getDesc: $Object.getOwnPropertyDescriptor, setDesc: $Object.defineProperty, setDescs: $Object.defineProperties, getKeys: $Object.keys, getNames: $Object.getOwnPropertyNames, getSymbols: $Object.getOwnPropertySymbols, each: [].forEach }; /***/ }, /* 25 */ /***/ function(module, exports) { module.exports = function(bitmap, value){ return { enumerable : !(bitmap & 1), configurable: !(bitmap & 2), writable : !(bitmap & 4), value : value }; }; /***/ }, /* 26 */ /***/ function(module, exports, __webpack_require__) { // Thank's IE8 for his funny defineProperty module.exports = !__webpack_require__(13)(function(){ return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; }); /***/ }, /* 27 */ /***/ function(module, exports) { var hasOwnProperty = {}.hasOwnProperty; module.exports = function(it, key){ return hasOwnProperty.call(it, key); }; /***/ }, /* 28 */ /***/ function(module, exports) { module.exports = {}; /***/ }, /* 29 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var $ = __webpack_require__(24) , descriptor = __webpack_require__(25) , setToStringTag = __webpack_require__(30) , IteratorPrototype = {}; // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() __webpack_require__(23)(IteratorPrototype, __webpack_require__(31)('iterator'), function(){ return this; }); module.exports = function(Constructor, NAME, next){ Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)}); setToStringTag(Constructor, NAME + ' Iterator'); }; /***/ }, /* 30 */ /***/ function(module, exports, __webpack_require__) { var def = __webpack_require__(24).setDesc , has = __webpack_require__(27) , TAG = __webpack_require__(31)('toStringTag'); module.exports = function(it, tag, stat){ if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag}); }; /***/ }, /* 31 */ /***/ function(module, exports, __webpack_require__) { var store = __webpack_require__(32)('wks') , uid = __webpack_require__(33) , Symbol = __webpack_require__(9).Symbol; module.exports = function(name){ return store[name] || (store[name] = Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name)); }; /***/ }, /* 32 */ /***/ function(module, exports, __webpack_require__) { var global = __webpack_require__(9) , SHARED = '__core-js_shared__' , store = global[SHARED] || (global[SHARED] = {}); module.exports = function(key){ return store[key] || (store[key] = {}); }; /***/ }, /* 33 */ /***/ function(module, exports) { var id = 0 , px = Math.random(); module.exports = function(key){ return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); }; /***/ }, /* 34 */ /***/ function(module, exports, __webpack_require__) { __webpack_require__(35); var Iterators = __webpack_require__(28); Iterators.NodeList = Iterators.HTMLCollection = Iterators.Array; /***/ }, /* 35 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var addToUnscopables = __webpack_require__(36) , step = __webpack_require__(37) , Iterators = __webpack_require__(28) , toIObject = __webpack_require__(38); // 22.1.3.4 Array.prototype.entries() // 22.1.3.13 Array.prototype.keys() // 22.1.3.29 Array.prototype.values() // 22.1.3.30 Array.prototype[@@iterator]() module.exports = __webpack_require__(20)(Array, 'Array', function(iterated, kind){ this._t = toIObject(iterated); // target this._i = 0; // next index this._k = kind; // kind // 22.1.5.2.1 %ArrayIteratorPrototype%.next() }, function(){ var O = this._t , kind = this._k , index = this._i++; if(!O || index >= O.length){ this._t = undefined; return step(1); } if(kind == 'keys' )return step(0, index); if(kind == 'values')return step(0, O[index]); return step(0, [index, O[index]]); }, 'values'); // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) Iterators.Arguments = Iterators.Array; addToUnscopables('keys'); addToUnscopables('values'); addToUnscopables('entries'); /***/ }, /* 36 */ /***/ function(module, exports) { module.exports = function(){ /* empty */ }; /***/ }, /* 37 */ /***/ function(module, exports) { module.exports = function(done, value){ return {value: value, done: !!done}; }; /***/ }, /* 38 */ /***/ function(module, exports, __webpack_require__) { // to indexed object, toObject with fallback for non-array-like ES3 strings var IObject = __webpack_require__(39) , defined = __webpack_require__(6); module.exports = function(it){ return IObject(defined(it)); }; /***/ }, /* 39 */ /***/ function(module, exports, __webpack_require__) { // fallback for non-array-like ES3 and non-enumerable old V8 strings var cof = __webpack_require__(40); module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ return cof(it) == 'String' ? it.split('') : Object(it); }; /***/ }, /* 40 */ /***/ function(module, exports) { var toString = {}.toString; module.exports = function(it){ return toString.call(it).slice(8, -1); }; /***/ }, /* 41 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var $ = __webpack_require__(24) , LIBRARY = __webpack_require__(21) , global = __webpack_require__(9) , ctx = __webpack_require__(11) , classof = __webpack_require__(42) , $export = __webpack_require__(8) , isObject = __webpack_require__(43) , anObject = __webpack_require__(44) , aFunction = __webpack_require__(12) , strictNew = __webpack_require__(45) , forOf = __webpack_require__(46) , setProto = __webpack_require__(51).set , same = __webpack_require__(52) , SPECIES = __webpack_require__(31)('species') , speciesConstructor = __webpack_require__(53) , asap = __webpack_require__(54) , PROMISE = 'Promise' , process = global.process , isNode = classof(process) == 'process' , P = global[PROMISE] , Wrapper; var testResolve = function(sub){ var test = new P(function(){}); if(sub)test.constructor = Object; return P.resolve(test) === test; }; var USE_NATIVE = function(){ var works = false; function P2(x){ var self = new P(x); setProto(self, P2.prototype); return self; } try { works = P && P.resolve && testResolve(); setProto(P2, P); P2.prototype = $.create(P.prototype, {constructor: {value: P2}}); // actual Firefox has broken subclass support, test that if(!(P2.resolve(5).then(function(){}) instanceof P2)){ works = false; } // actual V8 bug, https://code.google.com/p/v8/issues/detail?id=4162 if(works && __webpack_require__(26)){ var thenableThenGotten = false; P.resolve($.setDesc({}, 'then', { get: function(){ thenableThenGotten = true; } })); works = thenableThenGotten; } } catch(e){ works = false; } return works; }(); // helpers var sameConstructor = function(a, b){ // library wrapper special case if(LIBRARY && a === P && b === Wrapper)return true; return same(a, b); }; var getConstructor = function(C){ var S = anObject(C)[SPECIES]; return S != undefined ? S : C; }; var isThenable = function(it){ var then; return isObject(it) && typeof (then = it.then) == 'function' ? then : false; }; var PromiseCapability = function(C){ var resolve, reject; this.promise = new C(function($$resolve, $$reject){ if(resolve !== undefined || reject !== undefined)throw TypeError('Bad Promise constructor'); resolve = $$resolve; reject = $$reject; }); this.resolve = aFunction(resolve), this.reject = aFunction(reject) }; var perform = function(exec){ try { exec(); } catch(e){ return {error: e}; } }; var notify = function(record, isReject){ if(record.n)return; record.n = true; var chain = record.c; asap(function(){ var value = record.v , ok = record.s == 1 , i = 0; var run = function(reaction){ var handler = ok ? reaction.ok : reaction.fail , resolve = reaction.resolve , reject = reaction.reject , result, then; try { if(handler){ if(!ok)record.h = true; result = handler === true ? value : handler(value); if(result === reaction.promise){ reject(TypeError('Promise-chain cycle')); } else if(then = isThenable(result)){ then.call(result, resolve, reject); } else resolve(result); } else reject(value); } catch(e){ reject(e); } }; while(chain.length > i)run(chain[i++]); // variable length - can't use forEach chain.length = 0; record.n = false; if(isReject)setTimeout(function(){ var promise = record.p , handler, console; if(isUnhandled(promise)){ if(isNode){ process.emit('unhandledRejection', value, promise); } else if(handler = global.onunhandledrejection){ handler({promise: promise, reason: value}); } else if((console = global.console) && console.error){ console.error('Unhandled promise rejection', value); } } record.a = undefined; }, 1); }); }; var isUnhandled = function(promise){ var record = promise._d , chain = record.a || record.c , i = 0 , reaction; if(record.h)return false; while(chain.length > i){ reaction = chain[i++]; if(reaction.fail || !isUnhandled(reaction.promise))return false; } return true; }; var $reject = function(value){ var record = this; if(record.d)return; record.d = true; record = record.r || record; // unwrap record.v = value; record.s = 2; record.a = record.c.slice(); notify(record, true); }; var $resolve = function(value){ var record = this , then; if(record.d)return; record.d = true; record = record.r || record; // unwrap try { if(record.p === value)throw TypeError("Promise can't be resolved itself"); if(then = isThenable(value)){ asap(function(){ var wrapper = {r: record, d: false}; // wrap try { then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); } catch(e){ $reject.call(wrapper, e); } }); } else { record.v = value; record.s = 1; notify(record, false); } } catch(e){ $reject.call({r: record, d: false}, e); // wrap } }; // constructor polyfill if(!USE_NATIVE){ // 25.4.3.1 Promise(executor) P = function Promise(executor){ aFunction(executor); var record = this._d = { p: strictNew(this, P, PROMISE), // <- promise c: [], // <- awaiting reactions a: undefined, // <- checked in isUnhandled reactions s: 0, // <- state d: false, // <- done v: undefined, // <- value h: false, // <- handled rejection n: false // <- notify }; try { executor(ctx($resolve, record, 1), ctx($reject, record, 1)); } catch(err){ $reject.call(record, err); } }; __webpack_require__(59)(P.prototype, { // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected) then: function then(onFulfilled, onRejected){ var reaction = new PromiseCapability(speciesConstructor(this, P)) , promise = reaction.promise , record = this._d; reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; reaction.fail = typeof onRejected == 'function' && onRejected; record.c.push(reaction); if(record.a)record.a.push(reaction); if(record.s)notify(record, false); return promise; }, // 25.4.5.1 Promise.prototype.catch(onRejected) 'catch': function(onRejected){ return this.then(undefined, onRejected); } }); } $export($export.G + $export.W + $export.F * !USE_NATIVE, {Promise: P}); __webpack_require__(30)(P, PROMISE); __webpack_require__(60)(PROMISE); Wrapper = __webpack_require__(10)[PROMISE]; // statics $export($export.S + $export.F * !USE_NATIVE, PROMISE, { // 25.4.4.5 Promise.reject(r) reject: function reject(r){ var capability = new PromiseCapability(this) , $$reject = capability.reject; $$reject(r); return capability.promise; } }); $export($export.S + $export.F * (!USE_NATIVE || testResolve(true)), PROMISE, { // 25.4.4.6 Promise.resolve(x) resolve: function resolve(x){ // instanceof instead of internal slot check because we should fix it without replacement native Promise core if(x instanceof P && sameConstructor(x.constructor, this))return x; var capability = new PromiseCapability(this) , $$resolve = capability.resolve; $$resolve(x); return capability.promise; } }); $export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(61)(function(iter){ P.all(iter)['catch'](function(){}); })), PROMISE, { // 25.4.4.1 Promise.all(iterable) all: function all(iterable){ var C = getConstructor(this) , capability = new PromiseCapability(C) , resolve = capability.resolve , reject = capability.reject , values = []; var abrupt = perform(function(){ forOf(iterable, false, values.push, values); var remaining = values.length , results = Array(remaining); if(remaining)$.each.call(values, function(promise, index){ var alreadyCalled = false; C.resolve(promise).then(function(value){ if(alreadyCalled)return; alreadyCalled = true; results[index] = value; --remaining || resolve(results); }, reject); }); else resolve(results); }); if(abrupt)reject(abrupt.error); return capability.promise; }, // 25.4.4.4 Promise.race(iterable) race: function race(iterable){ var C = getConstructor(this) , capability = new PromiseCapability(C) , reject = capability.reject; var abrupt = perform(function(){ forOf(iterable, false, function(promise){ C.resolve(promise).then(capability.resolve, reject); }); }); if(abrupt)reject(abrupt.error); return capability.promise; } }); /***/ }, /* 42 */ /***/ function(module, exports, __webpack_require__) { // getting tag from 19.1.3.6 Object.prototype.toString() var cof = __webpack_require__(40) , TAG = __webpack_require__(31)('toStringTag') // ES3 wrong here , ARG = cof(function(){ return arguments; }()) == 'Arguments'; module.exports = function(it){ var O, T, B; return it === undefined ? 'Undefined' : it === null ? 'Null' // @@toStringTag case : typeof (T = (O = Object(it))[TAG]) == 'string' ? T // builtinTag case : ARG ? cof(O) // ES3 arguments fallback : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; }; /***/ }, /* 43 */ /***/ function(module, exports) { module.exports = function(it){ return typeof it === 'object' ? it !== null : typeof it === 'function'; }; /***/ }, /* 44 */ /***/ function(module, exports, __webpack_require__) { var isObject = __webpack_require__(43); module.exports = function(it){ if(!isObject(it))throw TypeError(it + ' is not an object!'); return it; }; /***/ }, /* 45 */ /***/ function(module, exports) { module.exports = function(it, Constructor, name){ if(!(it instanceof Constructor))throw TypeError(name + ": use the 'new' operator!"); return it; }; /***/ }, /* 46 */ /***/ function(module, exports, __webpack_require__) { var ctx = __webpack_require__(11) , call = __webpack_require__(47) , isArrayIter = __webpack_require__(48) , anObject = __webpack_require__(44) , toLength = __webpack_require__(49) , getIterFn = __webpack_require__(50); module.exports = function(iterable, entries, fn, that){ var iterFn = getIterFn(iterable) , f = ctx(fn, that, entries ? 2 : 1) , index = 0 , length, step, iterator; if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!'); // fast case for arrays with default iterator if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){ entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){ call(iterator, f, step.value, entries); } }; /***/ }, /* 47 */ /***/ function(module, exports, __webpack_require__) { // call something on iterator step with safe closing on error var anObject = __webpack_require__(44); module.exports = function(iterator, fn, value, entries){ try { return entries ? fn(anObject(value)[0], value[1]) : fn(value); // 7.4.6 IteratorClose(iterator, completion) } catch(e){ var ret = iterator['return']; if(ret !== undefined)anObject(ret.call(iterator)); throw e; } }; /***/ }, /* 48 */ /***/ function(module, exports, __webpack_require__) { // check on default Array iterator var Iterators = __webpack_require__(28) , ITERATOR = __webpack_require__(31)('iterator') , ArrayProto = Array.prototype; module.exports = function(it){ return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); }; /***/ }, /* 49 */ /***/ function(module, exports, __webpack_require__) { // 7.1.15 ToLength var toInteger = __webpack_require__(19) , min = Math.min; module.exports = function(it){ return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 }; /***/ }, /* 50 */ /***/ function(module, exports, __webpack_require__) { var classof = __webpack_require__(42) , ITERATOR = __webpack_require__(31)('iterator') , Iterators = __webpack_require__(28); module.exports = __webpack_require__(10).getIteratorMethod = function(it){ if(it != undefined)return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)]; }; /***/ }, /* 51 */ /***/ function(module, exports, __webpack_require__) { // Works with __proto__ only. Old v8 can't work with null proto objects. /* eslint-disable no-proto */ var getDesc = __webpack_require__(24).getDesc , isObject = __webpack_require__(43) , anObject = __webpack_require__(44); var check = function(O, proto){ anObject(O); if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!"); }; module.exports = { set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line function(test, buggy, set){ try { set = __webpack_require__(11)(Function.call, getDesc(Object.prototype, '__proto__').set, 2); set(test, []); buggy = !(test instanceof Array); } catch(e){ buggy = true; } return function setPrototypeOf(O, proto){ check(O, proto); if(buggy)O.__proto__ = proto; else set(O, proto); return O; }; }({}, false) : undefined), check: check }; /***/ }, /* 52 */ /***/ function(module, exports) { // 7.2.9 SameValue(x, y) module.exports = Object.is || function is(x, y){ return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y; }; /***/ }, /* 53 */ /***/ function(module, exports, __webpack_require__) { // 7.3.20 SpeciesConstructor(O, defaultConstructor) var anObject = __webpack_require__(44) , aFunction = __webpack_require__(12) , SPECIES = __webpack_require__(31)('species'); module.exports = function(O, D){ var C = anObject(O).constructor, S; return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); }; /***/ }, /* 54 */ /***/ function(module, exports, __webpack_require__) { var global = __webpack_require__(9) , macrotask = __webpack_require__(55).set , Observer = global.MutationObserver || global.WebKitMutationObserver , process = global.process , Promise = global.Promise , isNode = __webpack_require__(40)(process) == 'process' , head, last, notify; var flush = function(){ var parent, domain, fn; if(isNode && (parent = process.domain)){ process.domain = null; parent.exit(); } while(head){ domain = head.domain; fn = head.fn; if(domain)domain.enter(); fn(); // <- currently we use it only for Promise - try / catch not required if(domain)domain.exit(); head = head.next; } last = undefined; if(parent)parent.enter(); }; // Node.js if(isNode){ notify = function(){ process.nextTick(flush); }; // browsers with MutationObserver } else if(Observer){ var toggle = 1 , node = document.createTextNode(''); new Observer(flush).observe(node, {characterData: true}); // eslint-disable-line no-new notify = function(){ node.data = toggle = -toggle; }; // environments with maybe non-completely correct, but existent Promise } else if(Promise && Promise.resolve){ notify = function(){ Promise.resolve().then(flush); }; // for other environments - macrotask based on: // - setImmediate // - MessageChannel // - window.postMessag // - onreadystatechange // - setTimeout } else { notify = function(){ // strange IE + webpack dev server bug - use .call(global) macrotask.call(global, flush); }; } module.exports = function asap(fn){ var task = {fn: fn, next: undefined, domain: isNode && process.domain}; if(last)last.next = task; if(!head){ head = task; notify(); } last = task; }; /***/ }, /* 55 */ /***/ function(module, exports, __webpack_require__) { var ctx = __webpack_require__(11) , invoke = __webpack_require__(56) , html = __webpack_require__(57) , cel = __webpack_require__(58) , global = __webpack_require__(9) , process = global.process , setTask = global.setImmediate , clearTask = global.clearImmediate , MessageChannel = global.MessageChannel , counter = 0 , queue = {} , ONREADYSTATECHANGE = 'onreadystatechange' , defer, channel, port; var run = function(){ var id = +this; if(queue.hasOwnProperty(id)){ var fn = queue[id]; delete queue[id]; fn(); } }; var listner = function(event){ run.call(event.data); }; // Node.js 0.9+ & IE10+ has setImmediate, otherwise: if(!setTask || !clearTask){ setTask = function setImmediate(fn){ var args = [], i = 1; while(arguments.length > i)args.push(arguments[i++]); queue[++counter] = function(){ invoke(typeof fn == 'function' ? fn : Function(fn), args); }; defer(counter); return counter; }; clearTask = function clearImmediate(id){ delete queue[id]; }; // Node.js 0.8- if(__webpack_require__(40)(process) == 'process'){ defer = function(id){ process.nextTick(ctx(run, id, 1)); }; // Browsers with MessageChannel, includes WebWorkers } else if(MessageChannel){ channel = new MessageChannel; port = channel.port2; channel.port1.onmessage = listner; defer = ctx(port.postMessage, port, 1); // Browsers with postMessage, skip WebWorkers // IE8 has postMessage, but it's sync & typeof it