├── .nvmrc ├── .gitignore ├── website ├── client │ ├── style │ │ ├── base.css │ │ └── main.css │ ├── images │ │ ├── benqijiemu.jpg │ │ └── qrcode │ │ │ ├── qrcode_for_gh_258.jpg │ │ │ ├── qrcode_for_gh_344.jpg │ │ │ ├── qrcode_for_gh_430.jpg │ │ │ ├── qrcode_for_gh_860.jpg │ │ │ └── qrcode_for_gh_1280.jpg │ ├── react-app │ │ ├── react-app.js │ │ ├── package.json │ │ ├── webpack.config.js │ │ └── dist │ │ │ └── main.bundle.js │ ├── script │ │ ├── main.js │ │ ├── mdp.js │ │ └── eagle-monitor │ │ │ ├── bundle.umd.js │ │ │ └── bundle.umd.js.map │ └── index.html ├── nodemon.config.json ├── app.js ├── package.json └── middleware │ ├── api.js │ └── sleep.js ├── eagle-sdk ├── util.js ├── behavior.js ├── package.json ├── index.js ├── rollup.config.js ├── util │ └── xpath.js ├── resources.js ├── errorCatch.js ├── xhr.js ├── perf.js └── package-lock.json ├── package.json ├── eagle-server ├── app.js ├── package.json └── middleware │ └── sourceMap.js ├── .editorconfig └── x.js.map /.nvmrc: -------------------------------------------------------------------------------- 1 | 8 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | node_modules 3 | other/ 4 | -------------------------------------------------------------------------------- /website/client/style/base.css: -------------------------------------------------------------------------------- 1 | body { 2 | height: 100%; 3 | width: 100%; 4 | background-color: #f8f8f8; 5 | } 6 | -------------------------------------------------------------------------------- /website/client/images/benqijiemu.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geeknull/eagle-monitor/HEAD/website/client/images/benqijiemu.jpg -------------------------------------------------------------------------------- /website/nodemon.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "verbose": true, 3 | "ignore": [ 4 | "*.test.js", 5 | "fixtures/*" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /website/client/images/qrcode/qrcode_for_gh_258.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geeknull/eagle-monitor/HEAD/website/client/images/qrcode/qrcode_for_gh_258.jpg -------------------------------------------------------------------------------- /website/client/images/qrcode/qrcode_for_gh_344.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geeknull/eagle-monitor/HEAD/website/client/images/qrcode/qrcode_for_gh_344.jpg -------------------------------------------------------------------------------- /website/client/images/qrcode/qrcode_for_gh_430.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geeknull/eagle-monitor/HEAD/website/client/images/qrcode/qrcode_for_gh_430.jpg -------------------------------------------------------------------------------- /website/client/images/qrcode/qrcode_for_gh_860.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geeknull/eagle-monitor/HEAD/website/client/images/qrcode/qrcode_for_gh_860.jpg -------------------------------------------------------------------------------- /website/client/images/qrcode/qrcode_for_gh_1280.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geeknull/eagle-monitor/HEAD/website/client/images/qrcode/qrcode_for_gh_1280.jpg -------------------------------------------------------------------------------- /eagle-sdk/util.js: -------------------------------------------------------------------------------- 1 | export let noop = () => {}; 2 | export let onload = (cb) => { 3 | if (document.readyState === 'complete') { 4 | cb(); 5 | } 6 | window.addEventListener('load', cb); 7 | }; 8 | 9 | export default { 10 | noop, 11 | onload 12 | }; 13 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "eagle-monitor", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC" 12 | } 13 | -------------------------------------------------------------------------------- /eagle-sdk/behavior.js: -------------------------------------------------------------------------------- 1 | import getXpath from './util/xpath.js'; 2 | 3 | export default { 4 | init: (cb) => { 5 | cb(); 6 | document.addEventListener('click', (e) => { 7 | let xpath = getXpath(e.target); 8 | console.log('xpath: ', xpath); 9 | }, false); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /eagle-server/app.js: -------------------------------------------------------------------------------- 1 | const Koa = require('koa'); 2 | const app = new Koa(); 3 | const port = 3009; 4 | 5 | const sourceMapMiddleware = require('./middleware/sourceMap.js'); 6 | 7 | app.use(sourceMapMiddleware); 8 | 9 | app.listen(port, () => { 10 | console.log(`eagle-server in port ${port}`); 11 | }); 12 | -------------------------------------------------------------------------------- /eagle-server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "eagle-server", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "devDependencies": { 13 | "koa": "^2.5.0", 14 | "nodemon": "^1.15.0", 15 | "source-map": "^0.7.1" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /website/app.js: -------------------------------------------------------------------------------- 1 | const Koa = require('koa'); 2 | const app = new Koa(); 3 | const port = 3003; 4 | const serve = require('koa-static'); 5 | const cors = require('kcors'); 6 | const sleep = require('./middleware/sleep'); 7 | const api = require('./middleware/api'); 8 | 9 | app.use(cors()); 10 | app.use(sleep); 11 | app.use(api); 12 | app.use(serve(__dirname + '/client')); 13 | 14 | app.listen(port, () => { 15 | console.log(`listen port ${port}`); 16 | }); 17 | 18 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: 2 | http://EditorConfig.org 3 | 4 | # top-most EditorConfig file 5 | root = true 6 | 7 | # Unix-style newlines with a newline ending every file 8 | [*] 9 | charset = utf-8 10 | end_of_line = lf 11 | indent_style = space 12 | insert_final_newline = true 13 | trim_trailing_whitespace = true 14 | 15 | [*.{js,jsx,scss,vue}] 16 | indent_size = 2 17 | 18 | # Tab indentation (no size specified) 19 | [Makefile] 20 | indent_style = tab 21 | -------------------------------------------------------------------------------- /website/client/style/main.css: -------------------------------------------------------------------------------- 1 | .title { 2 | color: #333; 3 | text-align: center; 4 | margin-top: 20px; 5 | } 6 | 7 | .img { 8 | margin: 0 auto; 9 | display: block; 10 | border: 2px solid #f4b72b; 11 | border-radius: 6px; 12 | opacity: .7; 13 | } 14 | 15 | .qrcode { 16 | width: 300px; 17 | height: 300px; 18 | } 19 | 20 | .avatar { 21 | width: 100px; 22 | height: 100px; 23 | margin-top: 10px; 24 | } 25 | 26 | .fruits-list { 27 | margin: 10px 0; 28 | } 29 | -------------------------------------------------------------------------------- /website/client/react-app/react-app.js: -------------------------------------------------------------------------------- 1 | import React, {Component} from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | 4 | let AppComponent = class extends Component { 5 | constructor (props) { 6 | super(props); 7 | } 8 | 9 | componentDidMount () { 10 | vue = 'vanilla' + 'react' 11 | } 12 | 13 | render () { 14 | return ( 15 |
16 | react app 17 |
18 | ) 19 | } 20 | }; 21 | 22 | ReactDOM.render(, document.querySelector('.react-area')); 23 | -------------------------------------------------------------------------------- /eagle-sdk/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "src", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "dev": "cross-env NODE_ENV=develop rollup -c --watch", 8 | "build": "cross-env NODE_ENV=production rollup -c", 9 | "test": "echo \"Error: no test specified\" && exit 1" 10 | }, 11 | "keywords": [], 12 | "author": "", 13 | "license": "ISC", 14 | "devDependencies": { 15 | "babel-core": "^6.26.0", 16 | "babel-preset-env": "^1.6.1", 17 | "cross-env": "^5.1.3", 18 | "rollup": "^0.55.5", 19 | "rollup-plugin-babel": "^3.0.3" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /eagle-sdk/index.js: -------------------------------------------------------------------------------- 1 | import perf from './perf.js'; 2 | import resources from './resources.js'; 3 | import errorCatch from './errorCatch.js'; 4 | import xhrHook from './xhr.js'; 5 | import behavior from './behavior.js'; 6 | 7 | perf.init((perfData) => { 8 | // console.log('perf', perfData); 9 | }); 10 | 11 | resources.init((list) => { 12 | // console.log('resources', list.length === 1 ? list[0] : list); 13 | }); 14 | 15 | errorCatch.init((err) => { 16 | console.log('errorCatch', err); 17 | }); 18 | 19 | xhrHook.init((xhrInfo) => { 20 | console.log(xhrInfo); 21 | }); 22 | 23 | behavior.init(() => { 24 | console.log('behavior init'); 25 | }); 26 | -------------------------------------------------------------------------------- /website/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "website", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "node-dev": "nodemon app.js", 8 | "test": "echo \"Error: no test specified\" && exit 1" 9 | }, 10 | "keywords": [], 11 | "author": "", 12 | "license": "ISC", 13 | "dependencies": { 14 | "kcors": "^2.2.1", 15 | "koa": "^2.4.1", 16 | "koa-static": "^4.0.2" 17 | }, 18 | "devDependencies": { 19 | "babel-core": "^6.26.0", 20 | "babel-loader": "^7.1.2", 21 | "babel-polyfill": "^6.26.0", 22 | "babel-preset-env": "^1.6.1", 23 | "debug": "^3.1.0", 24 | "left-pad": "^1.2.0", 25 | "webpack": "^3.11.0", 26 | "webpack-dev-server": "^2.11.1" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /website/middleware/api.js: -------------------------------------------------------------------------------- 1 | let apiMap = { 2 | '/api/user': { 3 | name: 'geeknull', 4 | age: 18 5 | }, 6 | '/api/list': [ 7 | {id: '1', name: '香蕉'}, 8 | {id: '2', name: '桔子'}, 9 | {id: '3', name: '苹果'}, 10 | {id: '4', name: '橘子'}, 11 | {id: '5', name: '菠萝'}, 12 | {id: '6', name: '橙子'}, 13 | {id: '7', name: '西瓜'}, 14 | {id: '8', name: '桃子'}, 15 | {id: '9', name: '辣椒'}, 16 | ], 17 | '/api/detail': { 18 | name: '香蕉', 19 | place: '泰国', 20 | describe: '补充能力,吃香蕉~', 21 | city: '泰姬陵', 22 | remark: '大哥,泰姬陵不是泰国的!', 23 | }, 24 | }; 25 | 26 | module.exports = (ctx, next) => { 27 | for (let key in apiMap) { 28 | if (ctx.path.includes(key)) { 29 | ctx.body = apiMap[key]; 30 | break; 31 | } 32 | } 33 | return next(); 34 | }; 35 | -------------------------------------------------------------------------------- /website/client/react-app/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-app", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "webpack.config.js", 6 | "scripts": { 7 | "dev": "cross-env NODE_ENV=develop webpack-dev-server", 8 | "build": "cross-env NODE_ENV=production webpack" 9 | }, 10 | "keywords": [], 11 | "author": "", 12 | "license": "ISC", 13 | "devDependencies": { 14 | "babel-core": "^6.26.0", 15 | "babel-loader": "^7.1.2", 16 | "babel-plugin-transform-runtime": "^6.23.0", 17 | "babel-polyfill": "^6.26.0", 18 | "babel-preset-env": "^1.6.1", 19 | "babel-preset-react": "^6.24.1", 20 | "webpack": "^3.11.0", 21 | "webpack-dev-server": "^2.11.1" 22 | }, 23 | "dependencies": { 24 | "cross-env": "^5.1.3", 25 | "react": "^16.2.0", 26 | "react-dom": "^16.2.0" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /eagle-sdk/rollup.config.js: -------------------------------------------------------------------------------- 1 | import babel from 'rollup-plugin-babel'; 2 | let isDev = process.env.NODE_ENV === 'develop'; 3 | 4 | let babelConfig = { 5 | "presets": [ 6 | [ 7 | "env", { 8 | "modules": false, 9 | "targets": { 10 | "browsers": ["chrome > 40", "safari >= 7"] 11 | } 12 | } 13 | ] 14 | ], 15 | }; 16 | 17 | export default { 18 | input : 'index.js', 19 | watch: { 20 | exclude: 'node_modules/**' 21 | }, 22 | output : { 23 | file: isDev ? '../website/client/script/eagle-monitor/bundle.umd.js' : '../dist/bundle.umd.js', 24 | name: 'EagleMonitor', 25 | format: 'umd', 26 | sourcemap: true 27 | }, 28 | plugins : [ 29 | babel({ 30 | babelrc: false, 31 | presets: babelConfig.presets, 32 | plugins: babelConfig.plugins, 33 | exclude: 'node_modules/**' // only transpile our source code 34 | }) 35 | ] 36 | }; 37 | -------------------------------------------------------------------------------- /website/client/script/main.js: -------------------------------------------------------------------------------- 1 | let endlessLoop = sleep => { 2 | let curTime = Date.now(); 3 | while (true) { 4 | if (Date.now() - curTime >= sleep) { 5 | break; 6 | } 7 | } 8 | }; 9 | 10 | document.addEventListener('DOMContentLoaded', () => { 11 | // endlessLoop(1000); 12 | }, false); 13 | 14 | window.addEventListener('load', () => { 15 | // endlessLoop(500); 16 | }, false); 17 | 18 | setTimeout(() => { 19 | let src = './images/benqijiemu.jpg'; 20 | let imgEle = document.createElement('img'); 21 | imgEle.src = src; 22 | imgEle.className = 'img avatar'; 23 | document.body.appendChild(imgEle); 24 | }, 5000); 25 | 26 | // a - b -3 27 | 28 | // Promise.reject('promise rej'); 29 | 30 | $.ajax({ 31 | url: 'http://localhost:3003/api/list', 32 | method: 'post', 33 | data: JSON.stringify({ 34 | a: 'a', 35 | b: 'b', 36 | }) 37 | }).then((res) => { 38 | // debugger 39 | }).catch((err) => { 40 | // debugger 41 | }); 42 | 43 | fetch('http://localhost:3003/api/list').then((res) => { 44 | // debugger 45 | }); 46 | -------------------------------------------------------------------------------- /eagle-sdk/util/xpath.js: -------------------------------------------------------------------------------- 1 | // /html/body/div[2]/ul/li[2] 2 | 3 | let getXpath = (element) => { 4 | if (!(element instanceof Element)) { 5 | return void 0; 6 | } 7 | 8 | if (element.nodeType !== 1) { 9 | return void 0; 10 | } 11 | 12 | let rootElement = document.body; 13 | if (element === rootElement) { 14 | return void 0; 15 | } 16 | 17 | 18 | let childIndex = (ele) => { 19 | let parent = ele.parentNode; 20 | let children = [].slice.call(parent.childNodes).filter(_ => _.nodeType === 1); 21 | let i = 0; 22 | for (let _i = 0, len = children.length; _i < len; _i++) { 23 | if (children[_i] === ele) { 24 | i = _i; 25 | break; 26 | } 27 | } 28 | return i === 0 ? '' : '[' + i + ']'; 29 | }; 30 | 31 | let xpath = ''; 32 | 33 | while (element !== document) { 34 | let tag = element.tagName.toLocaleLowerCase(); 35 | let eleIndex = childIndex(element); 36 | xpath = '/' + tag + eleIndex + xpath; 37 | element = element.parentNode; 38 | } 39 | 40 | return xpath; 41 | }; 42 | 43 | export default getXpath; 44 | -------------------------------------------------------------------------------- /website/middleware/sleep.js: -------------------------------------------------------------------------------- 1 | const log = require('debug')('sleep'); log.enabled = true; 2 | const log_root = require('debug')('root'); log_root.enabled = true; 3 | const leftPad = require('left-pad'); 4 | 5 | const sleep = t => new Promise((r) => setTimeout(r, t)); 6 | 7 | const random = (start, end) => () => { 8 | if (end === undefined) { 9 | end = start; 10 | start = 0; 11 | } 12 | return parseInt(start + Math.random() * (end-start)); 13 | }; 14 | 15 | let resourceMap = { 16 | 'qrcode_for_gh_1280.jpg': 1200, 17 | 'jquery-3.3.1.js': 100, 18 | 'bootstrap.css': random(0, 100), 19 | 'lodash-4.17.5.js': 1, 20 | '/api/user': random(200), 21 | '/api/list': 1000, 22 | }; 23 | let rootPath = ['/', '/index.html']; 24 | 25 | module.exports = async (ctx, next) => { 26 | let _path = ctx.path; 27 | 28 | // if (ctx.path.includes('abc')) { 29 | // ctx.redirect('http://127.0.0.1:3003'); 30 | // } 31 | 32 | if (rootPath.includes(_path)) { 33 | await sleep(random(30)()); 34 | return next(); 35 | } 36 | 37 | for (let key in resourceMap) { 38 | if (_path.includes(key)) { 39 | let delay = resourceMap[key]; 40 | delay = typeof delay === 'function' ? delay() : delay; 41 | await sleep(delay); 42 | log(leftPad(key, 20, '·'), delay); 43 | return next(); 44 | } 45 | } 46 | 47 | return next(); 48 | }; 49 | -------------------------------------------------------------------------------- /eagle-server/middleware/sourceMap.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const path = require('path'); 3 | let sourceMap = require('source-map'); 4 | 5 | let sourcemapFilePath = path.join(__dirname, '../../website/client/react-app/dist/main.bundle.js.map'); 6 | 7 | let sourcesPathMap = {}; 8 | function fixPath(filepath) { 9 | return filepath.replace(/\.[\.\/]+/g, ""); 10 | } 11 | 12 | module.exports = async (ctx, next) => { 13 | if (ctx.path === '/sourcemap') { 14 | let sourceMapContent = fs.readFileSync(sourcemapFilePath, 'utf-8'); 15 | let fileObj = JSON.parse(sourceMapContent); 16 | let sources = fileObj.sources; 17 | 18 | sources.map(item => { 19 | sourcesPathMap[fixPath(item)] = item; 20 | }); 21 | 22 | let findPos = { 23 | line: 554, 24 | column: 17, 25 | }; 26 | 27 | let findPos_ = { 28 | line: 10185, 29 | column: 489, 30 | }; 31 | 32 | let consumer = await new sourceMap.SourceMapConsumer(sourceMapContent); 33 | let result = consumer.originalPositionFor(findPos); 34 | 35 | console.log(result, 'xxx'); 36 | 37 | // source line column name 38 | 39 | let originSource = sourcesPathMap[result.source]; 40 | 41 | let sourcesContent = fileObj.sourcesContent[sources.indexOf(originSource)]; 42 | let sourcesContentArr = sourcesContent.split('\n'); 43 | let sourcesContentMap = {}; 44 | 45 | sourcesContentArr.forEach((item, index) => { 46 | sourcesContentMap[index] = item; 47 | }); 48 | 49 | result.sourcesContentMap = sourcesContentMap; 50 | 51 | ctx.body = result; 52 | } 53 | 54 | return next(); 55 | }; 56 | -------------------------------------------------------------------------------- /eagle-sdk/resources.js: -------------------------------------------------------------------------------- 1 | import {onload} from './util.js'; 2 | 3 | // 过滤无效数据 4 | function filterTime(a, b) { 5 | return (a > 0 && b > 0 && (a - b) >= 0) ? (a - b) : undefined; 6 | } 7 | 8 | let resolvePerformanceTiming = (timing) => { 9 | let o = { 10 | initiatorType: timing.initiatorType, 11 | name: timing.name, 12 | duration: parseInt(timing.duration), 13 | redirect: filterTime(timing.redirectEnd, timing.redirectStart), // 重定向 14 | dns: filterTime(timing.domainLookupEnd, timing.domainLookupStart), // DNS解析 15 | connect: filterTime(timing.connectEnd, timing.connectStart), // TCP建连 16 | network: filterTime(timing.connectEnd, timing.startTime), // 网络总耗时 17 | 18 | send: filterTime(timing.responseStart, timing.requestStart), // 发送开始到接受第一个返回 19 | receive: filterTime(timing.responseEnd, timing.responseStart), // 接收总时间 20 | request: filterTime(timing.responseEnd, timing.requestStart), // 总时间 21 | 22 | ttfb: filterTime(timing.responseStart, timing.requestStart), // 首字节时间 23 | }; 24 | 25 | return o; 26 | }; 27 | 28 | let resolveEntries = (entries) => entries.map(item => resolvePerformanceTiming(item)); 29 | 30 | let resources = { 31 | init: (cb) => { 32 | let performance = window.performance || window.mozPerformance || window.msPerformance || window.webkitPerformance; 33 | if (!performance || !performance.getEntries) { 34 | return void 0; 35 | } 36 | 37 | if (window.PerformanceObserver) { 38 | let observer = new window.PerformanceObserver((list) => { 39 | try { 40 | let entries = list.getEntries(); 41 | cb(resolveEntries(entries)); 42 | } catch (e) { 43 | console.error(e); 44 | } 45 | }); 46 | observer.observe({ 47 | entryTypes: ['resource'] 48 | }) 49 | } else { 50 | onload(() => { 51 | let entries = performance.getEntriesByType('resource'); 52 | cb(resolveEntries(entries)); 53 | }); 54 | } 55 | }, 56 | }; 57 | 58 | export default resources; 59 | -------------------------------------------------------------------------------- /eagle-sdk/errorCatch.js: -------------------------------------------------------------------------------- 1 | let formatError = (errObj) => { 2 | let col = errObj.column || errObj.columnNumber; // Safari Firefox 3 | let row = errObj.line || errObj.lineNumber; // Safari Firefox 4 | let message = errObj.message; 5 | let name = errObj.name; 6 | 7 | let {stack} = errObj; 8 | if (stack) { 9 | let matchUrl = stack.match(/https?:\/\/[^\n]+/); 10 | let urlFirstStack = matchUrl ? matchUrl[0] : ''; 11 | let regUrlCheck = /https?:\/\/(\S)*\.js/; 12 | 13 | let resourceUrl = ''; 14 | if (regUrlCheck.test(urlFirstStack)) { 15 | resourceUrl = urlFirstStack.match(regUrlCheck)[0]; 16 | } 17 | 18 | let stackCol = null; 19 | let stackRow = null; 20 | let posStack = urlFirstStack.match(/:(\d+):(\d+)/); 21 | if (posStack && posStack.length >= 3) { 22 | [, stackCol, stackRow] = posStack; 23 | } 24 | 25 | // TODO formatStack 26 | return { 27 | content: stack, 28 | col: Number(col || stackCol), 29 | row: Number(row || stackRow), 30 | message, name, resourceUrl 31 | }; 32 | } 33 | 34 | return { 35 | row, col, message, name 36 | } 37 | }; 38 | 39 | let errorCatch = { 40 | init: (cb) => { 41 | let _originOnerror = window.onerror; 42 | window.onerror = (...arg) => { 43 | let [errorMessage, scriptURI, lineNumber, columnNumber, errorObj] = arg; 44 | // console.log(arg, 'cuowu'); 45 | let errorInfo = formatError(errorObj); 46 | errorInfo._errorMessage = errorMessage; 47 | errorInfo._scriptURI = scriptURI; 48 | errorInfo._lineNumber = lineNumber; 49 | errorInfo._columnNumber = columnNumber; 50 | errorInfo.type = 'onerror'; 51 | cb(errorInfo); 52 | _originOnerror && _originOnerror.apply(window, arg); 53 | }; 54 | 55 | let _originOnunhandledrejection = window.onunhandledrejection; 56 | window.onunhandledrejection = (...arg) => { 57 | let e = arg[0]; 58 | let reason = e.reason; 59 | cb({ 60 | type: e.type || 'unhandledrejection', 61 | reason 62 | }); 63 | _originOnunhandledrejection && _originOnunhandledrejection.apply(window, arg); 64 | }; 65 | }, 66 | }; 67 | 68 | export default errorCatch; 69 | -------------------------------------------------------------------------------- /website/client/react-app/webpack.config.js: -------------------------------------------------------------------------------- 1 | const webpack = require('webpack'); 2 | const path = require('path'); 3 | 4 | let isDev = process.env.NODE_ENV === 'develop'; // 是否是开发环境 5 | const host = 'localhost'; 6 | const port = 8601; 7 | 8 | module.exports = { 9 | entry: { 10 | vendor: ['babel-polyfill', 'react', 'react-dom'], 11 | main: './react-app.js', 12 | }, 13 | output: { 14 | path: path.resolve(__dirname, './dist'), 15 | publicPath: isDev ? `http://${host}:${port}/` : '/', 16 | filename: '[name].bundle.js' 17 | }, 18 | module: { 19 | rules: [ 20 | { 21 | test: /\.(js|jsx)$/, 22 | exclude: /node_modules/, 23 | use: { 24 | loader: 'babel-loader', 25 | options: { 26 | presets: [ 27 | ['env', { 28 | option: { 29 | 'targets': { 30 | 'browsers': ['chrome >= 44','firefox >= 51', 'safari >= 9'] 31 | } 32 | } 33 | }], 'react' 34 | ], 35 | plugins: ['transform-runtime'] 36 | } 37 | } 38 | }, 39 | { 40 | test: /\.css$/, 41 | use: ['style-loader', 'css-loader'] 42 | } 43 | ] 44 | }, 45 | devtool: isDev ? 'cheap-module-eval-source-map' : 'source-map', 46 | context: __dirname, 47 | devServer: { 48 | hot: true, 49 | port: port, 50 | headers: { 51 | 'Access-Control-Allow-Origin': '*' 52 | }, 53 | }, 54 | plugins: [ 55 | new webpack.HotModuleReplacementPlugin(), 56 | new webpack.DefinePlugin({ 57 | 'process.env.NODE_ENV': 58 | isDev ? JSON.stringify('develop') : JSON.stringify('production') 59 | }), 60 | // new webpack.optimize.UglifyJsPlugin({ 61 | // compress: false, 62 | // mangle: false, 63 | // sourceMap: true, 64 | // output: { 65 | // comments: false 66 | // } 67 | // }), 68 | 69 | // new webpack.SourceMapDevToolPlugin({ 70 | // exclude: 'vendor', 71 | // excludeChunks: ["vendors"] 72 | // }), 73 | 74 | new webpack.optimize.CommonsChunkPlugin({ 75 | name: 'vendor', 76 | filename: '[name].bundle.js', 77 | minChunks: Infinity 78 | }), 79 | ] 80 | }; 81 | -------------------------------------------------------------------------------- /website/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | Eagle-monitor Test 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 26 | 27 | 28 |

Eagle Monitor

29 | qrcode 30 |
31 | 32 |
33 | 40 | 41 |
42 |
43 |
44 |
45 | 52 | 59 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /eagle-sdk/xhr.js: -------------------------------------------------------------------------------- 1 | let xhrHook = { 2 | init: (cb) => { 3 | // xhr hook 4 | let xhr = window.XMLHttpRequest; 5 | if (xhr._eagle_flag === true) { 6 | return void 0; 7 | } 8 | xhr._eagle_flag = true; 9 | 10 | let _originOpen = xhr.prototype.open; 11 | xhr.prototype.open = function (method, url, async, user, password) { 12 | // TODO eagle url check 13 | this._eagle_xhr_info = { 14 | url: url, 15 | method: method, 16 | status: null 17 | }; 18 | return _originOpen.apply(this, arguments); 19 | }; 20 | 21 | let _originSend = xhr.prototype.send; 22 | xhr.prototype.send = function (value) { 23 | let _self = this; 24 | this._eagle_start_time = Date.now(); 25 | 26 | let ajaxEnd = (event) => () => { 27 | if (_self.response) { 28 | let responseSize = null; 29 | switch(_self.responseType) { 30 | case 'json': 31 | responseSize = JSON && JSON.stringify(_this.response).length; 32 | break; 33 | case 'blob': 34 | case 'moz-blob': 35 | responseSize = _self.response.size; 36 | break; 37 | case 'arraybuffer': 38 | responseSize = _self.response.byteLength; 39 | case 'document': 40 | responseSize = _self.response.documentElement && _self.response.documentElement.innerHTML && (_self.response.documentElement.innerHTML.length + 28); 41 | break; 42 | default: 43 | responseSize = _self.response.length; 44 | } 45 | _self._eagle_xhr_info.event = event; 46 | _self._eagle_xhr_info.status = _self.status; 47 | _self._eagle_xhr_info.success = (_self.status >= 200 && _self.status <= 206) || _self.status === 304; 48 | _self._eagle_xhr_info.duration = Date.now() - _self._eagle_start_time; 49 | _self._eagle_xhr_info.responseSize = responseSize; 50 | _self._eagle_xhr_info.requestSize = value ? value.length : 0; 51 | _self._eagle_xhr_info.type = 'xhr'; 52 | cb(this._eagle_xhr_info); 53 | } 54 | }; 55 | 56 | // TODO eagle url check 57 | if (this.addEventListener) { 58 | this.addEventListener('load', ajaxEnd('load'), false); 59 | this.addEventListener('error', ajaxEnd('error'), false); 60 | this.addEventListener('abort', ajaxEnd('abort'), false); 61 | } else { 62 | let _origin_onreadystatechange = this.onreadystatechange; 63 | this.onreadystatechange = function (event) { 64 | if (_origin_onreadystatechange) { 65 | _originOpen.apply(this, arguments); 66 | } 67 | if (this.readyState === 4) { 68 | ajaxEnd('end')(); 69 | } 70 | }; 71 | } 72 | return _originSend.apply(this, arguments); 73 | }; 74 | 75 | // fetch hook 76 | if (window.fetch) { 77 | let _origin_fetch = window.fetch; 78 | window.fetch = function () { 79 | let startTime = Date.now(); 80 | let args = [].slice.call(arguments); 81 | 82 | let fetchInput = args[0]; 83 | let method = 'GET'; 84 | let url; 85 | 86 | if (typeof fetchInput === 'string') { 87 | url = fetchInput; 88 | } else if ('Request' in window && fetchInput instanceof window.Request) { 89 | url = fetchInput.url; 90 | if (fetchInput.method) { 91 | method = fetchInput.method; 92 | } 93 | } else { 94 | url = '' + fetchInput; 95 | } 96 | 97 | if (args[1] && args[1].method) { 98 | method = args[1].method; 99 | } 100 | 101 | // TODO eagle check 102 | let fetchData = { 103 | method: method, 104 | url: url, 105 | status: null, 106 | }; 107 | 108 | return _origin_fetch.apply(this, args).then(function(response) { 109 | fetchData.status = response.status; 110 | fetchData.type = 'fetch'; 111 | fetchData.duration = Date.now() - startTime; 112 | cb(fetchData); 113 | return response; 114 | }); 115 | } 116 | } 117 | } 118 | }; 119 | 120 | export default xhrHook; 121 | -------------------------------------------------------------------------------- /eagle-sdk/perf.js: -------------------------------------------------------------------------------- 1 | // https://developer.mozilla.org/zh-CN/docs/Web/API/PerformanceTiming 2 | 3 | let perf = { 4 | init: (cb) => { 5 | let cycleFreq = 100; // 循环轮询的时间 6 | let isDOMReady = false; 7 | let isOnload = false; 8 | let performance = window.performance || window.mozPerformance || window.msPerformance || window.webkitPerformance; 9 | 10 | let Util = { 11 | addEventListener: function (name, callback, useCapture) { 12 | if (window.addEventListener) { 13 | return window.addEventListener(name, callback, useCapture); 14 | } else if (window.attachEvent) { 15 | return window.attachEvent('on' + name, callback); 16 | } 17 | }, 18 | 19 | domready: function (callback) { 20 | if ( isOnload === true ) { return void 0; } 21 | let timer = null; 22 | 23 | if ( document.readyState === 'interactive' ) { 24 | runCheck(); 25 | } else if (document.addEventListener) { 26 | document.addEventListener('DOMContentLoaded', function () { 27 | runCheck(); 28 | }, false); 29 | } else if (document.attachEvent) { 30 | document.attachEvent('onreadystatechange', function () { 31 | runCheck(); 32 | }); 33 | } 34 | 35 | function runCheck() { 36 | if ( performance.timing.domInteractive ) { 37 | clearTimeout(timer); 38 | callback(); 39 | isDOMReady = true; 40 | } else { 41 | timer = setTimeout(runCheck, cycleFreq); 42 | } 43 | } 44 | }, 45 | 46 | onload: function (callback) { 47 | let timer = null; 48 | 49 | if (document.readyState === 'complete') { 50 | runCheck(); 51 | } else { 52 | Util.addEventListener('load', function () { 53 | runCheck(); 54 | }, false); 55 | } 56 | 57 | function runCheck() { 58 | if ( performance.timing.loadEventEnd ) { 59 | clearTimeout(timer); 60 | callback(); 61 | isOnload = true; 62 | } else { 63 | timer = setTimeout(runCheck, cycleFreq); 64 | } 65 | } 66 | } 67 | }; 68 | 69 | let reportPerf = function () { 70 | if (!performance) { 71 | return void 0; 72 | } 73 | 74 | // 过滤无效数据; 75 | function filterTime(a, b) { 76 | return (a > 0 && b > 0 && (a - b) >= 0) ? (a - b) : undefined; 77 | } 78 | 79 | // append data from window.performance 80 | let timing = performance.timing; 81 | 82 | let perfData = { 83 | // 网络建连 84 | pervPage: filterTime(timing.fetchStart, timing.navigationStart), // 上一个页面 85 | redirect: filterTime(timing.responseEnd, timing.redirectStart), // 页面重定向时间 86 | dns: filterTime(timing.domainLookupEnd, timing.domainLookupStart), // DNS查找时间 87 | connect: filterTime(timing.connectEnd, timing.connectStart), // TCP建连时间 88 | network: filterTime(timing.connectEnd, timing.navigationStart), // 网络总耗时 89 | 90 | // 网络接收 91 | send: filterTime(timing.responseStart, timing.requestStart), // 前端从发送到接收到后端第一个返回 92 | receive: filterTime(timing.responseEnd, timing.responseStart), // 接受页面时间 93 | request: filterTime(timing.responseEnd, timing.requestStart), // 请求页面总时间 94 | 95 | // 前端渲染 96 | dom: filterTime(timing.domComplete, timing.domLoading), // dom解析时间 97 | loadEvent: filterTime(timing.loadEventEnd, timing.loadEventStart), // loadEvent时间 98 | frontend: filterTime(timing.loadEventEnd, timing.domLoading), // 前端总时间 99 | 100 | // 关键阶段 101 | load: filterTime(timing.loadEventEnd, timing.navigationStart), // 页面完全加载总时间 102 | domReady: filterTime(timing.domContentLoadedEventStart, timing.navigationStart), // domready时间 103 | interactive: filterTime(timing.domInteractive, timing.navigationStart), // 可操作时间 104 | ttfb: filterTime(timing.responseStart, timing.navigationStart), // 首字节时间 105 | }; 106 | 107 | return perfData; 108 | }; 109 | 110 | Util.domready(function () { 111 | let perfData = reportPerf('domready'); 112 | perfData.type = 'domready'; 113 | cb(perfData); 114 | }); 115 | 116 | Util.onload(function () { 117 | let perfData = reportPerf('onload'); 118 | perfData.type = 'onload'; 119 | cb(perfData); 120 | }); 121 | } 122 | }; 123 | 124 | export default perf; 125 | -------------------------------------------------------------------------------- /x.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": [ 4 | "webpack:///main.min.js", 5 | "webpack:///webpack/bootstrap bcc12cf6b7df6fbc22ab", 6 | "webpack:///./main.js" 7 | ], 8 | "names": [ 9 | "modules", 10 | "__webpack_require__", 11 | "moduleId", 12 | "installedModules", 13 | "exports", 14 | "module", 15 | "i", 16 | "l", 17 | "call", 18 | "m", 19 | "c", 20 | "value", 21 | "d", 22 | "name", 23 | "getter", 24 | "o", 25 | "Object", 26 | "defineProperty", 27 | "configurable", 28 | "enumerable", 29 | "get", 30 | "n", 31 | "__esModule", 32 | "object", 33 | "property", 34 | "prototype", 35 | "hasOwnProperty", 36 | "p", 37 | "s", 38 | "test", 39 | "noerror" 40 | ], 41 | "mappings": "CAAS,SAAUA,GCInB,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAE,OAGA,IAAAC,GAAAF,EAAAD,IACAI,EAAAJ,EACAK,GAAA,EACAH,WAUA,OANAJ,GAAAE,GAAAM,KAAAH,EAAAD,QAAAC,IAAAD,QAAAH,GAGAI,EAAAE,GAAA,EAGAF,EAAAD,QAvBA,GAAAD,KA4BAF,GAAAQ,EAAAT,EAGAC,EAAAS,EAAAP,EAGAF,EAAAK,EAAA,SAAAK,GAA2C,MAAAA,IAG3CV,EAAAW,EAAA,SAAAR,EAAAS,EAAAC,GACAb,EAAAc,EAAAX,EAAAS,IACAG,OAAAC,eAAAb,EAAAS,GACAK,cAAA,EACAC,YAAA,EACAC,IAAAN,KAMAb,EAAAoB,EAAA,SAAAhB,GACA,GAAAS,GAAAT,KAAAiB,WACA,WAA2B,MAAAjB,GAAA,SAC3B,WAAiC,MAAAA,GAEjC,OADAJ,GAAAW,EAAAE,EAAA,IAAAA,GACAA,GAIAb,EAAAc,EAAA,SAAAQ,EAAAC,GAAsD,MAAAR,QAAAS,UAAAC,eAAAlB,KAAAe,EAAAC,IAGtDvB,EAAA0B,EAAA,GAGA1B,IAAA2B,EAAA,KDMM,SAAUvB,EAAQD,GEtExB,QAASyB,KACLC,QAGJD", 42 | "file": "main.min.js", 43 | "sourcesContent": [ 44 | "/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nfunction test() {\n noerror;\n}\n\ntest();\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// main.min.js", 45 | " \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap bcc12cf6b7df6fbc22ab", 46 | "function test() {\n noerror\n}\n\ntest();\n\n\n// WEBPACK FOOTER //\n// ./main.js" 47 | ], 48 | "sourceRoot": "" 49 | } 50 | -------------------------------------------------------------------------------- /website/client/script/mdp.js: -------------------------------------------------------------------------------- 1 | /** 2 | *@author: 3 | *cyhello(cyhello@gmail.com) 4 | *seven (remember2015@gmail.com) 5 | *rank(ranklau@gmail.com) 6 | */ 7 | (function(){ 8 | /** 9 | * @method _marmotGetParam 10 | * 获取url参数 11 | */ 12 | var _marmot_js_href = null; 13 | function _marmotGetParam(param) { 14 | if (!_marmot_js_href) { 15 | var js = document.getElementsByTagName('script'); 16 | for (var i = 0, len = js.lenth; i < len; i++) { 17 | if (js[i].getAttribute('marmot') == 'true') { 18 | _marmot_js_href = js[i].src; 19 | break; 20 | } 21 | } 22 | if (!_marmot_js_href) 23 | _marmot_js_href = js[js.length - 1].src; 24 | } 25 | var match = _marmot_js_href.match(new RegExp(param+'=([^\?\#\&\=]*)','i')); 26 | if (match) return match[1]; 27 | return null; 28 | } 29 | /** 30 | * 处理采样率 31 | */ 32 | var _ratio = _marmotGetParam('ratio'); 33 | if(_ratio !== null) { 34 | var _rnd = _ratio * Math.random(); 35 | if (_rnd > 1) return; 36 | } 37 | 38 | /** 39 | * @class Marmot 40 | * Marmot静态类 41 | */ 42 | window.Marmot = Marmot = { 43 | _pageID: _marmotGetParam('id'), 44 | //用户行为数据的真实容器,储存数据 45 | _logData: [], 46 | //采样网格边长 47 | _grid: 7, 48 | _align: _marmotGetParam('align') || 'middle', 49 | //最大采集数据量,达到此数据量,自动提交 50 | _maxEvt: 50, 51 | //上一个事件,用于处理表单域的点击自动触发focus事件情况 52 | _preEvt: {t:'f',path:[]}, 53 | //refer的最大长度 54 | _maxRef: 100, 55 | //log发送地址 56 | _logUrl: "http://www.marmotu.com/resource/marmot.gif", 57 | 58 | //获取页面大小 59 | _getPageWidth: function () { 60 | var doc = document, 61 | body = doc.body, 62 | html = doc.documentElement, 63 | client = doc.compatMode == 'BackCompat' ? body : doc.documentElement; 64 | 65 | return Math.max(html.scrollWidth, body.scrollWidth, client.clientWidth); 66 | }, 67 | //log函数 68 | log: function(arg) { 69 | 70 | //数据量达到最大值,自动提交 71 | if (Marmot._logData.length >= Marmot._maxEvt) { 72 | Marmot.pushLog(); 73 | Marmot.pushLog = function(){}; 74 | return ; 75 | } 76 | //数据点进行网格装换 77 | if (arg.x != '') { 78 | var midLine = (Marmot._align == 'middle') ? parseInt(Marmot._getPageWidth() / 2) : 0; 79 | arg.x = arg.x - midLine != 0 ? arg.x - midLine : 1; 80 | arg.x = parseInt(arg.x / Marmot._grid) * Marmot._grid + (arg.x / Math.abs(arg.x)) * (parseInt(Marmot._grid / 2) + 1); 81 | arg.y = parseInt(arg.y / Marmot._grid) * Marmot._grid + (parseInt(Marmot._grid / 2) + 1); 82 | } 83 | //console.log(Marmot._preEvt.t, arg.t, Marmot._preEvt.path.join(''), arg.path.join('')) 84 | //处理表单域的点击事件与focus事件重复 85 | if (arg.t == 'c' && Marmot._preEvt !== null && Marmot._preEvt.t == 'f' && arg.path.join('') == Marmot._preEvt.path.join('')) { 86 | //console.log('pop') 87 | Marmot._logData.pop(); 88 | } 89 | Marmot._logData.push(arg.x + '*' + arg.y + '*' + arg.path.join('')); 90 | Marmot._preEvt = arg; 91 | }, 92 | stop: function() { 93 | Marmot.pushLog = function(){}; 94 | }, 95 | //将用户点击数据发送到服务端 96 | pushLog: function() { 97 | var data = Marmot._logData.join('!'); 98 | var refer = document.referrer; 99 | if (refer.length > 100) { 100 | refer = refer.split('?')[0]; 101 | } 102 | var img= document.createElement('img'); 103 | img.src = Marmot._logUrl + '?mid=' + encodeURIComponent(this._pageID) + '&data=' + data + '&ref=' + encodeURIComponent(refer.substr(0, this._maxRef)) + '&px=' + window.screen.width + '*' + window.screen.height; 104 | document.body.appendChild(img); 105 | }, 106 | //开启数据检测功能,捕获用户行为 107 | inspect: function() { 108 | //返回事件的target 109 | function getTarget(e) { 110 | return e.target || e.srcElement; 111 | }; 112 | //返回事件对象 113 | function getEvent(event, element) { 114 | if (event) { 115 | return event; 116 | } else if (element) { 117 | if (element.document) return element.document.parentWindow.event; 118 | if (element.parentWindow) return element.parentWindow.event; 119 | } 120 | return window.event || null; 121 | }; 122 | //侦听事件 123 | var listen = function () { 124 | if (document.addEventListener) { 125 | return function (element, name, handler) { 126 | element.addEventListener(name, handler, true); 127 | }; 128 | } else if (document.attachEvent) { 129 | return function (element, name, handler) { 130 | element.attachEvent('on' + name, handler); 131 | }; 132 | } 133 | }(); 134 | function getDoc(evt) { 135 | var target = getTarget(evt), doc = document; 136 | if (target) { 137 | doc = target.document || target.ownerDocument || (target.window || target.defaultView) && target || document; 138 | } 139 | return doc; 140 | }; 141 | //返回事件的触发坐标 142 | function getXY(evt) { 143 | var e = evt, doc = getDoc(evt); 144 | var x = ('pageX' in e) ? e.pageX : (e.clientX + (doc.documentElement.scrollLeft || doc.body.scrollLeft) - 2); 145 | var y = ('pageY' in e) ? e.pageY : (e.clientY + (doc.documentElement.scrollTop || doc.body.scrollTop) - 2); 146 | return { 147 | x: x, 148 | y: y 149 | } 150 | }; 151 | //返回元素的绝对坐标 152 | function getPos(el) { 153 | var x = el.offsetTop; 154 | var y = el.offsetLeft; 155 | while (el = el.offsetParent) { 156 | x += el.offsetTop; 157 | y += el.offsetLeft; 158 | } 159 | return { 160 | x: x, 161 | y: y 162 | }; 163 | }; 164 | try { 165 | listen(document, 'mousedown', function(e) { 166 | var evt = getEvent(e, this); 167 | var target = getTarget(evt); 168 | var path = Marmot.getPath(target); 169 | var pos = getXY(evt); 170 | // debugger 171 | Marmot.log({ 172 | x: pos.x, 173 | y: pos.y, 174 | path: path, 175 | t: 'c' 176 | }) 177 | }); 178 | listen(document, 'focus', function(e) { 179 | var evt = getEvent(e, this); 180 | var target = getTarget(evt); 181 | if (target.tagName) { 182 | var tag = target.tagName.toUpperCase(); 183 | if (tag == 'INPUT' || tag == 'TEXTAREA' || tag == 'BUTTON' || tag == 'SELECT' || tag == 'OBJECT' || tag == 'EMBED') { 184 | var path = Marmot.getPath(target); 185 | var pos = getPos(target); 186 | Marmot.log({ 187 | x: pos.x, 188 | y: pos.y, 189 | path: path, 190 | t: 'f' 191 | }) 192 | } else { 193 | return; 194 | } 195 | } 196 | }); 197 | listen(window, 'beforeunload', function(e) { 198 | Marmot.pushLog(); 199 | }); 200 | } catch(e) {}; 201 | }, 202 | //返回元素的MDP路径 203 | getPath: function(node, path) { 204 | path = path || []; 205 | if (node == document.body || (node.tagName && node.tagName.toUpperCase() == "HTML")) { 206 | return path; 207 | }; 208 | if (node.getAttribute && node.getAttribute('id') != '' && node.getAttribute('id') != null) { 209 | path.push(node.nodeName.toLowerCase() + '.' + node.getAttribute('id')); 210 | return path; 211 | }; 212 | if (node.parentNode && node.parentNode.tagName.toUpperCase() !="BODY") { 213 | path = Marmot.getPath(node.parentNode, path); 214 | } 215 | if(node.previousSibling) { 216 | var count = 1; 217 | var sibling = node.previousSibling 218 | do { 219 | //if(sibling.nodeType == 1 && sibling.nodeName == node.nodeName) { 220 | if(sibling.nodeType == 1 && sibling.nodeName == node.nodeName) { 221 | count++; 222 | } 223 | sibling = sibling.previousSibling; 224 | } while(sibling); 225 | } 226 | if(node.nodeType == 1) { 227 | path.push('~' + (count > 1 ? count : 1) + node.nodeName.toLowerCase()); 228 | } 229 | return path; 230 | } 231 | } 232 | 233 | /** 234 | * 启动Marmot 235 | */ 236 | Marmot.inspect(); 237 | })(); 238 | -------------------------------------------------------------------------------- /website/client/script/eagle-monitor/bundle.umd.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? factory() : 3 | typeof define === 'function' && define.amd ? define(factory) : 4 | (factory()); 5 | }(this, (function () { 'use strict'; 6 | 7 | // https://developer.mozilla.org/zh-CN/docs/Web/API/PerformanceTiming 8 | 9 | var perf = { 10 | init: function init(cb) { 11 | var cycleFreq = 100; // 循环轮询的时间 12 | var isOnload = false; 13 | var performance = window.performance || window.mozPerformance || window.msPerformance || window.webkitPerformance; 14 | 15 | var Util = { 16 | addEventListener: function addEventListener(name, callback, useCapture) { 17 | if (window.addEventListener) { 18 | return window.addEventListener(name, callback, useCapture); 19 | } else if (window.attachEvent) { 20 | return window.attachEvent('on' + name, callback); 21 | } 22 | }, 23 | 24 | domready: function domready(callback) { 25 | if (isOnload === true) { 26 | return void 0; 27 | } 28 | var timer = null; 29 | 30 | if (document.readyState === 'interactive') { 31 | runCheck(); 32 | } else if (document.addEventListener) { 33 | document.addEventListener('DOMContentLoaded', function () { 34 | runCheck(); 35 | }, false); 36 | } else if (document.attachEvent) { 37 | document.attachEvent('onreadystatechange', function () { 38 | runCheck(); 39 | }); 40 | } 41 | 42 | function runCheck() { 43 | if (performance.timing.domInteractive) { 44 | clearTimeout(timer); 45 | callback(); 46 | 47 | } else { 48 | timer = setTimeout(runCheck, cycleFreq); 49 | } 50 | } 51 | }, 52 | 53 | onload: function onload(callback) { 54 | var timer = null; 55 | 56 | if (document.readyState === 'complete') { 57 | runCheck(); 58 | } else { 59 | Util.addEventListener('load', function () { 60 | runCheck(); 61 | }, false); 62 | } 63 | 64 | function runCheck() { 65 | if (performance.timing.loadEventEnd) { 66 | clearTimeout(timer); 67 | callback(); 68 | isOnload = true; 69 | } else { 70 | timer = setTimeout(runCheck, cycleFreq); 71 | } 72 | } 73 | } 74 | }; 75 | 76 | var reportPerf = function reportPerf() { 77 | if (!performance) { 78 | return void 0; 79 | } 80 | 81 | // 过滤无效数据; 82 | function filterTime(a, b) { 83 | return a > 0 && b > 0 && a - b >= 0 ? a - b : undefined; 84 | } 85 | 86 | // append data from window.performance 87 | var timing = performance.timing; 88 | 89 | var perfData = { 90 | // 网络建连 91 | pervPage: filterTime(timing.fetchStart, timing.navigationStart), // 上一个页面 92 | redirect: filterTime(timing.responseEnd, timing.redirectStart), // 页面重定向时间 93 | dns: filterTime(timing.domainLookupEnd, timing.domainLookupStart), // DNS查找时间 94 | connect: filterTime(timing.connectEnd, timing.connectStart), // TCP建连时间 95 | network: filterTime(timing.connectEnd, timing.navigationStart), // 网络总耗时 96 | 97 | // 网络接收 98 | send: filterTime(timing.responseStart, timing.requestStart), // 前端从发送到接收到后端第一个返回 99 | receive: filterTime(timing.responseEnd, timing.responseStart), // 接受页面时间 100 | request: filterTime(timing.responseEnd, timing.requestStart), // 请求页面总时间 101 | 102 | // 前端渲染 103 | dom: filterTime(timing.domComplete, timing.domLoading), // dom解析时间 104 | loadEvent: filterTime(timing.loadEventEnd, timing.loadEventStart), // loadEvent时间 105 | frontend: filterTime(timing.loadEventEnd, timing.domLoading), // 前端总时间 106 | 107 | // 关键阶段 108 | load: filterTime(timing.loadEventEnd, timing.navigationStart), // 页面完全加载总时间 109 | domReady: filterTime(timing.domContentLoadedEventStart, timing.navigationStart), // domready时间 110 | interactive: filterTime(timing.domInteractive, timing.navigationStart), // 可操作时间 111 | ttfb: filterTime(timing.responseStart, timing.navigationStart) // 首字节时间 112 | }; 113 | 114 | return perfData; 115 | }; 116 | 117 | Util.domready(function () { 118 | var perfData = reportPerf('domready'); 119 | perfData.type = 'domready'; 120 | cb(perfData); 121 | }); 122 | 123 | Util.onload(function () { 124 | var perfData = reportPerf('onload'); 125 | perfData.type = 'onload'; 126 | cb(perfData); 127 | }); 128 | } 129 | }; 130 | 131 | var onload = function onload(cb) { 132 | if (document.readyState === 'complete') { 133 | cb(); 134 | } 135 | window.addEventListener('load', cb); 136 | }; 137 | 138 | function filterTime(a, b) { 139 | return a > 0 && b > 0 && a - b >= 0 ? a - b : undefined; 140 | } 141 | 142 | var resolvePerformanceTiming = function resolvePerformanceTiming(timing) { 143 | var o = { 144 | initiatorType: timing.initiatorType, 145 | name: timing.name, 146 | duration: parseInt(timing.duration), 147 | redirect: filterTime(timing.redirectEnd, timing.redirectStart), // 重定向 148 | dns: filterTime(timing.domainLookupEnd, timing.domainLookupStart), // DNS解析 149 | connect: filterTime(timing.connectEnd, timing.connectStart), // TCP建连 150 | network: filterTime(timing.connectEnd, timing.startTime), // 网络总耗时 151 | 152 | send: filterTime(timing.responseStart, timing.requestStart), // 发送开始到接受第一个返回 153 | receive: filterTime(timing.responseEnd, timing.responseStart), // 接收总时间 154 | request: filterTime(timing.responseEnd, timing.requestStart), // 总时间 155 | 156 | ttfb: filterTime(timing.responseStart, timing.requestStart) // 首字节时间 157 | }; 158 | 159 | return o; 160 | }; 161 | 162 | var resolveEntries = function resolveEntries(entries) { 163 | return entries.map(function (item) { 164 | return resolvePerformanceTiming(item); 165 | }); 166 | }; 167 | 168 | var resources = { 169 | init: function init(cb) { 170 | var performance = window.performance || window.mozPerformance || window.msPerformance || window.webkitPerformance; 171 | if (!performance || !performance.getEntries) { 172 | return void 0; 173 | } 174 | 175 | if (window.PerformanceObserver) { 176 | var observer = new window.PerformanceObserver(function (list) { 177 | try { 178 | var entries = list.getEntries(); 179 | cb(resolveEntries(entries)); 180 | } catch (e) { 181 | console.error(e); 182 | } 183 | }); 184 | observer.observe({ 185 | entryTypes: ['resource'] 186 | }); 187 | } else { 188 | onload(function () { 189 | var entries = performance.getEntriesByType('resource'); 190 | cb(resolveEntries(entries)); 191 | }); 192 | } 193 | } 194 | }; 195 | 196 | var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); 197 | 198 | var formatError = function formatError(errObj) { 199 | var col = errObj.column || errObj.columnNumber; // Safari Firefox 200 | var row = errObj.line || errObj.lineNumber; // Safari Firefox 201 | var message = errObj.message; 202 | var name = errObj.name; 203 | 204 | var stack = errObj.stack; 205 | 206 | if (stack) { 207 | var matchUrl = stack.match(/https?:\/\/[^\n]+/); 208 | var urlFirstStack = matchUrl ? matchUrl[0] : ''; 209 | var regUrlCheck = /https?:\/\/(\S)*\.js/; 210 | 211 | var resourceUrl = ''; 212 | if (regUrlCheck.test(urlFirstStack)) { 213 | resourceUrl = urlFirstStack.match(regUrlCheck)[0]; 214 | } 215 | 216 | var stackCol = null; 217 | var stackRow = null; 218 | var posStack = urlFirstStack.match(/:(\d+):(\d+)/); 219 | if (posStack && posStack.length >= 3) { 220 | var _posStack = _slicedToArray(posStack, 3); 221 | 222 | stackCol = _posStack[1]; 223 | stackRow = _posStack[2]; 224 | } 225 | 226 | // TODO formatStack 227 | return { 228 | content: stack, 229 | col: Number(col || stackCol), 230 | row: Number(row || stackRow), 231 | message: message, name: name, resourceUrl: resourceUrl 232 | }; 233 | } 234 | 235 | return { 236 | row: row, col: col, message: message, name: name 237 | }; 238 | }; 239 | 240 | var errorCatch = { 241 | init: function init(cb) { 242 | var _originOnerror = window.onerror; 243 | window.onerror = function () { 244 | for (var _len = arguments.length, arg = Array(_len), _key = 0; _key < _len; _key++) { 245 | arg[_key] = arguments[_key]; 246 | } 247 | 248 | var errorMessage = arg[0], 249 | scriptURI = arg[1], 250 | lineNumber = arg[2], 251 | columnNumber = arg[3], 252 | errorObj = arg[4]; 253 | // console.log(arg, 'cuowu'); 254 | 255 | var errorInfo = formatError(errorObj); 256 | errorInfo._errorMessage = errorMessage; 257 | errorInfo._scriptURI = scriptURI; 258 | errorInfo._lineNumber = lineNumber; 259 | errorInfo._columnNumber = columnNumber; 260 | errorInfo.type = 'onerror'; 261 | cb(errorInfo); 262 | _originOnerror && _originOnerror.apply(window, arg); 263 | }; 264 | 265 | var _originOnunhandledrejection = window.onunhandledrejection; 266 | window.onunhandledrejection = function () { 267 | for (var _len2 = arguments.length, arg = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { 268 | arg[_key2] = arguments[_key2]; 269 | } 270 | 271 | var e = arg[0]; 272 | var reason = e.reason; 273 | cb({ 274 | type: e.type || 'unhandledrejection', 275 | reason: reason 276 | }); 277 | _originOnunhandledrejection && _originOnunhandledrejection.apply(window, arg); 278 | }; 279 | } 280 | }; 281 | 282 | var xhrHook = { 283 | init: function init(cb) { 284 | // xhr hook 285 | var xhr = window.XMLHttpRequest; 286 | if (xhr._eagle_flag === true) { 287 | return void 0; 288 | } 289 | xhr._eagle_flag = true; 290 | 291 | var _originOpen = xhr.prototype.open; 292 | xhr.prototype.open = function (method, url, async, user, password) { 293 | // TODO eagle url check 294 | this._eagle_xhr_info = { 295 | url: url, 296 | method: method, 297 | status: null 298 | }; 299 | return _originOpen.apply(this, arguments); 300 | }; 301 | 302 | var _originSend = xhr.prototype.send; 303 | xhr.prototype.send = function (value) { 304 | var _this2 = this; 305 | 306 | var _self = this; 307 | this._eagle_start_time = Date.now(); 308 | 309 | var ajaxEnd = function ajaxEnd(event) { 310 | return function () { 311 | if (_self.response) { 312 | var responseSize = null; 313 | switch (_self.responseType) { 314 | case 'json': 315 | responseSize = JSON && JSON.stringify(_this.response).length; 316 | break; 317 | case 'blob': 318 | case 'moz-blob': 319 | responseSize = _self.response.size; 320 | break; 321 | case 'arraybuffer': 322 | responseSize = _self.response.byteLength; 323 | case 'document': 324 | responseSize = _self.response.documentElement && _self.response.documentElement.innerHTML && _self.response.documentElement.innerHTML.length + 28; 325 | break; 326 | default: 327 | responseSize = _self.response.length; 328 | } 329 | _self._eagle_xhr_info.event = event; 330 | _self._eagle_xhr_info.status = _self.status; 331 | _self._eagle_xhr_info.success = _self.status >= 200 && _self.status <= 206 || _self.status === 304; 332 | _self._eagle_xhr_info.duration = Date.now() - _self._eagle_start_time; 333 | _self._eagle_xhr_info.responseSize = responseSize; 334 | _self._eagle_xhr_info.requestSize = value ? value.length : 0; 335 | _self._eagle_xhr_info.type = 'xhr'; 336 | cb(_this2._eagle_xhr_info); 337 | } 338 | }; 339 | }; 340 | 341 | // TODO eagle url check 342 | if (this.addEventListener) { 343 | this.addEventListener('load', ajaxEnd('load'), false); 344 | this.addEventListener('error', ajaxEnd('error'), false); 345 | this.addEventListener('abort', ajaxEnd('abort'), false); 346 | } else { 347 | var _origin_onreadystatechange = this.onreadystatechange; 348 | this.onreadystatechange = function (event) { 349 | if (_origin_onreadystatechange) { 350 | _originOpen.apply(this, arguments); 351 | } 352 | if (this.readyState === 4) { 353 | ajaxEnd('end')(); 354 | } 355 | }; 356 | } 357 | return _originSend.apply(this, arguments); 358 | }; 359 | 360 | // fetch hook 361 | if (window.fetch) { 362 | var _origin_fetch = window.fetch; 363 | window.fetch = function () { 364 | var startTime = Date.now(); 365 | var args = [].slice.call(arguments); 366 | 367 | var fetchInput = args[0]; 368 | var method = 'GET'; 369 | var url = void 0; 370 | 371 | if (typeof fetchInput === 'string') { 372 | url = fetchInput; 373 | } else if ('Request' in window && fetchInput instanceof window.Request) { 374 | url = fetchInput.url; 375 | if (fetchInput.method) { 376 | method = fetchInput.method; 377 | } 378 | } else { 379 | url = '' + fetchInput; 380 | } 381 | 382 | if (args[1] && args[1].method) { 383 | method = args[1].method; 384 | } 385 | 386 | // TODO eagle check 387 | var fetchData = { 388 | method: method, 389 | url: url, 390 | status: null 391 | }; 392 | 393 | return _origin_fetch.apply(this, args).then(function (response) { 394 | fetchData.status = response.status; 395 | fetchData.type = 'fetch'; 396 | fetchData.duration = Date.now() - startTime; 397 | cb(fetchData); 398 | return response; 399 | }); 400 | }; 401 | } 402 | } 403 | }; 404 | 405 | // /html/body/div[2]/ul/li[2] 406 | 407 | var getXpath = function getXpath(element) { 408 | if (!(element instanceof Element)) { 409 | return void 0; 410 | } 411 | 412 | if (element.nodeType !== 1) { 413 | return void 0; 414 | } 415 | 416 | var rootElement = document.body; 417 | if (element === rootElement) { 418 | return void 0; 419 | } 420 | 421 | var childIndex = function childIndex(ele) { 422 | var parent = ele.parentNode; 423 | var children = [].slice.call(parent.childNodes).filter(function (_) { 424 | return _.nodeType === 1; 425 | }); 426 | var i = 0; 427 | for (var _i = 0, len = children.length; _i < len; _i++) { 428 | if (children[_i] === ele) { 429 | i = _i; 430 | break; 431 | } 432 | } 433 | return i === 0 ? '' : '[' + i + ']'; 434 | }; 435 | 436 | var xpath = ''; 437 | 438 | while (element !== document) { 439 | var tag = element.tagName.toLocaleLowerCase(); 440 | var eleIndex = childIndex(element); 441 | xpath = '/' + tag + eleIndex + xpath; 442 | element = element.parentNode; 443 | } 444 | 445 | return xpath; 446 | }; 447 | 448 | var behavior = { 449 | init: function init(cb) { 450 | cb(); 451 | document.addEventListener('click', function (e) { 452 | var xpath = getXpath(e.target); 453 | console.log('xpath: ', xpath); 454 | }, false); 455 | } 456 | }; 457 | 458 | perf.init(function (perfData) { 459 | // console.log('perf', perfData); 460 | }); 461 | 462 | resources.init(function (list) { 463 | // console.log('resources', list.length === 1 ? list[0] : list); 464 | }); 465 | 466 | errorCatch.init(function (err) { 467 | console.log('errorCatch', err); 468 | }); 469 | 470 | xhrHook.init(function (xhrInfo) { 471 | console.log(xhrInfo); 472 | }); 473 | 474 | behavior.init(function () { 475 | console.log('behavior init'); 476 | }); 477 | 478 | }))); 479 | //# sourceMappingURL=bundle.umd.js.map 480 | -------------------------------------------------------------------------------- /website/client/script/eagle-monitor/bundle.umd.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"bundle.umd.js","sources":["../../../../eagle-sdk/perf.js","../../../../eagle-sdk/util.js","../../../../eagle-sdk/resources.js","../../../../eagle-sdk/errorCatch.js","../../../../eagle-sdk/xhr.js","../../../../eagle-sdk/util/xpath.js","../../../../eagle-sdk/behavior.js","../../../../eagle-sdk/index.js"],"sourcesContent":["// https://developer.mozilla.org/zh-CN/docs/Web/API/PerformanceTiming\n\nlet perf = {\n init: (cb) => {\n let cycleFreq = 100; // 循环轮询的时间\n let isDOMReady = false;\n let isOnload = false;\n let performance = window.performance || window.mozPerformance || window.msPerformance || window.webkitPerformance;\n\n let Util = {\n addEventListener: function (name, callback, useCapture) {\n if (window.addEventListener) {\n return window.addEventListener(name, callback, useCapture);\n } else if (window.attachEvent) {\n return window.attachEvent('on' + name, callback);\n }\n },\n\n domready: function (callback) {\n if ( isOnload === true ) { return void 0; }\n let timer = null;\n\n if ( document.readyState === 'interactive' ) {\n runCheck();\n } else if (document.addEventListener) {\n document.addEventListener('DOMContentLoaded', function () {\n runCheck();\n }, false);\n } else if (document.attachEvent) {\n document.attachEvent('onreadystatechange', function () {\n runCheck();\n });\n }\n\n function runCheck() {\n if ( performance.timing.domInteractive ) {\n clearTimeout(timer);\n callback();\n isDOMReady = true;\n } else {\n timer = setTimeout(runCheck, cycleFreq);\n }\n }\n },\n\n onload: function (callback) {\n let timer = null;\n\n if (document.readyState === 'complete') {\n runCheck();\n } else {\n Util.addEventListener('load', function () {\n runCheck();\n }, false);\n }\n\n function runCheck() {\n if ( performance.timing.loadEventEnd ) {\n clearTimeout(timer);\n callback();\n isOnload = true;\n } else {\n timer = setTimeout(runCheck, cycleFreq);\n }\n }\n }\n };\n\n let reportPerf = function () {\n if (!performance) {\n return void 0;\n }\n\n // 过滤无效数据;\n function filterTime(a, b) {\n return (a > 0 && b > 0 && (a - b) >= 0) ? (a - b) : undefined;\n }\n\n // append data from window.performance\n let timing = performance.timing;\n\n let perfData = {\n // 网络建连\n pervPage: filterTime(timing.fetchStart, timing.navigationStart), // 上一个页面\n redirect: filterTime(timing.responseEnd, timing.redirectStart), // 页面重定向时间\n dns: filterTime(timing.domainLookupEnd, timing.domainLookupStart), // DNS查找时间\n connect: filterTime(timing.connectEnd, timing.connectStart), // TCP建连时间\n network: filterTime(timing.connectEnd, timing.navigationStart), // 网络总耗时\n\n // 网络接收\n send: filterTime(timing.responseStart, timing.requestStart), // 前端从发送到接收到后端第一个返回\n receive: filterTime(timing.responseEnd, timing.responseStart), // 接受页面时间\n request: filterTime(timing.responseEnd, timing.requestStart), // 请求页面总时间\n\n // 前端渲染\n dom: filterTime(timing.domComplete, timing.domLoading), // dom解析时间\n loadEvent: filterTime(timing.loadEventEnd, timing.loadEventStart), // loadEvent时间\n frontend: filterTime(timing.loadEventEnd, timing.domLoading), // 前端总时间\n\n // 关键阶段\n load: filterTime(timing.loadEventEnd, timing.navigationStart), // 页面完全加载总时间\n domReady: filterTime(timing.domContentLoadedEventStart, timing.navigationStart), // domready时间\n interactive: filterTime(timing.domInteractive, timing.navigationStart), // 可操作时间\n ttfb: filterTime(timing.responseStart, timing.navigationStart), // 首字节时间\n };\n\n return perfData;\n };\n\n Util.domready(function () {\n let perfData = reportPerf('domready');\n perfData.type = 'domready';\n cb(perfData);\n });\n\n Util.onload(function () {\n let perfData = reportPerf('onload');\n perfData.type = 'onload';\n cb(perfData);\n });\n }\n};\n\nexport default perf;\n","export let noop = () => {};\nexport let onload = (cb) => {\n if (document.readyState === 'complete') {\n cb();\n }\n window.addEventListener('load', cb);\n};\n\nexport default {\n noop,\n onload\n};\n","import {onload} from './util.js';\n\n// 过滤无效数据\nfunction filterTime(a, b) {\n return (a > 0 && b > 0 && (a - b) >= 0) ? (a - b) : undefined;\n}\n\nlet resolvePerformanceTiming = (timing) => {\n let o = {\n initiatorType: timing.initiatorType,\n name: timing.name,\n duration: parseInt(timing.duration),\n redirect: filterTime(timing.redirectEnd, timing.redirectStart), // 重定向\n dns: filterTime(timing.domainLookupEnd, timing.domainLookupStart), // DNS解析\n connect: filterTime(timing.connectEnd, timing.connectStart), // TCP建连\n network: filterTime(timing.connectEnd, timing.startTime), // 网络总耗时\n\n send: filterTime(timing.responseStart, timing.requestStart), // 发送开始到接受第一个返回\n receive: filterTime(timing.responseEnd, timing.responseStart), // 接收总时间\n request: filterTime(timing.responseEnd, timing.requestStart), // 总时间\n\n ttfb: filterTime(timing.responseStart, timing.requestStart), // 首字节时间\n };\n\n return o;\n};\n\nlet resolveEntries = (entries) => entries.map(item => resolvePerformanceTiming(item));\n\nlet resources = {\n init: (cb) => {\n let performance = window.performance || window.mozPerformance || window.msPerformance || window.webkitPerformance;\n if (!performance || !performance.getEntries) {\n return void 0;\n }\n\n if (window.PerformanceObserver) {\n let observer = new window.PerformanceObserver((list) => {\n try {\n let entries = list.getEntries();\n cb(resolveEntries(entries));\n } catch (e) {\n console.error(e);\n }\n });\n observer.observe({\n entryTypes: ['resource']\n })\n } else {\n onload(() => {\n let entries = performance.getEntriesByType('resource');\n cb(resolveEntries(entries));\n });\n }\n },\n};\n\nexport default resources;\n","let formatError = (errObj) => {\n let col = errObj.column || errObj.columnNumber; // Safari Firefox\n let row = errObj.line || errObj.lineNumber; // Safari Firefox\n let message = errObj.message;\n let name = errObj.name;\n\n let {stack} = errObj;\n if (stack) {\n let matchUrl = stack.match(/https?:\\/\\/[^\\n]+/);\n let urlFirstStack = matchUrl ? matchUrl[0] : '';\n let regUrlCheck = /https?:\\/\\/(\\S)*\\.js/;\n\n let resourceUrl = '';\n if (regUrlCheck.test(urlFirstStack)) {\n resourceUrl = urlFirstStack.match(regUrlCheck)[0];\n }\n\n let stackCol = null;\n let stackRow = null;\n let posStack = urlFirstStack.match(/:(\\d+):(\\d+)/);\n if (posStack && posStack.length >= 3) {\n [, stackCol, stackRow] = posStack;\n }\n\n // TODO formatStack\n return {\n content: stack,\n col: Number(col || stackCol),\n row: Number(row || stackRow),\n message, name, resourceUrl\n };\n }\n\n return {\n row, col, message, name\n }\n};\n\nlet errorCatch = {\n init: (cb) => {\n let _originOnerror = window.onerror;\n window.onerror = (...arg) => {\n let [errorMessage, scriptURI, lineNumber, columnNumber, errorObj] = arg;\n // console.log(arg, 'cuowu');\n let errorInfo = formatError(errorObj);\n errorInfo._errorMessage = errorMessage;\n errorInfo._scriptURI = scriptURI;\n errorInfo._lineNumber = lineNumber;\n errorInfo._columnNumber = columnNumber;\n errorInfo.type = 'onerror';\n cb(errorInfo);\n _originOnerror && _originOnerror.apply(window, arg);\n };\n\n let _originOnunhandledrejection = window.onunhandledrejection;\n window.onunhandledrejection = (...arg) => {\n let e = arg[0];\n let reason = e.reason;\n cb({\n type: e.type || 'unhandledrejection',\n reason\n });\n _originOnunhandledrejection && _originOnunhandledrejection.apply(window, arg);\n };\n },\n};\n\nexport default errorCatch;\n","let xhrHook = {\n init: (cb) => {\n // xhr hook\n let xhr = window.XMLHttpRequest;\n if (xhr._eagle_flag === true) {\n return void 0;\n }\n xhr._eagle_flag = true;\n\n let _originOpen = xhr.prototype.open;\n xhr.prototype.open = function (method, url, async, user, password) {\n // TODO eagle url check\n this._eagle_xhr_info = {\n url: url,\n method: method,\n status: null\n };\n return _originOpen.apply(this, arguments);\n };\n\n let _originSend = xhr.prototype.send;\n xhr.prototype.send = function (value) {\n let _self = this;\n this._eagle_start_time = Date.now();\n\n let ajaxEnd = (event) => () => {\n if (_self.response) {\n let responseSize = null;\n switch(_self.responseType) {\n case 'json':\n responseSize = JSON && JSON.stringify(_this.response).length;\n break;\n case 'blob':\n case 'moz-blob':\n responseSize = _self.response.size;\n break;\n case 'arraybuffer':\n responseSize = _self.response.byteLength;\n case 'document':\n responseSize = _self.response.documentElement && _self.response.documentElement.innerHTML && (_self.response.documentElement.innerHTML.length + 28);\n break;\n default:\n responseSize = _self.response.length;\n }\n _self._eagle_xhr_info.event = event;\n _self._eagle_xhr_info.status = _self.status;\n _self._eagle_xhr_info.success = (_self.status >= 200 && _self.status <= 206) || _self.status === 304;\n _self._eagle_xhr_info.duration = Date.now() - _self._eagle_start_time;\n _self._eagle_xhr_info.responseSize = responseSize;\n _self._eagle_xhr_info.requestSize = value ? value.length : 0;\n _self._eagle_xhr_info.type = 'xhr';\n cb(this._eagle_xhr_info);\n }\n };\n\n // TODO eagle url check\n if (this.addEventListener) {\n this.addEventListener('load', ajaxEnd('load'), false);\n this.addEventListener('error', ajaxEnd('error'), false);\n this.addEventListener('abort', ajaxEnd('abort'), false);\n } else {\n let _origin_onreadystatechange = this.onreadystatechange;\n this.onreadystatechange = function (event) {\n if (_origin_onreadystatechange) {\n _originOpen.apply(this, arguments);\n }\n if (this.readyState === 4) {\n ajaxEnd('end')();\n }\n };\n }\n return _originSend.apply(this, arguments);\n };\n\n // fetch hook\n if (window.fetch) {\n let _origin_fetch = window.fetch;\n window.fetch = function () {\n let startTime = Date.now();\n let args = [].slice.call(arguments);\n\n let fetchInput = args[0];\n let method = 'GET';\n let url;\n\n if (typeof fetchInput === 'string') {\n url = fetchInput;\n } else if ('Request' in window && fetchInput instanceof window.Request) {\n url = fetchInput.url;\n if (fetchInput.method) {\n method = fetchInput.method;\n }\n } else {\n url = '' + fetchInput;\n }\n\n if (args[1] && args[1].method) {\n method = args[1].method;\n }\n\n // TODO eagle check\n let fetchData = {\n method: method,\n url: url,\n status: null,\n };\n\n return _origin_fetch.apply(this, args).then(function(response) {\n fetchData.status = response.status;\n fetchData.type = 'fetch';\n fetchData.duration = Date.now() - startTime;\n cb(fetchData);\n return response;\n });\n }\n }\n }\n};\n\nexport default xhrHook;\n","// /html/body/div[2]/ul/li[2]\n\nlet getXpath = (element) => {\n if (!(element instanceof Element)) {\n return void 0;\n }\n\n if (element.nodeType !== 1) {\n return void 0;\n }\n\n let rootElement = document.body;\n if (element === rootElement) {\n return void 0;\n }\n\n\n let childIndex = (ele) => {\n let parent = ele.parentNode;\n let children = [].slice.call(parent.childNodes).filter(_ => _.nodeType === 1);\n let i = 0;\n for (let _i = 0, len = children.length; _i < len; _i++) {\n if (children[_i] === ele) {\n i = _i;\n break;\n }\n }\n return i === 0 ? '' : '[' + i + ']';\n };\n\n let xpath = '';\n\n while (element !== document) {\n let tag = element.tagName.toLocaleLowerCase();\n let eleIndex = childIndex(element);\n xpath = '/' + tag + eleIndex + xpath;\n element = element.parentNode;\n }\n\n return xpath;\n};\n\nexport default getXpath;\n","import getXpath from './util/xpath.js';\n\nexport default {\n init: (cb) => {\n cb();\n document.addEventListener('click', (e) => {\n let xpath = getXpath(e.target);\n console.log('xpath: ', xpath);\n }, false);\n }\n}\n","import perf from './perf.js';\nimport resources from './resources.js';\nimport errorCatch from './errorCatch.js';\nimport xhrHook from './xhr.js';\nimport behavior from './behavior.js';\n\nperf.init((perfData) => {\n // console.log('perf', perfData);\n});\n\nresources.init((list) => {\n // console.log('resources', list.length === 1 ? list[0] : list);\n});\n\nerrorCatch.init((err) => {\n console.log('errorCatch', err);\n});\n\nxhrHook.init((xhrInfo) => {\n console.log(xhrInfo);\n});\n\nbehavior.init(() => {\n console.log('behavior init');\n});\n"],"names":["perf","cb","cycleFreq","isOnload","performance","window","mozPerformance","msPerformance","webkitPerformance","Util","name","callback","useCapture","addEventListener","attachEvent","timer","document","readyState","runCheck","timing","domInteractive","setTimeout","loadEventEnd","reportPerf","filterTime","a","b","undefined","perfData","fetchStart","navigationStart","responseEnd","redirectStart","domainLookupEnd","domainLookupStart","connectEnd","connectStart","responseStart","requestStart","domComplete","domLoading","loadEventStart","domContentLoadedEventStart","domready","type","onload","resolvePerformanceTiming","o","initiatorType","parseInt","duration","redirectEnd","startTime","resolveEntries","entries","map","item","resources","getEntries","PerformanceObserver","observer","list","e","error","observe","getEntriesByType","formatError","errObj","col","column","columnNumber","row","line","lineNumber","message","stack","matchUrl","match","urlFirstStack","regUrlCheck","resourceUrl","test","stackCol","stackRow","posStack","length","Number","errorCatch","_originOnerror","onerror","arg","errorMessage","scriptURI","errorObj","errorInfo","_errorMessage","_scriptURI","_lineNumber","_columnNumber","apply","_originOnunhandledrejection","onunhandledrejection","reason","xhrHook","xhr","XMLHttpRequest","_eagle_flag","_originOpen","prototype","open","method","url","async","user","password","_eagle_xhr_info","arguments","_originSend","send","value","_self","_eagle_start_time","Date","now","ajaxEnd","event","response","responseSize","responseType","JSON","stringify","_this","size","byteLength","documentElement","innerHTML","status","success","requestSize","_origin_onreadystatechange","onreadystatechange","fetch","_origin_fetch","args","slice","call","fetchInput","Request","fetchData","then","getXpath","element","Element","nodeType","rootElement","body","childIndex","ele","parent","parentNode","children","childNodes","filter","_","i","_i","len","xpath","tag","tagName","toLocaleLowerCase","eleIndex","target","log","init","err","xhrInfo","behavior"],"mappings":"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"} -------------------------------------------------------------------------------- /eagle-sdk/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "src", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "ansi-regex": { 8 | "version": "2.1.1", 9 | "resolved": "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", 10 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 11 | "dev": true 12 | }, 13 | "ansi-styles": { 14 | "version": "2.2.1", 15 | "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz", 16 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 17 | "dev": true 18 | }, 19 | "babel-code-frame": { 20 | "version": "6.26.0", 21 | "resolved": "http://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz", 22 | "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", 23 | "dev": true, 24 | "requires": { 25 | "chalk": "1.1.3", 26 | "esutils": "2.0.2", 27 | "js-tokens": "3.0.2" 28 | } 29 | }, 30 | "babel-core": { 31 | "version": "6.26.0", 32 | "resolved": "http://registry.npm.taobao.org/babel-core/download/babel-core-6.26.0.tgz", 33 | "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", 34 | "dev": true, 35 | "requires": { 36 | "babel-code-frame": "6.26.0", 37 | "babel-generator": "6.26.1", 38 | "babel-helpers": "6.24.1", 39 | "babel-messages": "6.23.0", 40 | "babel-register": "6.26.0", 41 | "babel-runtime": "6.26.0", 42 | "babel-template": "6.26.0", 43 | "babel-traverse": "6.26.0", 44 | "babel-types": "6.26.0", 45 | "babylon": "6.18.0", 46 | "convert-source-map": "1.5.1", 47 | "debug": "2.6.9", 48 | "json5": "0.5.1", 49 | "lodash": "4.17.5", 50 | "minimatch": "3.0.4", 51 | "path-is-absolute": "1.0.1", 52 | "private": "0.1.8", 53 | "slash": "1.0.0", 54 | "source-map": "0.5.7" 55 | } 56 | }, 57 | "babel-generator": { 58 | "version": "6.26.1", 59 | "resolved": "http://registry.npm.taobao.org/babel-generator/download/babel-generator-6.26.1.tgz", 60 | "integrity": "sha1-GERAjTuPDTWkBOp6wYDwh6YBvZA=", 61 | "dev": true, 62 | "requires": { 63 | "babel-messages": "6.23.0", 64 | "babel-runtime": "6.26.0", 65 | "babel-types": "6.26.0", 66 | "detect-indent": "4.0.0", 67 | "jsesc": "1.3.0", 68 | "lodash": "4.17.5", 69 | "source-map": "0.5.7", 70 | "trim-right": "1.0.1" 71 | } 72 | }, 73 | "babel-helper-builder-binary-assignment-operator-visitor": { 74 | "version": "6.24.1", 75 | "resolved": "http://registry.npm.taobao.org/babel-helper-builder-binary-assignment-operator-visitor/download/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", 76 | "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", 77 | "dev": true, 78 | "requires": { 79 | "babel-helper-explode-assignable-expression": "6.24.1", 80 | "babel-runtime": "6.26.0", 81 | "babel-types": "6.26.0" 82 | } 83 | }, 84 | "babel-helper-call-delegate": { 85 | "version": "6.24.1", 86 | "resolved": "http://registry.npm.taobao.org/babel-helper-call-delegate/download/babel-helper-call-delegate-6.24.1.tgz", 87 | "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", 88 | "dev": true, 89 | "requires": { 90 | "babel-helper-hoist-variables": "6.24.1", 91 | "babel-runtime": "6.26.0", 92 | "babel-traverse": "6.26.0", 93 | "babel-types": "6.26.0" 94 | } 95 | }, 96 | "babel-helper-define-map": { 97 | "version": "6.26.0", 98 | "resolved": "http://registry.npm.taobao.org/babel-helper-define-map/download/babel-helper-define-map-6.26.0.tgz", 99 | "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", 100 | "dev": true, 101 | "requires": { 102 | "babel-helper-function-name": "6.24.1", 103 | "babel-runtime": "6.26.0", 104 | "babel-types": "6.26.0", 105 | "lodash": "4.17.5" 106 | } 107 | }, 108 | "babel-helper-explode-assignable-expression": { 109 | "version": "6.24.1", 110 | "resolved": "http://registry.npm.taobao.org/babel-helper-explode-assignable-expression/download/babel-helper-explode-assignable-expression-6.24.1.tgz", 111 | "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", 112 | "dev": true, 113 | "requires": { 114 | "babel-runtime": "6.26.0", 115 | "babel-traverse": "6.26.0", 116 | "babel-types": "6.26.0" 117 | } 118 | }, 119 | "babel-helper-function-name": { 120 | "version": "6.24.1", 121 | "resolved": "http://registry.npm.taobao.org/babel-helper-function-name/download/babel-helper-function-name-6.24.1.tgz", 122 | "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", 123 | "dev": true, 124 | "requires": { 125 | "babel-helper-get-function-arity": "6.24.1", 126 | "babel-runtime": "6.26.0", 127 | "babel-template": "6.26.0", 128 | "babel-traverse": "6.26.0", 129 | "babel-types": "6.26.0" 130 | } 131 | }, 132 | "babel-helper-get-function-arity": { 133 | "version": "6.24.1", 134 | "resolved": "http://registry.npm.taobao.org/babel-helper-get-function-arity/download/babel-helper-get-function-arity-6.24.1.tgz", 135 | "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", 136 | "dev": true, 137 | "requires": { 138 | "babel-runtime": "6.26.0", 139 | "babel-types": "6.26.0" 140 | } 141 | }, 142 | "babel-helper-hoist-variables": { 143 | "version": "6.24.1", 144 | "resolved": "http://registry.npm.taobao.org/babel-helper-hoist-variables/download/babel-helper-hoist-variables-6.24.1.tgz", 145 | "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", 146 | "dev": true, 147 | "requires": { 148 | "babel-runtime": "6.26.0", 149 | "babel-types": "6.26.0" 150 | } 151 | }, 152 | "babel-helper-optimise-call-expression": { 153 | "version": "6.24.1", 154 | "resolved": "http://registry.npm.taobao.org/babel-helper-optimise-call-expression/download/babel-helper-optimise-call-expression-6.24.1.tgz", 155 | "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", 156 | "dev": true, 157 | "requires": { 158 | "babel-runtime": "6.26.0", 159 | "babel-types": "6.26.0" 160 | } 161 | }, 162 | "babel-helper-regex": { 163 | "version": "6.26.0", 164 | "resolved": "http://registry.npm.taobao.org/babel-helper-regex/download/babel-helper-regex-6.26.0.tgz", 165 | "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", 166 | "dev": true, 167 | "requires": { 168 | "babel-runtime": "6.26.0", 169 | "babel-types": "6.26.0", 170 | "lodash": "4.17.5" 171 | } 172 | }, 173 | "babel-helper-remap-async-to-generator": { 174 | "version": "6.24.1", 175 | "resolved": "http://registry.npm.taobao.org/babel-helper-remap-async-to-generator/download/babel-helper-remap-async-to-generator-6.24.1.tgz", 176 | "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", 177 | "dev": true, 178 | "requires": { 179 | "babel-helper-function-name": "6.24.1", 180 | "babel-runtime": "6.26.0", 181 | "babel-template": "6.26.0", 182 | "babel-traverse": "6.26.0", 183 | "babel-types": "6.26.0" 184 | } 185 | }, 186 | "babel-helper-replace-supers": { 187 | "version": "6.24.1", 188 | "resolved": "http://registry.npm.taobao.org/babel-helper-replace-supers/download/babel-helper-replace-supers-6.24.1.tgz", 189 | "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", 190 | "dev": true, 191 | "requires": { 192 | "babel-helper-optimise-call-expression": "6.24.1", 193 | "babel-messages": "6.23.0", 194 | "babel-runtime": "6.26.0", 195 | "babel-template": "6.26.0", 196 | "babel-traverse": "6.26.0", 197 | "babel-types": "6.26.0" 198 | } 199 | }, 200 | "babel-helpers": { 201 | "version": "6.24.1", 202 | "resolved": "http://registry.npm.taobao.org/babel-helpers/download/babel-helpers-6.24.1.tgz", 203 | "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", 204 | "dev": true, 205 | "requires": { 206 | "babel-runtime": "6.26.0", 207 | "babel-template": "6.26.0" 208 | } 209 | }, 210 | "babel-messages": { 211 | "version": "6.23.0", 212 | "resolved": "http://registry.npm.taobao.org/babel-messages/download/babel-messages-6.23.0.tgz", 213 | "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", 214 | "dev": true, 215 | "requires": { 216 | "babel-runtime": "6.26.0" 217 | } 218 | }, 219 | "babel-plugin-check-es2015-constants": { 220 | "version": "6.22.0", 221 | "resolved": "http://registry.npm.taobao.org/babel-plugin-check-es2015-constants/download/babel-plugin-check-es2015-constants-6.22.0.tgz", 222 | "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", 223 | "dev": true, 224 | "requires": { 225 | "babel-runtime": "6.26.0" 226 | } 227 | }, 228 | "babel-plugin-syntax-async-functions": { 229 | "version": "6.13.0", 230 | "resolved": "http://registry.npm.taobao.org/babel-plugin-syntax-async-functions/download/babel-plugin-syntax-async-functions-6.13.0.tgz", 231 | "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", 232 | "dev": true 233 | }, 234 | "babel-plugin-syntax-exponentiation-operator": { 235 | "version": "6.13.0", 236 | "resolved": "http://registry.npm.taobao.org/babel-plugin-syntax-exponentiation-operator/download/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", 237 | "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", 238 | "dev": true 239 | }, 240 | "babel-plugin-syntax-trailing-function-commas": { 241 | "version": "6.22.0", 242 | "resolved": "http://registry.npm.taobao.org/babel-plugin-syntax-trailing-function-commas/download/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", 243 | "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", 244 | "dev": true 245 | }, 246 | "babel-plugin-transform-async-to-generator": { 247 | "version": "6.24.1", 248 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-async-to-generator/download/babel-plugin-transform-async-to-generator-6.24.1.tgz", 249 | "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", 250 | "dev": true, 251 | "requires": { 252 | "babel-helper-remap-async-to-generator": "6.24.1", 253 | "babel-plugin-syntax-async-functions": "6.13.0", 254 | "babel-runtime": "6.26.0" 255 | } 256 | }, 257 | "babel-plugin-transform-es2015-arrow-functions": { 258 | "version": "6.22.0", 259 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-arrow-functions/download/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", 260 | "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", 261 | "dev": true, 262 | "requires": { 263 | "babel-runtime": "6.26.0" 264 | } 265 | }, 266 | "babel-plugin-transform-es2015-block-scoped-functions": { 267 | "version": "6.22.0", 268 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-block-scoped-functions/download/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", 269 | "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", 270 | "dev": true, 271 | "requires": { 272 | "babel-runtime": "6.26.0" 273 | } 274 | }, 275 | "babel-plugin-transform-es2015-block-scoping": { 276 | "version": "6.26.0", 277 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-block-scoping/download/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", 278 | "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", 279 | "dev": true, 280 | "requires": { 281 | "babel-runtime": "6.26.0", 282 | "babel-template": "6.26.0", 283 | "babel-traverse": "6.26.0", 284 | "babel-types": "6.26.0", 285 | "lodash": "4.17.5" 286 | } 287 | }, 288 | "babel-plugin-transform-es2015-classes": { 289 | "version": "6.24.1", 290 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-classes/download/babel-plugin-transform-es2015-classes-6.24.1.tgz", 291 | "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", 292 | "dev": true, 293 | "requires": { 294 | "babel-helper-define-map": "6.26.0", 295 | "babel-helper-function-name": "6.24.1", 296 | "babel-helper-optimise-call-expression": "6.24.1", 297 | "babel-helper-replace-supers": "6.24.1", 298 | "babel-messages": "6.23.0", 299 | "babel-runtime": "6.26.0", 300 | "babel-template": "6.26.0", 301 | "babel-traverse": "6.26.0", 302 | "babel-types": "6.26.0" 303 | } 304 | }, 305 | "babel-plugin-transform-es2015-computed-properties": { 306 | "version": "6.24.1", 307 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-computed-properties/download/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", 308 | "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", 309 | "dev": true, 310 | "requires": { 311 | "babel-runtime": "6.26.0", 312 | "babel-template": "6.26.0" 313 | } 314 | }, 315 | "babel-plugin-transform-es2015-destructuring": { 316 | "version": "6.23.0", 317 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-destructuring/download/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", 318 | "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", 319 | "dev": true, 320 | "requires": { 321 | "babel-runtime": "6.26.0" 322 | } 323 | }, 324 | "babel-plugin-transform-es2015-duplicate-keys": { 325 | "version": "6.24.1", 326 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-duplicate-keys/download/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", 327 | "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", 328 | "dev": true, 329 | "requires": { 330 | "babel-runtime": "6.26.0", 331 | "babel-types": "6.26.0" 332 | } 333 | }, 334 | "babel-plugin-transform-es2015-for-of": { 335 | "version": "6.23.0", 336 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-for-of/download/babel-plugin-transform-es2015-for-of-6.23.0.tgz", 337 | "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", 338 | "dev": true, 339 | "requires": { 340 | "babel-runtime": "6.26.0" 341 | } 342 | }, 343 | "babel-plugin-transform-es2015-function-name": { 344 | "version": "6.24.1", 345 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-function-name/download/babel-plugin-transform-es2015-function-name-6.24.1.tgz", 346 | "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", 347 | "dev": true, 348 | "requires": { 349 | "babel-helper-function-name": "6.24.1", 350 | "babel-runtime": "6.26.0", 351 | "babel-types": "6.26.0" 352 | } 353 | }, 354 | "babel-plugin-transform-es2015-literals": { 355 | "version": "6.22.0", 356 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-literals/download/babel-plugin-transform-es2015-literals-6.22.0.tgz", 357 | "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", 358 | "dev": true, 359 | "requires": { 360 | "babel-runtime": "6.26.0" 361 | } 362 | }, 363 | "babel-plugin-transform-es2015-modules-amd": { 364 | "version": "6.24.1", 365 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-amd/download/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", 366 | "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", 367 | "dev": true, 368 | "requires": { 369 | "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", 370 | "babel-runtime": "6.26.0", 371 | "babel-template": "6.26.0" 372 | } 373 | }, 374 | "babel-plugin-transform-es2015-modules-commonjs": { 375 | "version": "6.26.0", 376 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-commonjs/download/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", 377 | "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", 378 | "dev": true, 379 | "requires": { 380 | "babel-plugin-transform-strict-mode": "6.24.1", 381 | "babel-runtime": "6.26.0", 382 | "babel-template": "6.26.0", 383 | "babel-types": "6.26.0" 384 | } 385 | }, 386 | "babel-plugin-transform-es2015-modules-systemjs": { 387 | "version": "6.24.1", 388 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-systemjs/download/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", 389 | "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", 390 | "dev": true, 391 | "requires": { 392 | "babel-helper-hoist-variables": "6.24.1", 393 | "babel-runtime": "6.26.0", 394 | "babel-template": "6.26.0" 395 | } 396 | }, 397 | "babel-plugin-transform-es2015-modules-umd": { 398 | "version": "6.24.1", 399 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-modules-umd/download/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", 400 | "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", 401 | "dev": true, 402 | "requires": { 403 | "babel-plugin-transform-es2015-modules-amd": "6.24.1", 404 | "babel-runtime": "6.26.0", 405 | "babel-template": "6.26.0" 406 | } 407 | }, 408 | "babel-plugin-transform-es2015-object-super": { 409 | "version": "6.24.1", 410 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-object-super/download/babel-plugin-transform-es2015-object-super-6.24.1.tgz", 411 | "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", 412 | "dev": true, 413 | "requires": { 414 | "babel-helper-replace-supers": "6.24.1", 415 | "babel-runtime": "6.26.0" 416 | } 417 | }, 418 | "babel-plugin-transform-es2015-parameters": { 419 | "version": "6.24.1", 420 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-parameters/download/babel-plugin-transform-es2015-parameters-6.24.1.tgz", 421 | "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", 422 | "dev": true, 423 | "requires": { 424 | "babel-helper-call-delegate": "6.24.1", 425 | "babel-helper-get-function-arity": "6.24.1", 426 | "babel-runtime": "6.26.0", 427 | "babel-template": "6.26.0", 428 | "babel-traverse": "6.26.0", 429 | "babel-types": "6.26.0" 430 | } 431 | }, 432 | "babel-plugin-transform-es2015-shorthand-properties": { 433 | "version": "6.24.1", 434 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-shorthand-properties/download/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", 435 | "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", 436 | "dev": true, 437 | "requires": { 438 | "babel-runtime": "6.26.0", 439 | "babel-types": "6.26.0" 440 | } 441 | }, 442 | "babel-plugin-transform-es2015-spread": { 443 | "version": "6.22.0", 444 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-spread/download/babel-plugin-transform-es2015-spread-6.22.0.tgz", 445 | "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", 446 | "dev": true, 447 | "requires": { 448 | "babel-runtime": "6.26.0" 449 | } 450 | }, 451 | "babel-plugin-transform-es2015-sticky-regex": { 452 | "version": "6.24.1", 453 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-sticky-regex/download/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", 454 | "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", 455 | "dev": true, 456 | "requires": { 457 | "babel-helper-regex": "6.26.0", 458 | "babel-runtime": "6.26.0", 459 | "babel-types": "6.26.0" 460 | } 461 | }, 462 | "babel-plugin-transform-es2015-template-literals": { 463 | "version": "6.22.0", 464 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-template-literals/download/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", 465 | "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", 466 | "dev": true, 467 | "requires": { 468 | "babel-runtime": "6.26.0" 469 | } 470 | }, 471 | "babel-plugin-transform-es2015-typeof-symbol": { 472 | "version": "6.23.0", 473 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-typeof-symbol/download/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", 474 | "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", 475 | "dev": true, 476 | "requires": { 477 | "babel-runtime": "6.26.0" 478 | } 479 | }, 480 | "babel-plugin-transform-es2015-unicode-regex": { 481 | "version": "6.24.1", 482 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-es2015-unicode-regex/download/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", 483 | "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", 484 | "dev": true, 485 | "requires": { 486 | "babel-helper-regex": "6.26.0", 487 | "babel-runtime": "6.26.0", 488 | "regexpu-core": "2.0.0" 489 | } 490 | }, 491 | "babel-plugin-transform-exponentiation-operator": { 492 | "version": "6.24.1", 493 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-exponentiation-operator/download/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", 494 | "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", 495 | "dev": true, 496 | "requires": { 497 | "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", 498 | "babel-plugin-syntax-exponentiation-operator": "6.13.0", 499 | "babel-runtime": "6.26.0" 500 | } 501 | }, 502 | "babel-plugin-transform-regenerator": { 503 | "version": "6.26.0", 504 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-regenerator/download/babel-plugin-transform-regenerator-6.26.0.tgz", 505 | "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", 506 | "dev": true, 507 | "requires": { 508 | "regenerator-transform": "0.10.1" 509 | } 510 | }, 511 | "babel-plugin-transform-strict-mode": { 512 | "version": "6.24.1", 513 | "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-strict-mode/download/babel-plugin-transform-strict-mode-6.24.1.tgz", 514 | "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", 515 | "dev": true, 516 | "requires": { 517 | "babel-runtime": "6.26.0", 518 | "babel-types": "6.26.0" 519 | } 520 | }, 521 | "babel-preset-env": { 522 | "version": "1.6.1", 523 | "resolved": "http://registry.npm.taobao.org/babel-preset-env/download/babel-preset-env-1.6.1.tgz", 524 | "integrity": "sha1-oYtWTMm5r99KrleuPBsNmRiOb0g=", 525 | "dev": true, 526 | "requires": { 527 | "babel-plugin-check-es2015-constants": "6.22.0", 528 | "babel-plugin-syntax-trailing-function-commas": "6.22.0", 529 | "babel-plugin-transform-async-to-generator": "6.24.1", 530 | "babel-plugin-transform-es2015-arrow-functions": "6.22.0", 531 | "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", 532 | "babel-plugin-transform-es2015-block-scoping": "6.26.0", 533 | "babel-plugin-transform-es2015-classes": "6.24.1", 534 | "babel-plugin-transform-es2015-computed-properties": "6.24.1", 535 | "babel-plugin-transform-es2015-destructuring": "6.23.0", 536 | "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", 537 | "babel-plugin-transform-es2015-for-of": "6.23.0", 538 | "babel-plugin-transform-es2015-function-name": "6.24.1", 539 | "babel-plugin-transform-es2015-literals": "6.22.0", 540 | "babel-plugin-transform-es2015-modules-amd": "6.24.1", 541 | "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", 542 | "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", 543 | "babel-plugin-transform-es2015-modules-umd": "6.24.1", 544 | "babel-plugin-transform-es2015-object-super": "6.24.1", 545 | "babel-plugin-transform-es2015-parameters": "6.24.1", 546 | "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", 547 | "babel-plugin-transform-es2015-spread": "6.22.0", 548 | "babel-plugin-transform-es2015-sticky-regex": "6.24.1", 549 | "babel-plugin-transform-es2015-template-literals": "6.22.0", 550 | "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", 551 | "babel-plugin-transform-es2015-unicode-regex": "6.24.1", 552 | "babel-plugin-transform-exponentiation-operator": "6.24.1", 553 | "babel-plugin-transform-regenerator": "6.26.0", 554 | "browserslist": "2.11.3", 555 | "invariant": "2.2.2", 556 | "semver": "5.5.0" 557 | } 558 | }, 559 | "babel-register": { 560 | "version": "6.26.0", 561 | "resolved": "http://registry.npm.taobao.org/babel-register/download/babel-register-6.26.0.tgz", 562 | "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", 563 | "dev": true, 564 | "requires": { 565 | "babel-core": "6.26.0", 566 | "babel-runtime": "6.26.0", 567 | "core-js": "2.5.3", 568 | "home-or-tmp": "2.0.0", 569 | "lodash": "4.17.5", 570 | "mkdirp": "0.5.1", 571 | "source-map-support": "0.4.18" 572 | } 573 | }, 574 | "babel-runtime": { 575 | "version": "6.26.0", 576 | "resolved": "http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", 577 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", 578 | "dev": true, 579 | "requires": { 580 | "core-js": "2.5.3", 581 | "regenerator-runtime": "0.11.1" 582 | } 583 | }, 584 | "babel-template": { 585 | "version": "6.26.0", 586 | "resolved": "http://registry.npm.taobao.org/babel-template/download/babel-template-6.26.0.tgz", 587 | "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", 588 | "dev": true, 589 | "requires": { 590 | "babel-runtime": "6.26.0", 591 | "babel-traverse": "6.26.0", 592 | "babel-types": "6.26.0", 593 | "babylon": "6.18.0", 594 | "lodash": "4.17.5" 595 | } 596 | }, 597 | "babel-traverse": { 598 | "version": "6.26.0", 599 | "resolved": "http://registry.npm.taobao.org/babel-traverse/download/babel-traverse-6.26.0.tgz", 600 | "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", 601 | "dev": true, 602 | "requires": { 603 | "babel-code-frame": "6.26.0", 604 | "babel-messages": "6.23.0", 605 | "babel-runtime": "6.26.0", 606 | "babel-types": "6.26.0", 607 | "babylon": "6.18.0", 608 | "debug": "2.6.9", 609 | "globals": "9.18.0", 610 | "invariant": "2.2.2", 611 | "lodash": "4.17.5" 612 | } 613 | }, 614 | "babel-types": { 615 | "version": "6.26.0", 616 | "resolved": "http://registry.npm.taobao.org/babel-types/download/babel-types-6.26.0.tgz", 617 | "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", 618 | "dev": true, 619 | "requires": { 620 | "babel-runtime": "6.26.0", 621 | "esutils": "2.0.2", 622 | "lodash": "4.17.5", 623 | "to-fast-properties": "1.0.3" 624 | } 625 | }, 626 | "babylon": { 627 | "version": "6.18.0", 628 | "resolved": "http://registry.npm.taobao.org/babylon/download/babylon-6.18.0.tgz", 629 | "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", 630 | "dev": true 631 | }, 632 | "balanced-match": { 633 | "version": "1.0.0", 634 | "resolved": "http://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz", 635 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 636 | "dev": true 637 | }, 638 | "brace-expansion": { 639 | "version": "1.1.11", 640 | "resolved": "http://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz", 641 | "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", 642 | "dev": true, 643 | "requires": { 644 | "balanced-match": "1.0.0", 645 | "concat-map": "0.0.1" 646 | } 647 | }, 648 | "browserslist": { 649 | "version": "2.11.3", 650 | "resolved": "http://registry.npm.taobao.org/browserslist/download/browserslist-2.11.3.tgz", 651 | "integrity": "sha1-/jYWeu0bvN5IJ+v+cTR6LMcLmbI=", 652 | "dev": true, 653 | "requires": { 654 | "caniuse-lite": "1.0.30000808", 655 | "electron-to-chromium": "1.3.33" 656 | } 657 | }, 658 | "caniuse-lite": { 659 | "version": "1.0.30000808", 660 | "resolved": "http://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30000808.tgz", 661 | "integrity": "sha1-fXWbVRhSnqCLZwWhnnDb9AFij/w=", 662 | "dev": true 663 | }, 664 | "chalk": { 665 | "version": "1.1.3", 666 | "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz", 667 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 668 | "dev": true, 669 | "requires": { 670 | "ansi-styles": "2.2.1", 671 | "escape-string-regexp": "1.0.5", 672 | "has-ansi": "2.0.0", 673 | "strip-ansi": "3.0.1", 674 | "supports-color": "2.0.0" 675 | } 676 | }, 677 | "concat-map": { 678 | "version": "0.0.1", 679 | "resolved": "http://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", 680 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 681 | "dev": true 682 | }, 683 | "convert-source-map": { 684 | "version": "1.5.1", 685 | "resolved": "http://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.5.1.tgz", 686 | "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", 687 | "dev": true 688 | }, 689 | "core-js": { 690 | "version": "2.5.3", 691 | "resolved": "http://registry.npm.taobao.org/core-js/download/core-js-2.5.3.tgz", 692 | "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", 693 | "dev": true 694 | }, 695 | "cross-env": { 696 | "version": "5.1.3", 697 | "resolved": "http://registry.npm.taobao.org/cross-env/download/cross-env-5.1.3.tgz", 698 | "integrity": "sha1-+K4Y+qyHaSsKi00vcADU7DqF39c=", 699 | "dev": true, 700 | "requires": { 701 | "cross-spawn": "5.1.0", 702 | "is-windows": "1.0.1" 703 | } 704 | }, 705 | "cross-spawn": { 706 | "version": "5.1.0", 707 | "resolved": "http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz", 708 | "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", 709 | "dev": true, 710 | "requires": { 711 | "lru-cache": "4.1.1", 712 | "shebang-command": "1.2.0", 713 | "which": "1.3.0" 714 | } 715 | }, 716 | "debug": { 717 | "version": "2.6.9", 718 | "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", 719 | "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", 720 | "dev": true, 721 | "requires": { 722 | "ms": "2.0.0" 723 | } 724 | }, 725 | "detect-indent": { 726 | "version": "4.0.0", 727 | "resolved": "http://registry.npm.taobao.org/detect-indent/download/detect-indent-4.0.0.tgz", 728 | "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", 729 | "dev": true, 730 | "requires": { 731 | "repeating": "2.0.1" 732 | } 733 | }, 734 | "electron-to-chromium": { 735 | "version": "1.3.33", 736 | "resolved": "http://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.33.tgz", 737 | "integrity": "sha1-vwBwPWKnxlI4E2V4w1LWxcBCpUU=", 738 | "dev": true 739 | }, 740 | "escape-string-regexp": { 741 | "version": "1.0.5", 742 | "resolved": "http://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", 743 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 744 | "dev": true 745 | }, 746 | "estree-walker": { 747 | "version": "0.2.1", 748 | "resolved": "http://registry.npm.taobao.org/estree-walker/download/estree-walker-0.2.1.tgz", 749 | "integrity": "sha1-va/oCVOD2EFNXcLs9MkXO225QS4=", 750 | "dev": true 751 | }, 752 | "esutils": { 753 | "version": "2.0.2", 754 | "resolved": "http://registry.npm.taobao.org/esutils/download/esutils-2.0.2.tgz", 755 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 756 | "dev": true 757 | }, 758 | "globals": { 759 | "version": "9.18.0", 760 | "resolved": "http://registry.npm.taobao.org/globals/download/globals-9.18.0.tgz", 761 | "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", 762 | "dev": true 763 | }, 764 | "has-ansi": { 765 | "version": "2.0.0", 766 | "resolved": "http://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz", 767 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 768 | "dev": true, 769 | "requires": { 770 | "ansi-regex": "2.1.1" 771 | } 772 | }, 773 | "home-or-tmp": { 774 | "version": "2.0.0", 775 | "resolved": "http://registry.npm.taobao.org/home-or-tmp/download/home-or-tmp-2.0.0.tgz", 776 | "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", 777 | "dev": true, 778 | "requires": { 779 | "os-homedir": "1.0.2", 780 | "os-tmpdir": "1.0.2" 781 | } 782 | }, 783 | "invariant": { 784 | "version": "2.2.2", 785 | "resolved": "http://registry.npm.taobao.org/invariant/download/invariant-2.2.2.tgz", 786 | "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", 787 | "dev": true, 788 | "requires": { 789 | "loose-envify": "1.3.1" 790 | } 791 | }, 792 | "is-finite": { 793 | "version": "1.0.2", 794 | "resolved": "http://registry.npm.taobao.org/is-finite/download/is-finite-1.0.2.tgz", 795 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", 796 | "dev": true, 797 | "requires": { 798 | "number-is-nan": "1.0.1" 799 | } 800 | }, 801 | "is-windows": { 802 | "version": "1.0.1", 803 | "resolved": "http://registry.npm.taobao.org/is-windows/download/is-windows-1.0.1.tgz", 804 | "integrity": "sha1-MQ23D3QtJZoWo2kgK1GvhCMzENk=", 805 | "dev": true 806 | }, 807 | "isexe": { 808 | "version": "2.0.0", 809 | "resolved": "http://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz", 810 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 811 | "dev": true 812 | }, 813 | "js-tokens": { 814 | "version": "3.0.2", 815 | "resolved": "http://registry.npm.taobao.org/js-tokens/download/js-tokens-3.0.2.tgz", 816 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", 817 | "dev": true 818 | }, 819 | "jsesc": { 820 | "version": "1.3.0", 821 | "resolved": "http://registry.npm.taobao.org/jsesc/download/jsesc-1.3.0.tgz", 822 | "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", 823 | "dev": true 824 | }, 825 | "json5": { 826 | "version": "0.5.1", 827 | "resolved": "http://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz", 828 | "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", 829 | "dev": true 830 | }, 831 | "lodash": { 832 | "version": "4.17.5", 833 | "resolved": "http://registry.npm.taobao.org/lodash/download/lodash-4.17.5.tgz", 834 | "integrity": "sha1-maktZcAnLevoyWtgV7yPv6O+1RE=", 835 | "dev": true 836 | }, 837 | "loose-envify": { 838 | "version": "1.3.1", 839 | "resolved": "http://registry.npm.taobao.org/loose-envify/download/loose-envify-1.3.1.tgz", 840 | "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", 841 | "dev": true, 842 | "requires": { 843 | "js-tokens": "3.0.2" 844 | } 845 | }, 846 | "lru-cache": { 847 | "version": "4.1.1", 848 | "resolved": "http://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.1.tgz", 849 | "integrity": "sha1-Yi4y6CSItJJ5EUpPns9F581rulU=", 850 | "dev": true, 851 | "requires": { 852 | "pseudomap": "1.0.2", 853 | "yallist": "2.1.2" 854 | } 855 | }, 856 | "minimatch": { 857 | "version": "3.0.4", 858 | "resolved": "http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz", 859 | "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", 860 | "dev": true, 861 | "requires": { 862 | "brace-expansion": "1.1.11" 863 | } 864 | }, 865 | "minimist": { 866 | "version": "0.0.8", 867 | "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz", 868 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 869 | "dev": true 870 | }, 871 | "mkdirp": { 872 | "version": "0.5.1", 873 | "resolved": "http://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz", 874 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 875 | "dev": true, 876 | "requires": { 877 | "minimist": "0.0.8" 878 | } 879 | }, 880 | "ms": { 881 | "version": "2.0.0", 882 | "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", 883 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 884 | "dev": true 885 | }, 886 | "number-is-nan": { 887 | "version": "1.0.1", 888 | "resolved": "http://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz", 889 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 890 | "dev": true 891 | }, 892 | "os-homedir": { 893 | "version": "1.0.2", 894 | "resolved": "http://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz", 895 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", 896 | "dev": true 897 | }, 898 | "os-tmpdir": { 899 | "version": "1.0.2", 900 | "resolved": "http://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz", 901 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 902 | "dev": true 903 | }, 904 | "path-is-absolute": { 905 | "version": "1.0.1", 906 | "resolved": "http://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz", 907 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 908 | "dev": true 909 | }, 910 | "private": { 911 | "version": "0.1.8", 912 | "resolved": "http://registry.npm.taobao.org/private/download/private-0.1.8.tgz", 913 | "integrity": "sha1-I4Hts2ifelPWUxkAYPz4ItLzaP8=", 914 | "dev": true 915 | }, 916 | "pseudomap": { 917 | "version": "1.0.2", 918 | "resolved": "http://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz", 919 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", 920 | "dev": true 921 | }, 922 | "regenerate": { 923 | "version": "1.3.3", 924 | "resolved": "http://registry.npm.taobao.org/regenerate/download/regenerate-1.3.3.tgz", 925 | "integrity": "sha1-DDNtOYBVPXVcObWGrjsgqknIK38=", 926 | "dev": true 927 | }, 928 | "regenerator-runtime": { 929 | "version": "0.11.1", 930 | "resolved": "http://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz", 931 | "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=", 932 | "dev": true 933 | }, 934 | "regenerator-transform": { 935 | "version": "0.10.1", 936 | "resolved": "http://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.10.1.tgz", 937 | "integrity": "sha1-HkmWg3Ix2ot/PPQRTXG1aRoGgN0=", 938 | "dev": true, 939 | "requires": { 940 | "babel-runtime": "6.26.0", 941 | "babel-types": "6.26.0", 942 | "private": "0.1.8" 943 | } 944 | }, 945 | "regexpu-core": { 946 | "version": "2.0.0", 947 | "resolved": "http://registry.npm.taobao.org/regexpu-core/download/regexpu-core-2.0.0.tgz", 948 | "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", 949 | "dev": true, 950 | "requires": { 951 | "regenerate": "1.3.3", 952 | "regjsgen": "0.2.0", 953 | "regjsparser": "0.1.5" 954 | } 955 | }, 956 | "regjsgen": { 957 | "version": "0.2.0", 958 | "resolved": "http://registry.npm.taobao.org/regjsgen/download/regjsgen-0.2.0.tgz", 959 | "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", 960 | "dev": true 961 | }, 962 | "regjsparser": { 963 | "version": "0.1.5", 964 | "resolved": "http://registry.npm.taobao.org/regjsparser/download/regjsparser-0.1.5.tgz", 965 | "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", 966 | "dev": true, 967 | "requires": { 968 | "jsesc": "0.5.0" 969 | }, 970 | "dependencies": { 971 | "jsesc": { 972 | "version": "0.5.0", 973 | "resolved": "http://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz", 974 | "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", 975 | "dev": true 976 | } 977 | } 978 | }, 979 | "repeating": { 980 | "version": "2.0.1", 981 | "resolved": "http://registry.npm.taobao.org/repeating/download/repeating-2.0.1.tgz", 982 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", 983 | "dev": true, 984 | "requires": { 985 | "is-finite": "1.0.2" 986 | } 987 | }, 988 | "rollup": { 989 | "version": "0.55.5", 990 | "resolved": "http://registry.npm.taobao.org/rollup/download/rollup-0.55.5.tgz", 991 | "integrity": "sha1-L4jDAPfPJLXsLcqKarpzsE4IfpM=", 992 | "dev": true 993 | }, 994 | "rollup-plugin-babel": { 995 | "version": "3.0.3", 996 | "resolved": "http://registry.npm.taobao.org/rollup-plugin-babel/download/rollup-plugin-babel-3.0.3.tgz", 997 | "integrity": "sha1-Y63tyGMTAydRKkqQBu/CJBxbfBU=", 998 | "dev": true, 999 | "requires": { 1000 | "rollup-pluginutils": "1.5.2" 1001 | } 1002 | }, 1003 | "rollup-pluginutils": { 1004 | "version": "1.5.2", 1005 | "resolved": "http://registry.npm.taobao.org/rollup-pluginutils/download/rollup-pluginutils-1.5.2.tgz", 1006 | "integrity": "sha1-HhVud4+UtyVb+hs9AXi+j1xVJAg=", 1007 | "dev": true, 1008 | "requires": { 1009 | "estree-walker": "0.2.1", 1010 | "minimatch": "3.0.4" 1011 | } 1012 | }, 1013 | "semver": { 1014 | "version": "5.5.0", 1015 | "resolved": "http://registry.npm.taobao.org/semver/download/semver-5.5.0.tgz", 1016 | "integrity": "sha1-3Eu8emyp2Rbe5dQ1FvAJK1j3uKs=", 1017 | "dev": true 1018 | }, 1019 | "shebang-command": { 1020 | "version": "1.2.0", 1021 | "resolved": "http://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz", 1022 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 1023 | "dev": true, 1024 | "requires": { 1025 | "shebang-regex": "1.0.0" 1026 | } 1027 | }, 1028 | "shebang-regex": { 1029 | "version": "1.0.0", 1030 | "resolved": "http://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz", 1031 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 1032 | "dev": true 1033 | }, 1034 | "slash": { 1035 | "version": "1.0.0", 1036 | "resolved": "http://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", 1037 | "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", 1038 | "dev": true 1039 | }, 1040 | "source-map": { 1041 | "version": "0.5.7", 1042 | "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", 1043 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 1044 | "dev": true 1045 | }, 1046 | "source-map-support": { 1047 | "version": "0.4.18", 1048 | "resolved": "http://registry.npm.taobao.org/source-map-support/download/source-map-support-0.4.18.tgz", 1049 | "integrity": "sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8=", 1050 | "dev": true, 1051 | "requires": { 1052 | "source-map": "0.5.7" 1053 | } 1054 | }, 1055 | "strip-ansi": { 1056 | "version": "3.0.1", 1057 | "resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz", 1058 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 1059 | "dev": true, 1060 | "requires": { 1061 | "ansi-regex": "2.1.1" 1062 | } 1063 | }, 1064 | "supports-color": { 1065 | "version": "2.0.0", 1066 | "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz", 1067 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 1068 | "dev": true 1069 | }, 1070 | "to-fast-properties": { 1071 | "version": "1.0.3", 1072 | "resolved": "http://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-1.0.3.tgz", 1073 | "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", 1074 | "dev": true 1075 | }, 1076 | "trim-right": { 1077 | "version": "1.0.1", 1078 | "resolved": "http://registry.npm.taobao.org/trim-right/download/trim-right-1.0.1.tgz", 1079 | "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", 1080 | "dev": true 1081 | }, 1082 | "which": { 1083 | "version": "1.3.0", 1084 | "resolved": "http://registry.npm.taobao.org/which/download/which-1.3.0.tgz", 1085 | "integrity": "sha1-/wS9/AEO5UfXgL7DjhrBwnd9JTo=", 1086 | "dev": true, 1087 | "requires": { 1088 | "isexe": "2.0.0" 1089 | } 1090 | }, 1091 | "yallist": { 1092 | "version": "2.1.2", 1093 | "resolved": "http://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", 1094 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", 1095 | "dev": true 1096 | } 1097 | } 1098 | } 1099 | -------------------------------------------------------------------------------- /website/client/react-app/dist/main.bundle.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([0],{ 2 | 3 | /***/ 106: 4 | /***/ (function(module, exports) { 5 | 6 | // 7.2.1 RequireObjectCoercible(argument) 7 | module.exports = function (it) { 8 | if (it == undefined) throw TypeError("Can't call method on " + it); 9 | return it; 10 | }; 11 | 12 | 13 | /***/ }), 14 | 15 | /***/ 107: 16 | /***/ (function(module, exports, __webpack_require__) { 17 | 18 | var shared = __webpack_require__(108)('keys'); 19 | var uid = __webpack_require__(75); 20 | module.exports = function (key) { 21 | return shared[key] || (shared[key] = uid(key)); 22 | }; 23 | 24 | 25 | /***/ }), 26 | 27 | /***/ 108: 28 | /***/ (function(module, exports, __webpack_require__) { 29 | 30 | var global = __webpack_require__(31); 31 | var SHARED = '__core-js_shared__'; 32 | var store = global[SHARED] || (global[SHARED] = {}); 33 | module.exports = function (key) { 34 | return store[key] || (store[key] = {}); 35 | }; 36 | 37 | 38 | /***/ }), 39 | 40 | /***/ 109: 41 | /***/ (function(module, exports, __webpack_require__) { 42 | 43 | // 7.1.1 ToPrimitive(input [, PreferredType]) 44 | var isObject = __webpack_require__(53); 45 | // instead of the ES6 spec version, we didn't implement @@toPrimitive case 46 | // and the second argument - flag - preferred type is a string 47 | module.exports = function (it, S) { 48 | if (!isObject(it)) return it; 49 | var fn, val; 50 | if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; 51 | if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; 52 | if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; 53 | throw TypeError("Can't convert object to primitive value"); 54 | }; 55 | 56 | 57 | /***/ }), 58 | 59 | /***/ 110: 60 | /***/ (function(module, exports) { 61 | 62 | // 7.1.4 ToInteger 63 | var ceil = Math.ceil; 64 | var floor = Math.floor; 65 | module.exports = function (it) { 66 | return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); 67 | }; 68 | 69 | 70 | /***/ }), 71 | 72 | /***/ 111: 73 | /***/ (function(module, exports) { 74 | 75 | module.exports = true; 76 | 77 | 78 | /***/ }), 79 | 80 | /***/ 112: 81 | /***/ (function(module, exports) { 82 | 83 | module.exports = {}; 84 | 85 | 86 | /***/ }), 87 | 88 | /***/ 113: 89 | /***/ (function(module, exports, __webpack_require__) { 90 | 91 | // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) 92 | var anObject = __webpack_require__(59); 93 | var dPs = __webpack_require__(401); 94 | var enumBugKeys = __webpack_require__(115); 95 | var IE_PROTO = __webpack_require__(107)('IE_PROTO'); 96 | var Empty = function () { /* empty */ }; 97 | var PROTOTYPE = 'prototype'; 98 | 99 | // Create object with fake `null` prototype: use iframe Object with cleared prototype 100 | var createDict = function () { 101 | // Thrash, waste and sodomy: IE GC bug 102 | var iframe = __webpack_require__(162)('iframe'); 103 | var i = enumBugKeys.length; 104 | var lt = '<'; 105 | var gt = '>'; 106 | var iframeDocument; 107 | iframe.style.display = 'none'; 108 | __webpack_require__(406).appendChild(iframe); 109 | iframe.src = 'javascript:'; // eslint-disable-line no-script-url 110 | // createDict = iframe.contentWindow.Object; 111 | // html.removeChild(iframe); 112 | iframeDocument = iframe.contentWindow.document; 113 | iframeDocument.open(); 114 | iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); 115 | iframeDocument.close(); 116 | createDict = iframeDocument.F; 117 | while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; 118 | return createDict(); 119 | }; 120 | 121 | module.exports = Object.create || function create(O, Properties) { 122 | var result; 123 | if (O !== null) { 124 | Empty[PROTOTYPE] = anObject(O); 125 | result = new Empty(); 126 | Empty[PROTOTYPE] = null; 127 | // add "__proto__" for Object.getPrototypeOf polyfill 128 | result[IE_PROTO] = O; 129 | } else result = createDict(); 130 | return Properties === undefined ? result : dPs(result, Properties); 131 | }; 132 | 133 | 134 | /***/ }), 135 | 136 | /***/ 114: 137 | /***/ (function(module, exports, __webpack_require__) { 138 | 139 | // 19.1.2.14 / 15.2.3.14 Object.keys(O) 140 | var $keys = __webpack_require__(166); 141 | var enumBugKeys = __webpack_require__(115); 142 | 143 | module.exports = Object.keys || function keys(O) { 144 | return $keys(O, enumBugKeys); 145 | }; 146 | 147 | 148 | /***/ }), 149 | 150 | /***/ 115: 151 | /***/ (function(module, exports) { 152 | 153 | // IE 8- don't enum bug keys 154 | module.exports = ( 155 | 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' 156 | ).split(','); 157 | 158 | 159 | /***/ }), 160 | 161 | /***/ 116: 162 | /***/ (function(module, exports, __webpack_require__) { 163 | 164 | var def = __webpack_require__(45).f; 165 | var has = __webpack_require__(44); 166 | var TAG = __webpack_require__(55)('toStringTag'); 167 | 168 | module.exports = function (it, tag, stat) { 169 | if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); 170 | }; 171 | 172 | 173 | /***/ }), 174 | 175 | /***/ 117: 176 | /***/ (function(module, exports, __webpack_require__) { 177 | 178 | exports.f = __webpack_require__(55); 179 | 180 | 181 | /***/ }), 182 | 183 | /***/ 118: 184 | /***/ (function(module, exports, __webpack_require__) { 185 | 186 | var global = __webpack_require__(31); 187 | var core = __webpack_require__(32); 188 | var LIBRARY = __webpack_require__(111); 189 | var wksExt = __webpack_require__(117); 190 | var defineProperty = __webpack_require__(45).f; 191 | module.exports = function (name) { 192 | var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); 193 | if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); 194 | }; 195 | 196 | 197 | /***/ }), 198 | 199 | /***/ 119: 200 | /***/ (function(module, exports) { 201 | 202 | exports.f = {}.propertyIsEnumerable; 203 | 204 | 205 | /***/ }), 206 | 207 | /***/ 158: 208 | /***/ (function(module, exports, __webpack_require__) { 209 | 210 | // 7.1.13 ToObject(argument) 211 | var defined = __webpack_require__(106); 212 | module.exports = function (it) { 213 | return Object(defined(it)); 214 | }; 215 | 216 | 217 | /***/ }), 218 | 219 | /***/ 159: 220 | /***/ (function(module, exports, __webpack_require__) { 221 | 222 | // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) 223 | var has = __webpack_require__(44); 224 | var toObject = __webpack_require__(158); 225 | var IE_PROTO = __webpack_require__(107)('IE_PROTO'); 226 | var ObjectProto = Object.prototype; 227 | 228 | module.exports = Object.getPrototypeOf || function (O) { 229 | O = toObject(O); 230 | if (has(O, IE_PROTO)) return O[IE_PROTO]; 231 | if (typeof O.constructor == 'function' && O instanceof O.constructor) { 232 | return O.constructor.prototype; 233 | } return O instanceof Object ? ObjectProto : null; 234 | }; 235 | 236 | 237 | /***/ }), 238 | 239 | /***/ 160: 240 | /***/ (function(module, exports, __webpack_require__) { 241 | 242 | // optional / simple context binding 243 | var aFunction = __webpack_require__(389); 244 | module.exports = function (fn, that, length) { 245 | aFunction(fn); 246 | if (that === undefined) return fn; 247 | switch (length) { 248 | case 1: return function (a) { 249 | return fn.call(that, a); 250 | }; 251 | case 2: return function (a, b) { 252 | return fn.call(that, a, b); 253 | }; 254 | case 3: return function (a, b, c) { 255 | return fn.call(that, a, b, c); 256 | }; 257 | } 258 | return function (/* ...args */) { 259 | return fn.apply(that, arguments); 260 | }; 261 | }; 262 | 263 | 264 | /***/ }), 265 | 266 | /***/ 161: 267 | /***/ (function(module, exports, __webpack_require__) { 268 | 269 | module.exports = !__webpack_require__(46) && !__webpack_require__(60)(function () { 270 | return Object.defineProperty(__webpack_require__(162)('div'), 'a', { get: function () { return 7; } }).a != 7; 271 | }); 272 | 273 | 274 | /***/ }), 275 | 276 | /***/ 162: 277 | /***/ (function(module, exports, __webpack_require__) { 278 | 279 | var isObject = __webpack_require__(53); 280 | var document = __webpack_require__(31).document; 281 | // typeof document.createElement is 'object' in old IE 282 | var is = isObject(document) && isObject(document.createElement); 283 | module.exports = function (it) { 284 | return is ? document.createElement(it) : {}; 285 | }; 286 | 287 | 288 | /***/ }), 289 | 290 | /***/ 163: 291 | /***/ (function(module, exports, __webpack_require__) { 292 | 293 | "use strict"; 294 | 295 | 296 | exports.__esModule = true; 297 | 298 | var _iterator = __webpack_require__(396); 299 | 300 | var _iterator2 = _interopRequireDefault(_iterator); 301 | 302 | var _symbol = __webpack_require__(411); 303 | 304 | var _symbol2 = _interopRequireDefault(_symbol); 305 | 306 | var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; }; 307 | 308 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 309 | 310 | exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { 311 | return typeof obj === "undefined" ? "undefined" : _typeof(obj); 312 | } : function (obj) { 313 | return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); 314 | }; 315 | 316 | /***/ }), 317 | 318 | /***/ 164: 319 | /***/ (function(module, exports, __webpack_require__) { 320 | 321 | "use strict"; 322 | 323 | var LIBRARY = __webpack_require__(111); 324 | var $export = __webpack_require__(51); 325 | var redefine = __webpack_require__(165); 326 | var hide = __webpack_require__(52); 327 | var has = __webpack_require__(44); 328 | var Iterators = __webpack_require__(112); 329 | var $iterCreate = __webpack_require__(400); 330 | var setToStringTag = __webpack_require__(116); 331 | var getPrototypeOf = __webpack_require__(159); 332 | var ITERATOR = __webpack_require__(55)('iterator'); 333 | var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` 334 | var FF_ITERATOR = '@@iterator'; 335 | var KEYS = 'keys'; 336 | var VALUES = 'values'; 337 | 338 | var returnThis = function () { return this; }; 339 | 340 | module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { 341 | $iterCreate(Constructor, NAME, next); 342 | var getMethod = function (kind) { 343 | if (!BUGGY && kind in proto) return proto[kind]; 344 | switch (kind) { 345 | case KEYS: return function keys() { return new Constructor(this, kind); }; 346 | case VALUES: return function values() { return new Constructor(this, kind); }; 347 | } return function entries() { return new Constructor(this, kind); }; 348 | }; 349 | var TAG = NAME + ' Iterator'; 350 | var DEF_VALUES = DEFAULT == VALUES; 351 | var VALUES_BUG = false; 352 | var proto = Base.prototype; 353 | var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; 354 | var $default = (!BUGGY && $native) || getMethod(DEFAULT); 355 | var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; 356 | var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; 357 | var methods, key, IteratorPrototype; 358 | // Fix native 359 | if ($anyNative) { 360 | IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); 361 | if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { 362 | // Set @@toStringTag to native iterators 363 | setToStringTag(IteratorPrototype, TAG, true); 364 | // fix for some old engines 365 | if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis); 366 | } 367 | } 368 | // fix Array#{values, @@iterator}.name in V8 / FF 369 | if (DEF_VALUES && $native && $native.name !== VALUES) { 370 | VALUES_BUG = true; 371 | $default = function values() { return $native.call(this); }; 372 | } 373 | // Define iterator 374 | if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { 375 | hide(proto, ITERATOR, $default); 376 | } 377 | // Plug for library 378 | Iterators[NAME] = $default; 379 | Iterators[TAG] = returnThis; 380 | if (DEFAULT) { 381 | methods = { 382 | values: DEF_VALUES ? $default : getMethod(VALUES), 383 | keys: IS_SET ? $default : getMethod(KEYS), 384 | entries: $entries 385 | }; 386 | if (FORCED) for (key in methods) { 387 | if (!(key in proto)) redefine(proto, key, methods[key]); 388 | } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); 389 | } 390 | return methods; 391 | }; 392 | 393 | 394 | /***/ }), 395 | 396 | /***/ 165: 397 | /***/ (function(module, exports, __webpack_require__) { 398 | 399 | module.exports = __webpack_require__(52); 400 | 401 | 402 | /***/ }), 403 | 404 | /***/ 166: 405 | /***/ (function(module, exports, __webpack_require__) { 406 | 407 | var has = __webpack_require__(44); 408 | var toIObject = __webpack_require__(54); 409 | var arrayIndexOf = __webpack_require__(403)(false); 410 | var IE_PROTO = __webpack_require__(107)('IE_PROTO'); 411 | 412 | module.exports = function (object, names) { 413 | var O = toIObject(object); 414 | var i = 0; 415 | var result = []; 416 | var key; 417 | for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); 418 | // Don't enum bug & hidden keys 419 | while (names.length > i) if (has(O, key = names[i++])) { 420 | ~arrayIndexOf(result, key) || result.push(key); 421 | } 422 | return result; 423 | }; 424 | 425 | 426 | /***/ }), 427 | 428 | /***/ 167: 429 | /***/ (function(module, exports) { 430 | 431 | var toString = {}.toString; 432 | 433 | module.exports = function (it) { 434 | return toString.call(it).slice(8, -1); 435 | }; 436 | 437 | 438 | /***/ }), 439 | 440 | /***/ 168: 441 | /***/ (function(module, exports) { 442 | 443 | exports.f = Object.getOwnPropertySymbols; 444 | 445 | 446 | /***/ }), 447 | 448 | /***/ 169: 449 | /***/ (function(module, exports, __webpack_require__) { 450 | 451 | // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) 452 | var $keys = __webpack_require__(166); 453 | var hiddenKeys = __webpack_require__(115).concat('length', 'prototype'); 454 | 455 | exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { 456 | return $keys(O, hiddenKeys); 457 | }; 458 | 459 | 460 | /***/ }), 461 | 462 | /***/ 170: 463 | /***/ (function(module, exports, __webpack_require__) { 464 | 465 | var pIE = __webpack_require__(119); 466 | var createDesc = __webpack_require__(76); 467 | var toIObject = __webpack_require__(54); 468 | var toPrimitive = __webpack_require__(109); 469 | var has = __webpack_require__(44); 470 | var IE8_DOM_DEFINE = __webpack_require__(161); 471 | var gOPD = Object.getOwnPropertyDescriptor; 472 | 473 | exports.f = __webpack_require__(46) ? gOPD : function getOwnPropertyDescriptor(O, P) { 474 | O = toIObject(O); 475 | P = toPrimitive(P, true); 476 | if (IE8_DOM_DEFINE) try { 477 | return gOPD(O, P); 478 | } catch (e) { /* empty */ } 479 | if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); 480 | }; 481 | 482 | 483 | /***/ }), 484 | 485 | /***/ 31: 486 | /***/ (function(module, exports) { 487 | 488 | // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 489 | var global = module.exports = typeof window != 'undefined' && window.Math == Math 490 | ? window : typeof self != 'undefined' && self.Math == Math ? self 491 | // eslint-disable-next-line no-new-func 492 | : Function('return this')(); 493 | if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef 494 | 495 | 496 | /***/ }), 497 | 498 | /***/ 32: 499 | /***/ (function(module, exports) { 500 | 501 | var core = module.exports = { version: '2.5.3' }; 502 | if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef 503 | 504 | 505 | /***/ }), 506 | 507 | /***/ 384: 508 | /***/ (function(module, exports, __webpack_require__) { 509 | 510 | "use strict"; 511 | 512 | 513 | var _getPrototypeOf = __webpack_require__(385); 514 | 515 | var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); 516 | 517 | var _classCallCheck2 = __webpack_require__(390); 518 | 519 | var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); 520 | 521 | var _createClass2 = __webpack_require__(391); 522 | 523 | var _createClass3 = _interopRequireDefault(_createClass2); 524 | 525 | var _possibleConstructorReturn2 = __webpack_require__(395); 526 | 527 | var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); 528 | 529 | var _inherits2 = __webpack_require__(421); 530 | 531 | var _inherits3 = _interopRequireDefault(_inherits2); 532 | 533 | var _react = __webpack_require__(104); 534 | 535 | var _react2 = _interopRequireDefault(_react); 536 | 537 | var _reactDom = __webpack_require__(157); 538 | 539 | var _reactDom2 = _interopRequireDefault(_reactDom); 540 | 541 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 542 | 543 | var AppComponent = function (_Component) { 544 | (0, _inherits3.default)(AppComponent, _Component); 545 | 546 | function AppComponent(props) { 547 | (0, _classCallCheck3.default)(this, AppComponent); 548 | return (0, _possibleConstructorReturn3.default)(this, (AppComponent.__proto__ || (0, _getPrototypeOf2.default)(AppComponent)).call(this, props)); 549 | } 550 | 551 | (0, _createClass3.default)(AppComponent, [{ 552 | key: 'componentDidMount', 553 | value: function componentDidMount() { 554 | vue = 'vanilla' + 'react'; 555 | } 556 | }, { 557 | key: 'render', 558 | value: function render() { 559 | return _react2.default.createElement( 560 | 'div', 561 | null, 562 | 'react app' 563 | ); 564 | } 565 | }]); 566 | return AppComponent; 567 | }(_react.Component); 568 | 569 | _reactDom2.default.render(_react2.default.createElement(AppComponent, null), document.querySelector('.react-area')); 570 | 571 | /***/ }), 572 | 573 | /***/ 385: 574 | /***/ (function(module, exports, __webpack_require__) { 575 | 576 | module.exports = { "default": __webpack_require__(386), __esModule: true }; 577 | 578 | /***/ }), 579 | 580 | /***/ 386: 581 | /***/ (function(module, exports, __webpack_require__) { 582 | 583 | __webpack_require__(387); 584 | module.exports = __webpack_require__(32).Object.getPrototypeOf; 585 | 586 | 587 | /***/ }), 588 | 589 | /***/ 387: 590 | /***/ (function(module, exports, __webpack_require__) { 591 | 592 | // 19.1.2.9 Object.getPrototypeOf(O) 593 | var toObject = __webpack_require__(158); 594 | var $getPrototypeOf = __webpack_require__(159); 595 | 596 | __webpack_require__(388)('getPrototypeOf', function () { 597 | return function getPrototypeOf(it) { 598 | return $getPrototypeOf(toObject(it)); 599 | }; 600 | }); 601 | 602 | 603 | /***/ }), 604 | 605 | /***/ 388: 606 | /***/ (function(module, exports, __webpack_require__) { 607 | 608 | // most Object methods by ES6 should accept primitives 609 | var $export = __webpack_require__(51); 610 | var core = __webpack_require__(32); 611 | var fails = __webpack_require__(60); 612 | module.exports = function (KEY, exec) { 613 | var fn = (core.Object || {})[KEY] || Object[KEY]; 614 | var exp = {}; 615 | exp[KEY] = exec(fn); 616 | $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp); 617 | }; 618 | 619 | 620 | /***/ }), 621 | 622 | /***/ 389: 623 | /***/ (function(module, exports) { 624 | 625 | module.exports = function (it) { 626 | if (typeof it != 'function') throw TypeError(it + ' is not a function!'); 627 | return it; 628 | }; 629 | 630 | 631 | /***/ }), 632 | 633 | /***/ 390: 634 | /***/ (function(module, exports, __webpack_require__) { 635 | 636 | "use strict"; 637 | 638 | 639 | exports.__esModule = true; 640 | 641 | exports.default = function (instance, Constructor) { 642 | if (!(instance instanceof Constructor)) { 643 | throw new TypeError("Cannot call a class as a function"); 644 | } 645 | }; 646 | 647 | /***/ }), 648 | 649 | /***/ 391: 650 | /***/ (function(module, exports, __webpack_require__) { 651 | 652 | "use strict"; 653 | 654 | 655 | exports.__esModule = true; 656 | 657 | var _defineProperty = __webpack_require__(392); 658 | 659 | var _defineProperty2 = _interopRequireDefault(_defineProperty); 660 | 661 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 662 | 663 | exports.default = function () { 664 | function defineProperties(target, props) { 665 | for (var i = 0; i < props.length; i++) { 666 | var descriptor = props[i]; 667 | descriptor.enumerable = descriptor.enumerable || false; 668 | descriptor.configurable = true; 669 | if ("value" in descriptor) descriptor.writable = true; 670 | (0, _defineProperty2.default)(target, descriptor.key, descriptor); 671 | } 672 | } 673 | 674 | return function (Constructor, protoProps, staticProps) { 675 | if (protoProps) defineProperties(Constructor.prototype, protoProps); 676 | if (staticProps) defineProperties(Constructor, staticProps); 677 | return Constructor; 678 | }; 679 | }(); 680 | 681 | /***/ }), 682 | 683 | /***/ 392: 684 | /***/ (function(module, exports, __webpack_require__) { 685 | 686 | module.exports = { "default": __webpack_require__(393), __esModule: true }; 687 | 688 | /***/ }), 689 | 690 | /***/ 393: 691 | /***/ (function(module, exports, __webpack_require__) { 692 | 693 | __webpack_require__(394); 694 | var $Object = __webpack_require__(32).Object; 695 | module.exports = function defineProperty(it, key, desc) { 696 | return $Object.defineProperty(it, key, desc); 697 | }; 698 | 699 | 700 | /***/ }), 701 | 702 | /***/ 394: 703 | /***/ (function(module, exports, __webpack_require__) { 704 | 705 | var $export = __webpack_require__(51); 706 | // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) 707 | $export($export.S + $export.F * !__webpack_require__(46), 'Object', { defineProperty: __webpack_require__(45).f }); 708 | 709 | 710 | /***/ }), 711 | 712 | /***/ 395: 713 | /***/ (function(module, exports, __webpack_require__) { 714 | 715 | "use strict"; 716 | 717 | 718 | exports.__esModule = true; 719 | 720 | var _typeof2 = __webpack_require__(163); 721 | 722 | var _typeof3 = _interopRequireDefault(_typeof2); 723 | 724 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 725 | 726 | exports.default = function (self, call) { 727 | if (!self) { 728 | throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); 729 | } 730 | 731 | return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self; 732 | }; 733 | 734 | /***/ }), 735 | 736 | /***/ 396: 737 | /***/ (function(module, exports, __webpack_require__) { 738 | 739 | module.exports = { "default": __webpack_require__(397), __esModule: true }; 740 | 741 | /***/ }), 742 | 743 | /***/ 397: 744 | /***/ (function(module, exports, __webpack_require__) { 745 | 746 | __webpack_require__(398); 747 | __webpack_require__(407); 748 | module.exports = __webpack_require__(117).f('iterator'); 749 | 750 | 751 | /***/ }), 752 | 753 | /***/ 398: 754 | /***/ (function(module, exports, __webpack_require__) { 755 | 756 | "use strict"; 757 | 758 | var $at = __webpack_require__(399)(true); 759 | 760 | // 21.1.3.27 String.prototype[@@iterator]() 761 | __webpack_require__(164)(String, 'String', function (iterated) { 762 | this._t = String(iterated); // target 763 | this._i = 0; // next index 764 | // 21.1.5.2.1 %StringIteratorPrototype%.next() 765 | }, function () { 766 | var O = this._t; 767 | var index = this._i; 768 | var point; 769 | if (index >= O.length) return { value: undefined, done: true }; 770 | point = $at(O, index); 771 | this._i += point.length; 772 | return { value: point, done: false }; 773 | }); 774 | 775 | 776 | /***/ }), 777 | 778 | /***/ 399: 779 | /***/ (function(module, exports, __webpack_require__) { 780 | 781 | var toInteger = __webpack_require__(110); 782 | var defined = __webpack_require__(106); 783 | // true -> String#at 784 | // false -> String#codePointAt 785 | module.exports = function (TO_STRING) { 786 | return function (that, pos) { 787 | var s = String(defined(that)); 788 | var i = toInteger(pos); 789 | var l = s.length; 790 | var a, b; 791 | if (i < 0 || i >= l) return TO_STRING ? '' : undefined; 792 | a = s.charCodeAt(i); 793 | return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff 794 | ? TO_STRING ? s.charAt(i) : a 795 | : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; 796 | }; 797 | }; 798 | 799 | 800 | /***/ }), 801 | 802 | /***/ 400: 803 | /***/ (function(module, exports, __webpack_require__) { 804 | 805 | "use strict"; 806 | 807 | var create = __webpack_require__(113); 808 | var descriptor = __webpack_require__(76); 809 | var setToStringTag = __webpack_require__(116); 810 | var IteratorPrototype = {}; 811 | 812 | // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() 813 | __webpack_require__(52)(IteratorPrototype, __webpack_require__(55)('iterator'), function () { return this; }); 814 | 815 | module.exports = function (Constructor, NAME, next) { 816 | Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); 817 | setToStringTag(Constructor, NAME + ' Iterator'); 818 | }; 819 | 820 | 821 | /***/ }), 822 | 823 | /***/ 401: 824 | /***/ (function(module, exports, __webpack_require__) { 825 | 826 | var dP = __webpack_require__(45); 827 | var anObject = __webpack_require__(59); 828 | var getKeys = __webpack_require__(114); 829 | 830 | module.exports = __webpack_require__(46) ? Object.defineProperties : function defineProperties(O, Properties) { 831 | anObject(O); 832 | var keys = getKeys(Properties); 833 | var length = keys.length; 834 | var i = 0; 835 | var P; 836 | while (length > i) dP.f(O, P = keys[i++], Properties[P]); 837 | return O; 838 | }; 839 | 840 | 841 | /***/ }), 842 | 843 | /***/ 402: 844 | /***/ (function(module, exports, __webpack_require__) { 845 | 846 | // fallback for non-array-like ES3 and non-enumerable old V8 strings 847 | var cof = __webpack_require__(167); 848 | // eslint-disable-next-line no-prototype-builtins 849 | module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { 850 | return cof(it) == 'String' ? it.split('') : Object(it); 851 | }; 852 | 853 | 854 | /***/ }), 855 | 856 | /***/ 403: 857 | /***/ (function(module, exports, __webpack_require__) { 858 | 859 | // false -> Array#indexOf 860 | // true -> Array#includes 861 | var toIObject = __webpack_require__(54); 862 | var toLength = __webpack_require__(404); 863 | var toAbsoluteIndex = __webpack_require__(405); 864 | module.exports = function (IS_INCLUDES) { 865 | return function ($this, el, fromIndex) { 866 | var O = toIObject($this); 867 | var length = toLength(O.length); 868 | var index = toAbsoluteIndex(fromIndex, length); 869 | var value; 870 | // Array#includes uses SameValueZero equality algorithm 871 | // eslint-disable-next-line no-self-compare 872 | if (IS_INCLUDES && el != el) while (length > index) { 873 | value = O[index++]; 874 | // eslint-disable-next-line no-self-compare 875 | if (value != value) return true; 876 | // Array#indexOf ignores holes, Array#includes - not 877 | } else for (;length > index; index++) if (IS_INCLUDES || index in O) { 878 | if (O[index] === el) return IS_INCLUDES || index || 0; 879 | } return !IS_INCLUDES && -1; 880 | }; 881 | }; 882 | 883 | 884 | /***/ }), 885 | 886 | /***/ 404: 887 | /***/ (function(module, exports, __webpack_require__) { 888 | 889 | // 7.1.15 ToLength 890 | var toInteger = __webpack_require__(110); 891 | var min = Math.min; 892 | module.exports = function (it) { 893 | return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 894 | }; 895 | 896 | 897 | /***/ }), 898 | 899 | /***/ 405: 900 | /***/ (function(module, exports, __webpack_require__) { 901 | 902 | var toInteger = __webpack_require__(110); 903 | var max = Math.max; 904 | var min = Math.min; 905 | module.exports = function (index, length) { 906 | index = toInteger(index); 907 | return index < 0 ? max(index + length, 0) : min(index, length); 908 | }; 909 | 910 | 911 | /***/ }), 912 | 913 | /***/ 406: 914 | /***/ (function(module, exports, __webpack_require__) { 915 | 916 | var document = __webpack_require__(31).document; 917 | module.exports = document && document.documentElement; 918 | 919 | 920 | /***/ }), 921 | 922 | /***/ 407: 923 | /***/ (function(module, exports, __webpack_require__) { 924 | 925 | __webpack_require__(408); 926 | var global = __webpack_require__(31); 927 | var hide = __webpack_require__(52); 928 | var Iterators = __webpack_require__(112); 929 | var TO_STRING_TAG = __webpack_require__(55)('toStringTag'); 930 | 931 | var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' + 932 | 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' + 933 | 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' + 934 | 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' + 935 | 'TextTrackList,TouchList').split(','); 936 | 937 | for (var i = 0; i < DOMIterables.length; i++) { 938 | var NAME = DOMIterables[i]; 939 | var Collection = global[NAME]; 940 | var proto = Collection && Collection.prototype; 941 | if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); 942 | Iterators[NAME] = Iterators.Array; 943 | } 944 | 945 | 946 | /***/ }), 947 | 948 | /***/ 408: 949 | /***/ (function(module, exports, __webpack_require__) { 950 | 951 | "use strict"; 952 | 953 | var addToUnscopables = __webpack_require__(409); 954 | var step = __webpack_require__(410); 955 | var Iterators = __webpack_require__(112); 956 | var toIObject = __webpack_require__(54); 957 | 958 | // 22.1.3.4 Array.prototype.entries() 959 | // 22.1.3.13 Array.prototype.keys() 960 | // 22.1.3.29 Array.prototype.values() 961 | // 22.1.3.30 Array.prototype[@@iterator]() 962 | module.exports = __webpack_require__(164)(Array, 'Array', function (iterated, kind) { 963 | this._t = toIObject(iterated); // target 964 | this._i = 0; // next index 965 | this._k = kind; // kind 966 | // 22.1.5.2.1 %ArrayIteratorPrototype%.next() 967 | }, function () { 968 | var O = this._t; 969 | var kind = this._k; 970 | var index = this._i++; 971 | if (!O || index >= O.length) { 972 | this._t = undefined; 973 | return step(1); 974 | } 975 | if (kind == 'keys') return step(0, index); 976 | if (kind == 'values') return step(0, O[index]); 977 | return step(0, [index, O[index]]); 978 | }, 'values'); 979 | 980 | // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) 981 | Iterators.Arguments = Iterators.Array; 982 | 983 | addToUnscopables('keys'); 984 | addToUnscopables('values'); 985 | addToUnscopables('entries'); 986 | 987 | 988 | /***/ }), 989 | 990 | /***/ 409: 991 | /***/ (function(module, exports) { 992 | 993 | module.exports = function () { /* empty */ }; 994 | 995 | 996 | /***/ }), 997 | 998 | /***/ 410: 999 | /***/ (function(module, exports) { 1000 | 1001 | module.exports = function (done, value) { 1002 | return { value: value, done: !!done }; 1003 | }; 1004 | 1005 | 1006 | /***/ }), 1007 | 1008 | /***/ 411: 1009 | /***/ (function(module, exports, __webpack_require__) { 1010 | 1011 | module.exports = { "default": __webpack_require__(412), __esModule: true }; 1012 | 1013 | /***/ }), 1014 | 1015 | /***/ 412: 1016 | /***/ (function(module, exports, __webpack_require__) { 1017 | 1018 | __webpack_require__(413); 1019 | __webpack_require__(418); 1020 | __webpack_require__(419); 1021 | __webpack_require__(420); 1022 | module.exports = __webpack_require__(32).Symbol; 1023 | 1024 | 1025 | /***/ }), 1026 | 1027 | /***/ 413: 1028 | /***/ (function(module, exports, __webpack_require__) { 1029 | 1030 | "use strict"; 1031 | 1032 | // ECMAScript 6 symbols shim 1033 | var global = __webpack_require__(31); 1034 | var has = __webpack_require__(44); 1035 | var DESCRIPTORS = __webpack_require__(46); 1036 | var $export = __webpack_require__(51); 1037 | var redefine = __webpack_require__(165); 1038 | var META = __webpack_require__(414).KEY; 1039 | var $fails = __webpack_require__(60); 1040 | var shared = __webpack_require__(108); 1041 | var setToStringTag = __webpack_require__(116); 1042 | var uid = __webpack_require__(75); 1043 | var wks = __webpack_require__(55); 1044 | var wksExt = __webpack_require__(117); 1045 | var wksDefine = __webpack_require__(118); 1046 | var enumKeys = __webpack_require__(415); 1047 | var isArray = __webpack_require__(416); 1048 | var anObject = __webpack_require__(59); 1049 | var isObject = __webpack_require__(53); 1050 | var toIObject = __webpack_require__(54); 1051 | var toPrimitive = __webpack_require__(109); 1052 | var createDesc = __webpack_require__(76); 1053 | var _create = __webpack_require__(113); 1054 | var gOPNExt = __webpack_require__(417); 1055 | var $GOPD = __webpack_require__(170); 1056 | var $DP = __webpack_require__(45); 1057 | var $keys = __webpack_require__(114); 1058 | var gOPD = $GOPD.f; 1059 | var dP = $DP.f; 1060 | var gOPN = gOPNExt.f; 1061 | var $Symbol = global.Symbol; 1062 | var $JSON = global.JSON; 1063 | var _stringify = $JSON && $JSON.stringify; 1064 | var PROTOTYPE = 'prototype'; 1065 | var HIDDEN = wks('_hidden'); 1066 | var TO_PRIMITIVE = wks('toPrimitive'); 1067 | var isEnum = {}.propertyIsEnumerable; 1068 | var SymbolRegistry = shared('symbol-registry'); 1069 | var AllSymbols = shared('symbols'); 1070 | var OPSymbols = shared('op-symbols'); 1071 | var ObjectProto = Object[PROTOTYPE]; 1072 | var USE_NATIVE = typeof $Symbol == 'function'; 1073 | var QObject = global.QObject; 1074 | // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 1075 | var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; 1076 | 1077 | // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 1078 | var setSymbolDesc = DESCRIPTORS && $fails(function () { 1079 | return _create(dP({}, 'a', { 1080 | get: function () { return dP(this, 'a', { value: 7 }).a; } 1081 | })).a != 7; 1082 | }) ? function (it, key, D) { 1083 | var protoDesc = gOPD(ObjectProto, key); 1084 | if (protoDesc) delete ObjectProto[key]; 1085 | dP(it, key, D); 1086 | if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); 1087 | } : dP; 1088 | 1089 | var wrap = function (tag) { 1090 | var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); 1091 | sym._k = tag; 1092 | return sym; 1093 | }; 1094 | 1095 | var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) { 1096 | return typeof it == 'symbol'; 1097 | } : function (it) { 1098 | return it instanceof $Symbol; 1099 | }; 1100 | 1101 | var $defineProperty = function defineProperty(it, key, D) { 1102 | if (it === ObjectProto) $defineProperty(OPSymbols, key, D); 1103 | anObject(it); 1104 | key = toPrimitive(key, true); 1105 | anObject(D); 1106 | if (has(AllSymbols, key)) { 1107 | if (!D.enumerable) { 1108 | if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); 1109 | it[HIDDEN][key] = true; 1110 | } else { 1111 | if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; 1112 | D = _create(D, { enumerable: createDesc(0, false) }); 1113 | } return setSymbolDesc(it, key, D); 1114 | } return dP(it, key, D); 1115 | }; 1116 | var $defineProperties = function defineProperties(it, P) { 1117 | anObject(it); 1118 | var keys = enumKeys(P = toIObject(P)); 1119 | var i = 0; 1120 | var l = keys.length; 1121 | var key; 1122 | while (l > i) $defineProperty(it, key = keys[i++], P[key]); 1123 | return it; 1124 | }; 1125 | var $create = function create(it, P) { 1126 | return P === undefined ? _create(it) : $defineProperties(_create(it), P); 1127 | }; 1128 | var $propertyIsEnumerable = function propertyIsEnumerable(key) { 1129 | var E = isEnum.call(this, key = toPrimitive(key, true)); 1130 | if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; 1131 | return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; 1132 | }; 1133 | var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { 1134 | it = toIObject(it); 1135 | key = toPrimitive(key, true); 1136 | if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; 1137 | var D = gOPD(it, key); 1138 | if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; 1139 | return D; 1140 | }; 1141 | var $getOwnPropertyNames = function getOwnPropertyNames(it) { 1142 | var names = gOPN(toIObject(it)); 1143 | var result = []; 1144 | var i = 0; 1145 | var key; 1146 | while (names.length > i) { 1147 | if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); 1148 | } return result; 1149 | }; 1150 | var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { 1151 | var IS_OP = it === ObjectProto; 1152 | var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); 1153 | var result = []; 1154 | var i = 0; 1155 | var key; 1156 | while (names.length > i) { 1157 | if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); 1158 | } return result; 1159 | }; 1160 | 1161 | // 19.4.1.1 Symbol([description]) 1162 | if (!USE_NATIVE) { 1163 | $Symbol = function Symbol() { 1164 | if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); 1165 | var tag = uid(arguments.length > 0 ? arguments[0] : undefined); 1166 | var $set = function (value) { 1167 | if (this === ObjectProto) $set.call(OPSymbols, value); 1168 | if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; 1169 | setSymbolDesc(this, tag, createDesc(1, value)); 1170 | }; 1171 | if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set }); 1172 | return wrap(tag); 1173 | }; 1174 | redefine($Symbol[PROTOTYPE], 'toString', function toString() { 1175 | return this._k; 1176 | }); 1177 | 1178 | $GOPD.f = $getOwnPropertyDescriptor; 1179 | $DP.f = $defineProperty; 1180 | __webpack_require__(169).f = gOPNExt.f = $getOwnPropertyNames; 1181 | __webpack_require__(119).f = $propertyIsEnumerable; 1182 | __webpack_require__(168).f = $getOwnPropertySymbols; 1183 | 1184 | if (DESCRIPTORS && !__webpack_require__(111)) { 1185 | redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); 1186 | } 1187 | 1188 | wksExt.f = function (name) { 1189 | return wrap(wks(name)); 1190 | }; 1191 | } 1192 | 1193 | $export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); 1194 | 1195 | for (var es6Symbols = ( 1196 | // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 1197 | 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' 1198 | ).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]); 1199 | 1200 | for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]); 1201 | 1202 | $export($export.S + $export.F * !USE_NATIVE, 'Symbol', { 1203 | // 19.4.2.1 Symbol.for(key) 1204 | 'for': function (key) { 1205 | return has(SymbolRegistry, key += '') 1206 | ? SymbolRegistry[key] 1207 | : SymbolRegistry[key] = $Symbol(key); 1208 | }, 1209 | // 19.4.2.5 Symbol.keyFor(sym) 1210 | keyFor: function keyFor(sym) { 1211 | if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); 1212 | for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key; 1213 | }, 1214 | useSetter: function () { setter = true; }, 1215 | useSimple: function () { setter = false; } 1216 | }); 1217 | 1218 | $export($export.S + $export.F * !USE_NATIVE, 'Object', { 1219 | // 19.1.2.2 Object.create(O [, Properties]) 1220 | create: $create, 1221 | // 19.1.2.4 Object.defineProperty(O, P, Attributes) 1222 | defineProperty: $defineProperty, 1223 | // 19.1.2.3 Object.defineProperties(O, Properties) 1224 | defineProperties: $defineProperties, 1225 | // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) 1226 | getOwnPropertyDescriptor: $getOwnPropertyDescriptor, 1227 | // 19.1.2.7 Object.getOwnPropertyNames(O) 1228 | getOwnPropertyNames: $getOwnPropertyNames, 1229 | // 19.1.2.8 Object.getOwnPropertySymbols(O) 1230 | getOwnPropertySymbols: $getOwnPropertySymbols 1231 | }); 1232 | 1233 | // 24.3.2 JSON.stringify(value [, replacer [, space]]) 1234 | $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { 1235 | var S = $Symbol(); 1236 | // MS Edge converts symbol values to JSON as {} 1237 | // WebKit converts symbol values to JSON as null 1238 | // V8 throws on boxed symbols 1239 | return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; 1240 | })), 'JSON', { 1241 | stringify: function stringify(it) { 1242 | var args = [it]; 1243 | var i = 1; 1244 | var replacer, $replacer; 1245 | while (arguments.length > i) args.push(arguments[i++]); 1246 | $replacer = replacer = args[1]; 1247 | if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined 1248 | if (!isArray(replacer)) replacer = function (key, value) { 1249 | if (typeof $replacer == 'function') value = $replacer.call(this, key, value); 1250 | if (!isSymbol(value)) return value; 1251 | }; 1252 | args[1] = replacer; 1253 | return _stringify.apply($JSON, args); 1254 | } 1255 | }); 1256 | 1257 | // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) 1258 | $Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(52)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); 1259 | // 19.4.3.5 Symbol.prototype[@@toStringTag] 1260 | setToStringTag($Symbol, 'Symbol'); 1261 | // 20.2.1.9 Math[@@toStringTag] 1262 | setToStringTag(Math, 'Math', true); 1263 | // 24.3.3 JSON[@@toStringTag] 1264 | setToStringTag(global.JSON, 'JSON', true); 1265 | 1266 | 1267 | /***/ }), 1268 | 1269 | /***/ 414: 1270 | /***/ (function(module, exports, __webpack_require__) { 1271 | 1272 | var META = __webpack_require__(75)('meta'); 1273 | var isObject = __webpack_require__(53); 1274 | var has = __webpack_require__(44); 1275 | var setDesc = __webpack_require__(45).f; 1276 | var id = 0; 1277 | var isExtensible = Object.isExtensible || function () { 1278 | return true; 1279 | }; 1280 | var FREEZE = !__webpack_require__(60)(function () { 1281 | return isExtensible(Object.preventExtensions({})); 1282 | }); 1283 | var setMeta = function (it) { 1284 | setDesc(it, META, { value: { 1285 | i: 'O' + ++id, // object ID 1286 | w: {} // weak collections IDs 1287 | } }); 1288 | }; 1289 | var fastKey = function (it, create) { 1290 | // return primitive with prefix 1291 | if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; 1292 | if (!has(it, META)) { 1293 | // can't set metadata to uncaught frozen object 1294 | if (!isExtensible(it)) return 'F'; 1295 | // not necessary to add metadata 1296 | if (!create) return 'E'; 1297 | // add missing metadata 1298 | setMeta(it); 1299 | // return object ID 1300 | } return it[META].i; 1301 | }; 1302 | var getWeak = function (it, create) { 1303 | if (!has(it, META)) { 1304 | // can't set metadata to uncaught frozen object 1305 | if (!isExtensible(it)) return true; 1306 | // not necessary to add metadata 1307 | if (!create) return false; 1308 | // add missing metadata 1309 | setMeta(it); 1310 | // return hash weak collections IDs 1311 | } return it[META].w; 1312 | }; 1313 | // add metadata on freeze-family methods calling 1314 | var onFreeze = function (it) { 1315 | if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); 1316 | return it; 1317 | }; 1318 | var meta = module.exports = { 1319 | KEY: META, 1320 | NEED: false, 1321 | fastKey: fastKey, 1322 | getWeak: getWeak, 1323 | onFreeze: onFreeze 1324 | }; 1325 | 1326 | 1327 | /***/ }), 1328 | 1329 | /***/ 415: 1330 | /***/ (function(module, exports, __webpack_require__) { 1331 | 1332 | // all enumerable object keys, includes symbols 1333 | var getKeys = __webpack_require__(114); 1334 | var gOPS = __webpack_require__(168); 1335 | var pIE = __webpack_require__(119); 1336 | module.exports = function (it) { 1337 | var result = getKeys(it); 1338 | var getSymbols = gOPS.f; 1339 | if (getSymbols) { 1340 | var symbols = getSymbols(it); 1341 | var isEnum = pIE.f; 1342 | var i = 0; 1343 | var key; 1344 | while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key); 1345 | } return result; 1346 | }; 1347 | 1348 | 1349 | /***/ }), 1350 | 1351 | /***/ 416: 1352 | /***/ (function(module, exports, __webpack_require__) { 1353 | 1354 | // 7.2.2 IsArray(argument) 1355 | var cof = __webpack_require__(167); 1356 | module.exports = Array.isArray || function isArray(arg) { 1357 | return cof(arg) == 'Array'; 1358 | }; 1359 | 1360 | 1361 | /***/ }), 1362 | 1363 | /***/ 417: 1364 | /***/ (function(module, exports, __webpack_require__) { 1365 | 1366 | // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window 1367 | var toIObject = __webpack_require__(54); 1368 | var gOPN = __webpack_require__(169).f; 1369 | var toString = {}.toString; 1370 | 1371 | var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames 1372 | ? Object.getOwnPropertyNames(window) : []; 1373 | 1374 | var getWindowNames = function (it) { 1375 | try { 1376 | return gOPN(it); 1377 | } catch (e) { 1378 | return windowNames.slice(); 1379 | } 1380 | }; 1381 | 1382 | module.exports.f = function getOwnPropertyNames(it) { 1383 | return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); 1384 | }; 1385 | 1386 | 1387 | /***/ }), 1388 | 1389 | /***/ 418: 1390 | /***/ (function(module, exports) { 1391 | 1392 | 1393 | 1394 | /***/ }), 1395 | 1396 | /***/ 419: 1397 | /***/ (function(module, exports, __webpack_require__) { 1398 | 1399 | __webpack_require__(118)('asyncIterator'); 1400 | 1401 | 1402 | /***/ }), 1403 | 1404 | /***/ 420: 1405 | /***/ (function(module, exports, __webpack_require__) { 1406 | 1407 | __webpack_require__(118)('observable'); 1408 | 1409 | 1410 | /***/ }), 1411 | 1412 | /***/ 421: 1413 | /***/ (function(module, exports, __webpack_require__) { 1414 | 1415 | "use strict"; 1416 | 1417 | 1418 | exports.__esModule = true; 1419 | 1420 | var _setPrototypeOf = __webpack_require__(422); 1421 | 1422 | var _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf); 1423 | 1424 | var _create = __webpack_require__(426); 1425 | 1426 | var _create2 = _interopRequireDefault(_create); 1427 | 1428 | var _typeof2 = __webpack_require__(163); 1429 | 1430 | var _typeof3 = _interopRequireDefault(_typeof2); 1431 | 1432 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 1433 | 1434 | exports.default = function (subClass, superClass) { 1435 | if (typeof superClass !== "function" && superClass !== null) { 1436 | throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === "undefined" ? "undefined" : (0, _typeof3.default)(superClass))); 1437 | } 1438 | 1439 | subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, { 1440 | constructor: { 1441 | value: subClass, 1442 | enumerable: false, 1443 | writable: true, 1444 | configurable: true 1445 | } 1446 | }); 1447 | if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass; 1448 | }; 1449 | 1450 | /***/ }), 1451 | 1452 | /***/ 422: 1453 | /***/ (function(module, exports, __webpack_require__) { 1454 | 1455 | module.exports = { "default": __webpack_require__(423), __esModule: true }; 1456 | 1457 | /***/ }), 1458 | 1459 | /***/ 423: 1460 | /***/ (function(module, exports, __webpack_require__) { 1461 | 1462 | __webpack_require__(424); 1463 | module.exports = __webpack_require__(32).Object.setPrototypeOf; 1464 | 1465 | 1466 | /***/ }), 1467 | 1468 | /***/ 424: 1469 | /***/ (function(module, exports, __webpack_require__) { 1470 | 1471 | // 19.1.3.19 Object.setPrototypeOf(O, proto) 1472 | var $export = __webpack_require__(51); 1473 | $export($export.S, 'Object', { setPrototypeOf: __webpack_require__(425).set }); 1474 | 1475 | 1476 | /***/ }), 1477 | 1478 | /***/ 425: 1479 | /***/ (function(module, exports, __webpack_require__) { 1480 | 1481 | // Works with __proto__ only. Old v8 can't work with null proto objects. 1482 | /* eslint-disable no-proto */ 1483 | var isObject = __webpack_require__(53); 1484 | var anObject = __webpack_require__(59); 1485 | var check = function (O, proto) { 1486 | anObject(O); 1487 | if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); 1488 | }; 1489 | module.exports = { 1490 | set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line 1491 | function (test, buggy, set) { 1492 | try { 1493 | set = __webpack_require__(160)(Function.call, __webpack_require__(170).f(Object.prototype, '__proto__').set, 2); 1494 | set(test, []); 1495 | buggy = !(test instanceof Array); 1496 | } catch (e) { buggy = true; } 1497 | return function setPrototypeOf(O, proto) { 1498 | check(O, proto); 1499 | if (buggy) O.__proto__ = proto; 1500 | else set(O, proto); 1501 | return O; 1502 | }; 1503 | }({}, false) : undefined), 1504 | check: check 1505 | }; 1506 | 1507 | 1508 | /***/ }), 1509 | 1510 | /***/ 426: 1511 | /***/ (function(module, exports, __webpack_require__) { 1512 | 1513 | module.exports = { "default": __webpack_require__(427), __esModule: true }; 1514 | 1515 | /***/ }), 1516 | 1517 | /***/ 427: 1518 | /***/ (function(module, exports, __webpack_require__) { 1519 | 1520 | __webpack_require__(428); 1521 | var $Object = __webpack_require__(32).Object; 1522 | module.exports = function create(P, D) { 1523 | return $Object.create(P, D); 1524 | }; 1525 | 1526 | 1527 | /***/ }), 1528 | 1529 | /***/ 428: 1530 | /***/ (function(module, exports, __webpack_require__) { 1531 | 1532 | var $export = __webpack_require__(51); 1533 | // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) 1534 | $export($export.S, 'Object', { create: __webpack_require__(113) }); 1535 | 1536 | 1537 | /***/ }), 1538 | 1539 | /***/ 44: 1540 | /***/ (function(module, exports) { 1541 | 1542 | var hasOwnProperty = {}.hasOwnProperty; 1543 | module.exports = function (it, key) { 1544 | return hasOwnProperty.call(it, key); 1545 | }; 1546 | 1547 | 1548 | /***/ }), 1549 | 1550 | /***/ 45: 1551 | /***/ (function(module, exports, __webpack_require__) { 1552 | 1553 | var anObject = __webpack_require__(59); 1554 | var IE8_DOM_DEFINE = __webpack_require__(161); 1555 | var toPrimitive = __webpack_require__(109); 1556 | var dP = Object.defineProperty; 1557 | 1558 | exports.f = __webpack_require__(46) ? Object.defineProperty : function defineProperty(O, P, Attributes) { 1559 | anObject(O); 1560 | P = toPrimitive(P, true); 1561 | anObject(Attributes); 1562 | if (IE8_DOM_DEFINE) try { 1563 | return dP(O, P, Attributes); 1564 | } catch (e) { /* empty */ } 1565 | if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); 1566 | if ('value' in Attributes) O[P] = Attributes.value; 1567 | return O; 1568 | }; 1569 | 1570 | 1571 | /***/ }), 1572 | 1573 | /***/ 46: 1574 | /***/ (function(module, exports, __webpack_require__) { 1575 | 1576 | // Thank's IE8 for his funny defineProperty 1577 | module.exports = !__webpack_require__(60)(function () { 1578 | return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; 1579 | }); 1580 | 1581 | 1582 | /***/ }), 1583 | 1584 | /***/ 51: 1585 | /***/ (function(module, exports, __webpack_require__) { 1586 | 1587 | var global = __webpack_require__(31); 1588 | var core = __webpack_require__(32); 1589 | var ctx = __webpack_require__(160); 1590 | var hide = __webpack_require__(52); 1591 | var PROTOTYPE = 'prototype'; 1592 | 1593 | var $export = function (type, name, source) { 1594 | var IS_FORCED = type & $export.F; 1595 | var IS_GLOBAL = type & $export.G; 1596 | var IS_STATIC = type & $export.S; 1597 | var IS_PROTO = type & $export.P; 1598 | var IS_BIND = type & $export.B; 1599 | var IS_WRAP = type & $export.W; 1600 | var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); 1601 | var expProto = exports[PROTOTYPE]; 1602 | var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]; 1603 | var key, own, out; 1604 | if (IS_GLOBAL) source = name; 1605 | for (key in source) { 1606 | // contains in native 1607 | own = !IS_FORCED && target && target[key] !== undefined; 1608 | if (own && key in exports) continue; 1609 | // export native or passed 1610 | out = own ? target[key] : source[key]; 1611 | // prevent global pollution for namespaces 1612 | exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] 1613 | // bind timers to global for call from export context 1614 | : IS_BIND && own ? ctx(out, global) 1615 | // wrap global constructors for prevent change them in library 1616 | : IS_WRAP && target[key] == out ? (function (C) { 1617 | var F = function (a, b, c) { 1618 | if (this instanceof C) { 1619 | switch (arguments.length) { 1620 | case 0: return new C(); 1621 | case 1: return new C(a); 1622 | case 2: return new C(a, b); 1623 | } return new C(a, b, c); 1624 | } return C.apply(this, arguments); 1625 | }; 1626 | F[PROTOTYPE] = C[PROTOTYPE]; 1627 | return F; 1628 | // make static versions for prototype methods 1629 | })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; 1630 | // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% 1631 | if (IS_PROTO) { 1632 | (exports.virtual || (exports.virtual = {}))[key] = out; 1633 | // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% 1634 | if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out); 1635 | } 1636 | } 1637 | }; 1638 | // type bitmap 1639 | $export.F = 1; // forced 1640 | $export.G = 2; // global 1641 | $export.S = 4; // static 1642 | $export.P = 8; // proto 1643 | $export.B = 16; // bind 1644 | $export.W = 32; // wrap 1645 | $export.U = 64; // safe 1646 | $export.R = 128; // real proto method for `library` 1647 | module.exports = $export; 1648 | 1649 | 1650 | /***/ }), 1651 | 1652 | /***/ 52: 1653 | /***/ (function(module, exports, __webpack_require__) { 1654 | 1655 | var dP = __webpack_require__(45); 1656 | var createDesc = __webpack_require__(76); 1657 | module.exports = __webpack_require__(46) ? function (object, key, value) { 1658 | return dP.f(object, key, createDesc(1, value)); 1659 | } : function (object, key, value) { 1660 | object[key] = value; 1661 | return object; 1662 | }; 1663 | 1664 | 1665 | /***/ }), 1666 | 1667 | /***/ 53: 1668 | /***/ (function(module, exports) { 1669 | 1670 | module.exports = function (it) { 1671 | return typeof it === 'object' ? it !== null : typeof it === 'function'; 1672 | }; 1673 | 1674 | 1675 | /***/ }), 1676 | 1677 | /***/ 54: 1678 | /***/ (function(module, exports, __webpack_require__) { 1679 | 1680 | // to indexed object, toObject with fallback for non-array-like ES3 strings 1681 | var IObject = __webpack_require__(402); 1682 | var defined = __webpack_require__(106); 1683 | module.exports = function (it) { 1684 | return IObject(defined(it)); 1685 | }; 1686 | 1687 | 1688 | /***/ }), 1689 | 1690 | /***/ 55: 1691 | /***/ (function(module, exports, __webpack_require__) { 1692 | 1693 | var store = __webpack_require__(108)('wks'); 1694 | var uid = __webpack_require__(75); 1695 | var Symbol = __webpack_require__(31).Symbol; 1696 | var USE_SYMBOL = typeof Symbol == 'function'; 1697 | 1698 | var $exports = module.exports = function (name) { 1699 | return store[name] || (store[name] = 1700 | USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); 1701 | }; 1702 | 1703 | $exports.store = store; 1704 | 1705 | 1706 | /***/ }), 1707 | 1708 | /***/ 59: 1709 | /***/ (function(module, exports, __webpack_require__) { 1710 | 1711 | var isObject = __webpack_require__(53); 1712 | module.exports = function (it) { 1713 | if (!isObject(it)) throw TypeError(it + ' is not an object!'); 1714 | return it; 1715 | }; 1716 | 1717 | 1718 | /***/ }), 1719 | 1720 | /***/ 60: 1721 | /***/ (function(module, exports) { 1722 | 1723 | module.exports = function (exec) { 1724 | try { 1725 | return !!exec(); 1726 | } catch (e) { 1727 | return true; 1728 | } 1729 | }; 1730 | 1731 | 1732 | /***/ }), 1733 | 1734 | /***/ 75: 1735 | /***/ (function(module, exports) { 1736 | 1737 | var id = 0; 1738 | var px = Math.random(); 1739 | module.exports = function (key) { 1740 | return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); 1741 | }; 1742 | 1743 | 1744 | /***/ }), 1745 | 1746 | /***/ 76: 1747 | /***/ (function(module, exports) { 1748 | 1749 | module.exports = function (bitmap, value) { 1750 | return { 1751 | enumerable: !(bitmap & 1), 1752 | configurable: !(bitmap & 2), 1753 | writable: !(bitmap & 4), 1754 | value: value 1755 | }; 1756 | }; 1757 | 1758 | 1759 | /***/ }) 1760 | 1761 | },[384]); 1762 | //# sourceMappingURL=main.bundle.js.map --------------------------------------------------------------------------------