├── .gitignore
├── examples
├── fs-access
│ ├── .jshintignore
│ ├── .babelrc
│ ├── source
│ │ ├── merge-config.js
│ │ ├── index.js
│ │ └── load-file.js
│ ├── test
│ │ ├── integration-tests
│ │ │ ├── fixtures
│ │ │ │ └── good.json
│ │ │ ├── index.js
│ │ │ ├── load-file.js
│ │ │ └── configure.js
│ │ ├── index.js
│ │ └── unit-tests
│ │ │ ├── index.js
│ │ │ ├── merge-config.js
│ │ │ └── configure.js
│ ├── .travis.yml
│ ├── .jshintrc
│ ├── .editorconfig
│ ├── scripts
│ │ ├── buildWebpack.js
│ │ └── buildProduction.js
│ ├── package.json
│ ├── LICENSE
│ └── build
│ │ └── index.min.js
├── react-hello
│ ├── .eslintignore
│ ├── .jshintignore
│ ├── .gitignore
│ ├── test
│ │ ├── index.js
│ │ ├── fixtures
│ │ │ ├── create-actions.js
│ │ │ ├── find-by-class.js
│ │ │ └── create-document.js
│ │ ├── server
│ │ │ └── index.js
│ │ └── lib
│ │ │ └── index.js
│ ├── .jshintrc
│ ├── source
│ │ ├── index.js
│ │ ├── app.js
│ │ └── hello.js
│ ├── index.html
│ ├── CONTRIBUTING.md
│ ├── scripts
│ │ ├── buildWebpack.js
│ │ ├── buildProduction.js
│ │ └── dev-server.js
│ ├── README.md
│ ├── LICENSE
│ ├── webpack.config.js
│ ├── package.json
│ ├── docs
│ │ └── contributing
│ │ │ ├── index.md
│ │ │ └── versions
│ │ │ └── index.md
│ └── .eslintrc
├── dependency-injection
│ ├── .babelrc
│ ├── source
│ │ └── index.js
│ ├── .editorconfig
│ ├── test
│ │ └── index.js
│ ├── package.json
│ └── LICENSE
└── compose-examples
│ ├── source
│ └── index.js
│ ├── test
│ └── index.js
│ └── package.json
├── renovate.json
├── .editorconfig
├── CONTRIBUTING.md
├── package.json
├── LICENSE
├── README.md
└── docs
└── contributing
├── index.md
└── versions
└── index.md
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
--------------------------------------------------------------------------------
/examples/fs-access/.jshintignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
--------------------------------------------------------------------------------
/examples/react-hello/.eslintignore:
--------------------------------------------------------------------------------
1 | !app/node_modules
--------------------------------------------------------------------------------
/examples/react-hello/.jshintignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
--------------------------------------------------------------------------------
/examples/fs-access/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "stage": 1
3 | }
4 |
--------------------------------------------------------------------------------
/examples/react-hello/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | build
3 |
--------------------------------------------------------------------------------
/examples/dependency-injection/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "stage": 1
3 | }
4 |
--------------------------------------------------------------------------------
/examples/fs-access/source/merge-config.js:
--------------------------------------------------------------------------------
1 | export default Object.assign;
2 |
--------------------------------------------------------------------------------
/examples/react-hello/test/index.js:
--------------------------------------------------------------------------------
1 | import './lib';
2 | import './server';
3 |
--------------------------------------------------------------------------------
/examples/fs-access/test/integration-tests/fixtures/good.json:
--------------------------------------------------------------------------------
1 | {
2 | "a": 1
3 | }
4 |
--------------------------------------------------------------------------------
/examples/fs-access/test/index.js:
--------------------------------------------------------------------------------
1 | import './unit-tests';
2 | import './integration-tests';
3 |
--------------------------------------------------------------------------------
/examples/compose-examples/source/index.js:
--------------------------------------------------------------------------------
1 | export default () => {
2 | return () => {};
3 | };
4 |
--------------------------------------------------------------------------------
/examples/fs-access/test/unit-tests/index.js:
--------------------------------------------------------------------------------
1 | import './merge-config';
2 | import './configure';
3 |
--------------------------------------------------------------------------------
/examples/fs-access/test/integration-tests/index.js:
--------------------------------------------------------------------------------
1 | import './load-file';
2 | import './configure';
3 |
--------------------------------------------------------------------------------
/examples/dependency-injection/source/index.js:
--------------------------------------------------------------------------------
1 | // do this:
2 | export default ({ log }) => {
3 | log();
4 | };
5 |
--------------------------------------------------------------------------------
/examples/fs-access/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - "0.10"
4 | - "0.12"
5 | - "iojs"
6 | install:
7 | - npm install
8 | script:
9 | - npm run check
--------------------------------------------------------------------------------
/renovate.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": [
3 | "config:base"
4 | ],
5 | "automerge": true,
6 | "automergeType": "branch",
7 | "major": {
8 | "automerge": false
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/examples/fs-access/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "node": true,
3 |
4 | "curly": true,
5 | "latedef": true,
6 | "quotmark": true,
7 | "undef": true,
8 | "unused": true,
9 | "trailing": true
10 | }
11 |
--------------------------------------------------------------------------------
/examples/react-hello/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "node": true,
3 |
4 | "curly": true,
5 | "latedef": true,
6 | "quotmark": true,
7 | "undef": true,
8 | "unused": true,
9 | "trailing": true
10 | }
11 |
--------------------------------------------------------------------------------
/examples/react-hello/source/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import app from './app';
3 |
4 | const App = app(React);
5 | const root = document.getElementById('root');
6 |
7 | React.render(, root);
8 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | # editorconfig.org
2 | root = true
3 |
4 | [*]
5 | end_of_line = lf
6 | charset = utf-8
7 | trim_trailing_whitespace = true
8 | insert_final_newline = true
9 | indent_style = space
10 | indent_size = 2
11 |
--------------------------------------------------------------------------------
/examples/react-hello/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Sample App
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/examples/fs-access/.editorconfig:
--------------------------------------------------------------------------------
1 | # editorconfig.org
2 | root = true
3 |
4 | [*]
5 | end_of_line = lf
6 | charset = utf-8
7 | trim_trailing_whitespace = true
8 | insert_final_newline = true
9 | indent_style = space
10 | indent_size = 2
11 |
--------------------------------------------------------------------------------
/examples/dependency-injection/.editorconfig:
--------------------------------------------------------------------------------
1 | # editorconfig.org
2 | root = true
3 |
4 | [*]
5 | end_of_line = lf
6 | charset = utf-8
7 | trim_trailing_whitespace = true
8 | insert_final_newline = true
9 | indent_style = space
10 | indent_size = 2
11 |
--------------------------------------------------------------------------------
/examples/react-hello/test/fixtures/create-actions.js:
--------------------------------------------------------------------------------
1 | const createActions = (actions) => {
2 | return Object.assign(
3 | {},
4 | {
5 | setWord () {},
6 | setMode () {}
7 | },
8 | actions
9 | );
10 | };
11 |
12 | export default createActions;
13 |
--------------------------------------------------------------------------------
/examples/react-hello/test/fixtures/find-by-class.js:
--------------------------------------------------------------------------------
1 | import R from 'react/addons';
2 |
3 | const TestUtils = R.addons.TestUtils;
4 |
5 | const findByClass = (dom, selector) => {
6 | const subject = selector.slice(1);
7 |
8 | return TestUtils.findRenderedDOMComponentWithClass(dom, subject);
9 | };
10 |
11 | export default findByClass;
12 |
--------------------------------------------------------------------------------
/examples/react-hello/test/fixtures/create-document.js:
--------------------------------------------------------------------------------
1 | import { jsdom } from 'jsdom';
2 |
3 | const createDocument = () => {
4 |
5 | const document = jsdom(undefined);
6 | const window = document.defaultView;
7 | global.document = document;
8 | global.window= window;
9 | return document;
10 |
11 | };
12 |
13 | export default createDocument;
14 |
--------------------------------------------------------------------------------
/examples/compose-examples/test/index.js:
--------------------------------------------------------------------------------
1 | import test from 'tape';
2 | import compose from '../source/index';
3 |
4 | test('Compose function output type', assert => {
5 | const actual = typeof compose();
6 | const expected = 'function';
7 |
8 | assert.equal(actual, expected,
9 | 'compose() should return a function.');
10 |
11 | assert.end();
12 | });
13 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 |
4 | ## Contents
5 |
6 |
7 | - [Contributing](docs/contributing/index.md)
8 | - [Versions: Release Names vs Version Numbers](docs/contributing/versions/index.md)
9 |
--------------------------------------------------------------------------------
/examples/react-hello/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 |
4 | ## Contents
5 |
6 |
7 | - [Contributing](docs/contributing/index.md)
8 | - [Versions: Release Names vs Version Numbers](docs/contributing/versions/index.md)
9 |
--------------------------------------------------------------------------------
/examples/fs-access/test/unit-tests/merge-config.js:
--------------------------------------------------------------------------------
1 | import test from 'tape';
2 | import merge from '../../source/merge-config';
3 |
4 | test('Merge config override', assert => {
5 | const actual = merge(
6 | {a: 1, override: 'a'},
7 | {b: 2},
8 | {c: 3, override: 'c'});
9 | const expected = { a: 1, b: 2, c: 3, override: 'c' };
10 |
11 | assert.deepEqual(actual, expected,
12 | 'merge-config should merge arguments.');
13 |
14 | assert.end();
15 | });
16 |
--------------------------------------------------------------------------------
/examples/dependency-injection/test/index.js:
--------------------------------------------------------------------------------
1 | import test from 'tape';
2 | import myFactory from '../source/index';
3 | import { spy } from 'sinon';
4 |
5 | test('myFactory logging', assert => {
6 | const log = spy();
7 | const myComponent = myFactory({ log });
8 |
9 | const actual = log.called;
10 | const expected = true;
11 |
12 | assert.equal(actual, expected,
13 | 'myFactory should log when called with injected logger.');
14 |
15 | assert.end();
16 | });
17 |
--------------------------------------------------------------------------------
/examples/fs-access/scripts/buildWebpack.js:
--------------------------------------------------------------------------------
1 | var webpack = require('webpack');
2 | var path = require('path');
3 |
4 | // Set Environement variables
5 | process.env.NODE_ENV = 'production';
6 |
7 | // returns a Compiler instance with configuration file webpack.config.js
8 | var compiler = webpack(require(path.join(process.cwd(), 'webpack.config.js')));
9 | // Execute webpack
10 | compiler.run(function (err, stats) {
11 | console.log(stats.toString({colors: true}));
12 | });
13 |
--------------------------------------------------------------------------------
/examples/react-hello/scripts/buildWebpack.js:
--------------------------------------------------------------------------------
1 | var webpack = require('webpack');
2 | var path = require('path');
3 |
4 | // Set Environement variables
5 | process.env.NODE_ENV = 'production';
6 |
7 | // returns a Compiler instance with configuration file webpack.config.js
8 | var compiler = webpack(require(path.join(process.cwd(), 'webpack.config.js')));
9 | // Execute webpack
10 | compiler.run(function (err, stats) {
11 | console.log(stats.toString({colors: true}));
12 | });
13 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tdd-es6-react",
3 | "description": "Tutorial Examples for TDD with ES6 and React",
4 | "version": "1.0.0",
5 | "author": "Eric Elliott <>",
6 | "license": "MIT",
7 | "bugs": {
8 | "url": "https://github.com/ericelliott/tdd-es6-react/issues"
9 | },
10 | "homepage": "https://github.com/ericelliott/tdd-es6-react",
11 | "repository": {
12 | "type": "git",
13 | "url": "https://github.com/ericelliott/tdd-es6-react.git"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/examples/fs-access/scripts/buildProduction.js:
--------------------------------------------------------------------------------
1 | var webpack = require('webpack');
2 | var path = require('path');
3 |
4 | // Set Environement variables
5 | process.env.NODE_ENV = 'production';
6 | process.env.MINIFY = '1';
7 |
8 | // returns a Compiler instance with configuration file webpack.config.js
9 | var compiler = webpack(require(path.join(process.cwd(), 'webpack.config.js')));
10 | // Execute webpack
11 | compiler.run(function (err, stats) {
12 | console.log(stats.toString({colors: true}));
13 | });
14 |
--------------------------------------------------------------------------------
/examples/react-hello/scripts/buildProduction.js:
--------------------------------------------------------------------------------
1 | var webpack = require('webpack');
2 | var path = require('path');
3 |
4 | // Set Environement variables
5 | process.env.NODE_ENV = 'production';
6 | process.env.MINIFY = '1';
7 |
8 | // returns a Compiler instance with configuration file webpack.config.js
9 | var compiler = webpack(require(path.join(process.cwd(), 'webpack.config.js')));
10 | // Execute webpack
11 | compiler.run(function (err, stats) {
12 | console.log(stats.toString({colors: true}));
13 | });
14 |
--------------------------------------------------------------------------------
/examples/react-hello/scripts/dev-server.js:
--------------------------------------------------------------------------------
1 | var webpack = require('webpack');
2 | var WebpackDevServer = require('webpack-dev-server');
3 | var config = require('../webpack.config');
4 |
5 | new WebpackDevServer(webpack(config), {
6 | publicPath: config.output.publicPath,
7 | hot: true,
8 | historyApiFallback: true,
9 | stats: {colors: true}
10 | })
11 | .listen(3000, 'localhost', function (err) {
12 | if (err) {
13 | console.log(err);
14 | }
15 |
16 | console.log('Listening at localhost:3000');
17 | });
18 |
--------------------------------------------------------------------------------
/examples/compose-examples/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "compose-examples",
3 | "description": "Unit test examples",
4 | "version": "1.0.0",
5 | "scripts": {
6 | "test": "babel-node test/index.js"
7 | },
8 | "devDependencies": {
9 | "babel": "^5.8.21",
10 | "babel-eslint": "^4.0.5",
11 | "babel-loader": "^5.3.2",
12 | "babel-plugin-object-assign": "^1.2.1",
13 | "faucet": "0.0.1",
14 | "isparta": "^3.0.3",
15 | "tape": "^4.2.0"
16 | },
17 | "author": "Eric Elliott <>",
18 | "license": "MIT"
19 | }
20 |
--------------------------------------------------------------------------------
/examples/fs-access/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "fs-access",
3 | "description": "Example of integration + unit tests for fs-access",
4 | "version": "1.0.0",
5 | "scripts": {
6 | "test": "babel-node test/index.js",
7 | "test:unit": "babel-node test/unit-tests",
8 | "start": "watch 'clear && npm run --silent test:unit' source"
9 | },
10 | "devDependencies": {
11 | "babel": "^5.8.21",
12 | "tape": "^4.2.0",
13 | "watch": "^0.16.0"
14 | },
15 | "author": "Eric Elliott <>",
16 | "license": "MIT",
17 | "dependencies": {
18 | "js-yaml": "^3.4.0"
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/examples/fs-access/test/integration-tests/load-file.js:
--------------------------------------------------------------------------------
1 | import test from 'tape';
2 | import loadFile from '../../source/load-file';
3 |
4 | test('loadFile promise', nest => {
5 | nest.test('Rejects on bad file name', assert => {
6 |
7 | loadFile('file://bad/file/name.json').catch(err => {
8 | const actual = err.message.split(':').shift();
9 | const expected = 'Not a valid file';
10 |
11 | assert.equal(actual, expected,
12 | `loadFile should reject with a readable error
13 | on bad filename.`);
14 |
15 | assert.end();
16 | });
17 |
18 | });
19 | });
20 |
--------------------------------------------------------------------------------
/examples/fs-access/test/integration-tests/configure.js:
--------------------------------------------------------------------------------
1 | import test from 'tape';
2 | import configure from '../../source/index';
3 |
4 | test('Configure', nest => {
5 | nest.test('...with file', assert => {
6 |
7 | configure({
8 | sources: [`file://${ __dirname }/fixtures/good.json`]
9 | }).then(data => {
10 | const actual = data;
11 | const expected = { a: 1 };
12 |
13 | assert.deepEqual(actual, expected,
14 | 'should load data from file.');
15 |
16 | assert.end();
17 | }).catch(error => {
18 |
19 | assert.error(error, 'should not reject.');
20 | assert.end();
21 |
22 | });
23 | });
24 | });
25 |
--------------------------------------------------------------------------------
/examples/react-hello/source/app.js:
--------------------------------------------------------------------------------
1 | import stamp from 'react-stampit';
2 | import hello from './hello';
3 |
4 | const data = {
5 | mode: 'display',
6 | word: 'World'
7 | };
8 |
9 | const actions = {
10 | setMode (mode) {
11 | data.mode = mode;
12 | },
13 |
14 | setWord (word) {
15 | data.word = word;
16 | }
17 | };
18 |
19 | const App = React => {
20 | const Hello = hello(React);
21 |
22 | return stamp(React, {
23 | render () {
24 | return (
25 |
29 | );
30 | }
31 | });
32 | };
33 |
34 | export default App;
35 |
--------------------------------------------------------------------------------
/examples/fs-access/source/index.js:
--------------------------------------------------------------------------------
1 | import loadFile from './load-file';
2 | import mergeConfig from './merge-config';
3 |
4 | export default (options, ...overrides) => {
5 | const { sources } = options || {};
6 |
7 | return new Promise((resolve, reject) => {
8 | if (sources) {
9 | const whenFilesLoaded = sources.map(file => loadFile(file));
10 |
11 | Promise.all(whenFilesLoaded).then(files => {
12 | const configs = [...files, ...overrides];
13 | resolve(mergeConfig(...configs));
14 | }).catch(err => {
15 | reject(err);
16 | });
17 |
18 | } else {
19 | return resolve(mergeConfig(...overrides));
20 | }
21 | });
22 | };
23 |
--------------------------------------------------------------------------------
/examples/react-hello/source/hello.js:
--------------------------------------------------------------------------------
1 | import stamp from 'react-stampit';
2 |
3 | const Hello = (React) => {
4 | const { string, func } = React.PropTypes;
5 |
6 | return stamp(React, {
7 | propTypes: {
8 | word: string,
9 | actions: React.PropTypes.shape({
10 | setWord: func.isRequired,
11 | setMode: func.isRequired
12 | })
13 | },
14 |
15 | render () {
16 | const {
17 | word = 'World'
18 | } = this.props;
19 |
20 | const { setMode } = this.props.actions;
21 |
22 | return (
23 | setMode('edit') }
27 | >Hello, { word }!
28 |
29 | );
30 | }
31 | });
32 | };
33 |
34 | export default Hello;
35 |
--------------------------------------------------------------------------------
/examples/dependency-injection/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "dependency-injection",
3 | "description": "Tutorial Examples for TDD with ES6 & React",
4 | "version": "1.0.0",
5 | "main": "build/index.js",
6 | "scripts": {
7 | "test": "babel-node test/index.js"
8 | },
9 | "devDependencies": {
10 | "babel": "^5.8.21",
11 | "babel-loader": "^5.3.2",
12 | "babel-plugin-object-assign": "^1.2.1",
13 | "sinon": "^1.16.1",
14 | "tape": "^4.2.0"
15 | },
16 | "author": "Eric Elliott <>",
17 | "license": "MIT",
18 | "bugs": {
19 | "url": "https://github.com/ericelliott/tdd-es6-react/issues"
20 | },
21 | "homepage": "https://github.com/ericelliott/tdd-es6-react",
22 | "repository": {
23 | "type": "git",
24 | "url": "https://github.com/ericelliott/tdd-es6-react.git"
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/examples/react-hello/README.md:
--------------------------------------------------------------------------------
1 | # react-hello [](https://circleci.com/gh/ericelliott/react-hello/tree/master)
2 | [](https://travis-ci.org/ericelliott/react-hello)
3 |
4 | A Hello World example for React.
5 |
6 |
7 |
8 | ## Contents
9 |
10 | - [Features](#features)
11 | - [Getting Started](#getting-started)
12 | - [Contributing](#contributing)
13 |
14 |
15 |
16 | ## Features
17 |
18 | No features yet
19 |
20 | ## Getting Started
21 |
22 | Add your getting started instructions here.
23 |
24 | ## Contributing
25 |
26 | - [Contributing](docs/contributing/index.md)
27 | - [Versions: Release Names vs Version Numbers](docs/contributing/versions/index.md)
28 |
--------------------------------------------------------------------------------
/examples/fs-access/source/load-file.js:
--------------------------------------------------------------------------------
1 | import yamlParser from 'js-yaml';
2 | import fs from 'fs';
3 | import path from 'path';
4 |
5 | const commandMap = {
6 | 'json': JSON.parse,
7 | 'yml' : yamlParser.safeLoad
8 | };
9 |
10 | export default function loadFile(url) {
11 | return new Promise((resolve, reject) => {
12 | const file = url.split('//')[1],
13 | ext = file.split('.').pop(),
14 | parser = commandMap[ext.toLowerCase()];
15 |
16 | let resolvedPath, data, parsed;
17 |
18 | if (!parser) {
19 | reject( new Error (`Extension '${ ext }' not supported.
20 | Supported extensions: json, yml`) );
21 | }
22 |
23 | resolvedPath = path.resolve(file);
24 |
25 | fs.readFile(resolvedPath, 'utf-8', (err, data) => {
26 | if (err) reject(new Error(`Not a valid file: ${ resolvedPath }`));
27 |
28 | try {
29 | parsed = parser(data);
30 | } catch(parseError) {
31 | reject(parseError);
32 | }
33 |
34 | resolve(parsed);
35 | });
36 | });
37 | };
38 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 Eric Elliott
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/examples/fs-access/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 Eric Elliott
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/examples/react-hello/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 Eric Elliott
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/examples/dependency-injection/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 Eric Elliott
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/examples/react-hello/test/server/index.js:
--------------------------------------------------------------------------------
1 | import test from 'tape';
2 | import React from 'react';
3 | import R from 'react/addons';
4 |
5 | import hello from '../../source/hello';
6 | import createActions from '../fixtures/create-actions';
7 | import createDocument from '../fixtures/create-document';
8 | import $find from '../fixtures/find-by-class';
9 |
10 | const TestUtils = R.addons.TestUtils;
11 | const renderDOM = TestUtils.renderIntoDocument;
12 |
13 | test('Hello component', nest => {
14 |
15 | nest.test('...clicked for edit mode', assert => {
16 | const Hello = hello(React);
17 | const document = createDocument();
18 | let el, output;
19 |
20 | // Mock action
21 | const actions = createActions({
22 | setMode (mode) {
23 | const actual = mode;
24 | const expected = 'edit';
25 |
26 | assert.equal(actual, expected,
27 | `should trigger edit mode`);
28 |
29 | assert.end();
30 | }
31 | });
32 |
33 | // Render the DOM
34 | output = renderDOM(, document.body);
35 |
36 | el = $find(output, '.hello-world');
37 |
38 | // Simulate a click
39 | TestUtils.Simulate.click(el);
40 | });
41 |
42 | });
43 |
--------------------------------------------------------------------------------
/examples/fs-access/test/unit-tests/configure.js:
--------------------------------------------------------------------------------
1 | import test from 'tape';
2 | import configure from '../../source/index';
3 |
4 | test('Configure', nest => {
5 |
6 | nest.test('...with one overrides object', assert => {
7 | const testConfig = {setting: 'a setting'};
8 |
9 | configure(null, testConfig).then(value => {
10 | const actual = value;
11 | const expected = testConfig;
12 |
13 | assert.deepEqual(actual, expected,
14 | 'should resolve with a config object');
15 |
16 | assert.end();
17 | }).catch((err) => {
18 | assert.error('should not reject');
19 | assert.end();
20 | });
21 |
22 | });
23 |
24 | nest.test('...with multiple overrides', assert => {
25 | const a = {a: 1, override: 'a'};
26 | const b = {b: 2};
27 | const c = {override: 'c'};
28 |
29 | configure(null, a, b, c).then(value => {
30 | const actual = value;
31 | const expected = { a: 1, b: 2, override: 'c' };
32 |
33 | assert.deepEqual(actual, expected,
34 | 'should resolve with a config object');
35 |
36 | assert.end();
37 | }).catch((err) => {
38 | assert.error('should not reject');
39 | assert.end();
40 | });
41 | });
42 | });
43 |
--------------------------------------------------------------------------------
/examples/react-hello/test/lib/index.js:
--------------------------------------------------------------------------------
1 | import test from 'tape';
2 | import React from 'react';
3 | import dom from 'cheerio';
4 |
5 | import hello from '../../source/hello';
6 | import createActions from '../fixtures/create-actions';
7 |
8 | const renderText = React.renderToStaticMarkup;
9 |
10 | test('Hello component', nest => {
11 | nest.test('...with no props', assert => {
12 | const Hello = hello(React);
13 | const actions = createActions();
14 | const el = ;
15 | const $ = dom.load(renderText(el));
16 |
17 | const output = $('.hello-world').html();
18 |
19 | const actual = output;
20 | const expected = 'Hello, World!';
21 |
22 | assert.equal(actual, expected,
23 | `should render default message`);
24 |
25 | assert.end();
26 | });
27 |
28 | nest.test('...with custom word prop', assert => {
29 | const Hello = hello(React);
30 | const actions = createActions();
31 | const el = ;
32 | const $ = dom.load(renderText(el));
33 |
34 | const output = $('.hello-world').html();
35 |
36 | const actual = output;
37 | const expected = 'Hello, Puppy!';
38 |
39 | assert.equal(actual, expected,
40 | `should render customized message`);
41 |
42 | assert.end();
43 | });
44 | });
45 |
--------------------------------------------------------------------------------
/examples/react-hello/webpack.config.js:
--------------------------------------------------------------------------------
1 | var webpack = require('webpack');
2 | var path = require('path');
3 | var env = process.env.NODE_ENV || 'development';
4 | var minify = process.env.MINIFY || false;
5 |
6 | var eslintLoader = {
7 | test: /\.js$/,
8 | loaders: ['eslint'],
9 | include: path.resolve('./source')
10 | };
11 |
12 | var uglifyPlugin = new webpack.optimize.UglifyJsPlugin({
13 | sourceMap: true
14 | });
15 |
16 |
17 | module.exports = {
18 | devtool: 'sourcemap',
19 |
20 | entry: [
21 | 'webpack-dev-server/client?http://0.0.0.0:3000', // WebpackDevServer host and port
22 | './source/index.js',
23 | 'webpack/hot/only-dev-server' // "only" prevents reload on syntax errors
24 | ],
25 |
26 | output: {
27 | filename: minify ? 'index.min.js' : 'index.js',
28 | path: path.resolve('./build'),
29 | publicPath: '/public/'
30 | },
31 |
32 | plugins: [
33 | new webpack.HotModuleReplacementPlugin(),
34 | new webpack.DefinePlugin({
35 | 'process.env': {
36 | NODE_ENV: '"' + env + '"'
37 | }
38 | })
39 | ].concat(minify ? [uglifyPlugin] : []),
40 |
41 | module: {
42 | preLoaders: env === 'development' ? [
43 | eslintLoader
44 | ] : [],
45 | loaders: [
46 | {
47 | test: /\.js$/,
48 | loaders: ['react-hot', 'babel?plugins=object-assign'],
49 | include: path.resolve('./source')
50 | }
51 | ]
52 | },
53 |
54 | resolve: {
55 | extensions: ['', '.js']
56 | },
57 |
58 | stats: {
59 | colors: true
60 | },
61 |
62 | eslint: {
63 | configFile: './.eslintrc'
64 | }
65 | };
66 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # TDD in ES6 and React Examples
2 |
3 | Written for [Learn JavaScript with Eric Elliott](https://ericelliottjs.com/product/lifetime-access-pass/).
4 |
5 | ## Examples
6 |
7 | * [5 Questions Unit Test Template](https://gist.github.com/ericelliott/bc4c0fb66973202f6680#file-answer-unit-test-questions-js)
8 | * [The 5 Questions Compose Example Test](https://github.com/ericelliott/tdd-es6-react/blob/master/examples/compose-examples/test/index.js)
9 | * [Dependency Injection](https://github.com/ericelliott/tdd-es6-react/blob/master/examples/dependency-injection/test/index.js)
10 | * [Nesting example: Component --> Context --> Results](https://github.com/ericelliott/tdd-es6-react/blob/master/examples/fs-access/test/unit-tests/configure.js)
11 | * [Unit Tests vs Integration: Filesystem Isolation](https://github.com/ericelliott/tdd-es6-react/tree/master/examples/fs-access)
12 | - [Integration test example: Load config file](https://github.com/ericelliott/tdd-es6-react/blob/master/examples/fs-access/test/integration-tests/configure.js)
13 | - [Unit test example: Merge config](https://github.com/ericelliott/tdd-es6-react/blob/master/examples/fs-access/test/unit-tests/merge-config.js)
14 | * [React Component Example](https://github.com/ericelliott/tdd-es6-react/tree/master/examples/react-hello)
15 | - [Testing render correctness](https://github.com/ericelliott/tdd-es6-react/blob/master/examples/react-hello/test/lib/index.js)
16 | - [Testing event handlers](https://github.com/ericelliott/tdd-es6-react/blob/master/examples/react-hello/test/server/index.js)
17 | - [Pure action fixtures](https://github.com/ericelliott/tdd-es6-react/blob/master/examples/react-hello/test/fixtures/create-actions.js)
18 | - [Creating isolated DOM in Node](https://github.com/ericelliott/tdd-es6-react/blob/master/examples/react-hello/test/fixtures/create-document.js)
19 | - [Query live components with TestUtils](https://github.com/ericelliott/tdd-es6-react/blob/master/examples/react-hello/test/fixtures/find-by-class.js)
20 |
--------------------------------------------------------------------------------
/examples/react-hello/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-hello",
3 | "description": "A Hello World example for React.",
4 | "version": "1.0.0",
5 | "scripts": {
6 | "init": "rimraf .validate.json && rimraf .jshintrc",
7 | "clean": "rimraf build",
8 | "lint": "eslint source test",
9 | "prebuild": "npm run clean",
10 | "build": "npm run build:webpack && npm run build:min && npm run build:doc",
11 | "build:webpack": "node scripts/buildWebpack.js",
12 | "build:min": "node scripts/buildProduction.js",
13 | "build:doc": "doctoc --github --title \"## Contents\" ./",
14 | "start": "node scripts/dev-server.js",
15 | "test": "babel-node test/index.js",
16 | "dev": "watch 'clear && npm run -s lint && npm -s test' source test",
17 | "cov": "npm run cov:clean && npm run cov:generate",
18 | "cov:clean": "rimraf coverage",
19 | "cov:generate": "babel-node node_modules/.bin/isparta cover --report text --report html test/index.js",
20 | "prepublish": "npm run build",
21 | "validate": "npm run lint && npm run build && npm test",
22 | "validate-dev": "npm run lint && npm run build && npm test | faucet",
23 | "audit": "nsp package",
24 | "deps": "npm run deps:missing && npm run deps:extra",
25 | "deps:missing": "dependency-check package.json",
26 | "deps:extra": "dependency-check package.json --extra --no-dev --ignore",
27 | "precheck": "npm run validate",
28 | "check": "npm run audit && npm run deps && npm outdated --depth 0"
29 | },
30 | "pre-commit": [
31 | "lint"
32 | ],
33 | "devDependencies": {
34 | "babel": "^5.8.21",
35 | "babel-eslint": "^4.0.5",
36 | "babel-loader": "^5.3.2",
37 | "babel-plugin-object-assign": "^1.2.1",
38 | "cheerio": "^0.19.0",
39 | "dependency-check": "^2.5.0",
40 | "doctoc": "^0.14.2",
41 | "eslint": "^1.1.0",
42 | "eslint-loader": "^1.0.0",
43 | "eslint-plugin-react": "^3.3.1",
44 | "faucet": "0.0.1",
45 | "isparta": "^3.0.3",
46 | "jsdom": "^6.5.1",
47 | "node-libs-browser": "^0.5.2",
48 | "nsp": "^1.0.3",
49 | "precommit-hook": "^3.0.0",
50 | "react-hot-loader": "^1.3.0",
51 | "rimraf": "^2.4.2",
52 | "tape": "^4.2.0",
53 | "watch": "^0.16.0",
54 | "webpack": "^1.11.0",
55 | "webpack-dev-server": "^1.10.1"
56 | },
57 | "author": "Eric Elliott <>",
58 | "license": "MIT",
59 | "bugs": {
60 | "url": "https://github.com/ericelliott/react-hello/issues"
61 | },
62 | "homepage": "https://github.com/ericelliott/react-hello",
63 | "repository": {
64 | "type": "git",
65 | "url": "https://github.com/ericelliott/react-hello.git"
66 | },
67 | "dependencies": {
68 | "react": "^0.13.3",
69 | "react-stampit": "^0.9.0"
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/docs/contributing/index.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 |
4 | ## Contents
5 |
6 | - [Reporting bugs](#reporting-bugs)
7 | - [Example](#example)
8 | - [Getting Started](#getting-started)
9 | - [Clone the repo](#clone-the-repo)
10 | - [If there's no issue, please create one](#if-theres-no-issue-please-create-one)
11 | - [Let us Know you're working on the issue](#let-us-know-youre-working-on-the-issue)
12 | - [Create a feature branch:](#create-a-feature-branch)
13 | - [Make your changes and commit:](#make-your-changes-and-commit)
14 | - [Create a Pull Request](#create-a-pull-request)
15 | - [PR Merge Exception](#pr-merge-exception)
16 | - [PR Hints](#pr-hints)
17 | - [For large changes spanning many commits / PRs](#for-large-changes-spanning-many-commits--prs)
18 |
19 |
20 | - [Versions: Release Names vs Version Numbers](versions/index.md)
21 |
22 | ## Reporting bugs
23 |
24 | Bug reports should contain the following information:
25 |
26 | * Summary: A brief description.
27 | * Steps to reproduce: How did you encounter the bug? Instructions to reproduce it.
28 | * Expected behavior: How did you expect it to behave?
29 | * Actual behavior: How did it actually behave?
30 | * Screenshot or animated gif: If possible, attach visual documentation of the bug.
31 | * References: Links to any related tickets or information sources.
32 |
33 | ### Example
34 |
35 | Here's a [real issue](https://github.com/woothemes/woocommerce/issues/8563#issue-94518347) to demonstrate.
36 |
37 |
38 | ## Getting Started
39 |
40 | ### Clone the repo
41 |
42 | * Click the GitHub fork button to create your own fork
43 | * Clone your fork of the repo to your dev system
44 |
45 | ```
46 | git clone git@github.com:ericelliott/.git
47 | ```
48 |
49 | ### If there's no issue, please create one
50 |
51 |
52 | ### Let us Know you're working on the issue
53 |
54 | If you're actively working on an issue, please comment in the issue thread stating that you're working on a fix, or (if you're an official contributor) assign it to yourself.
55 |
56 | This way, others will know they shouldn't try to work on a fix at the same time.
57 |
58 |
59 | ### Create a feature branch:
60 |
61 | ```
62 | git checkout -b
63 | ```
64 |
65 | ### Make your changes and commit:
66 |
67 | * Make sure you comply with the [.editorconfig](http://editorconfig.org/)
68 |
69 | ```
70 | git commit -m '[Issue #] '
71 | ```
72 |
73 | ### Create a Pull Request
74 |
75 | Please don't merge your own changes. Create a pull request so others can review the changes.
76 |
77 | **Push changes:**
78 |
79 | ```
80 | git push origin
81 | ```
82 |
83 | * Open your repository fork on GitHub
84 | * You should see a button to create a pull request - Press it
85 | * Consider mentioning a contributor in your pull request comments to alert them that it's available for review
86 | * **Wait for the reviewer to approve and merge the request**
87 |
88 | ### PR Merge Exception
89 |
90 | * Minor documentation grammar/spelling fixes (code example changes should be reviewed)
91 |
92 |
93 | ### PR Hints
94 |
95 | Reference the issue number in your commit message e.g.:
96 |
97 | ```
98 | $ git commit -m '[#5] Make sure to follow the PR process for contributions'
99 | ```
100 |
101 | #### For large changes spanning many commits / PRs
102 |
103 | * Create a meta-issue with a bullet list using the `* [ ] item` markdown syntax.
104 | * Create issues for each bullet point
105 | * Link to the meta-issue from each bullet point issue
106 | * Check off the bullet list as items get completed
107 |
108 | Linking from the bullet point issues to the meta issue will create a list of issues with status indicators in the issue comments stream, which will give us a quick visual reference to see what's done and what still needs doing.
109 |
--------------------------------------------------------------------------------
/examples/react-hello/docs/contributing/index.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 |
4 | ## Contents
5 |
6 | - [Reporting bugs](#reporting-bugs)
7 | - [Example](#example)
8 | - [Getting Started](#getting-started)
9 | - [Clone the repo](#clone-the-repo)
10 | - [If there's no issue, please create one](#if-theres-no-issue-please-create-one)
11 | - [Let us Know you're working on the issue](#let-us-know-youre-working-on-the-issue)
12 | - [Create a feature branch:](#create-a-feature-branch)
13 | - [Make your changes and commit:](#make-your-changes-and-commit)
14 | - [Create a Pull Request](#create-a-pull-request)
15 | - [PR Merge Exception](#pr-merge-exception)
16 | - [PR Hints](#pr-hints)
17 | - [For large changes spanning many commits / PRs](#for-large-changes-spanning-many-commits--prs)
18 |
19 |
20 | - [Versions: Release Names vs Version Numbers](versions/index.md)
21 |
22 | ## Reporting bugs
23 |
24 | Bug reports should contain the following information:
25 |
26 | * Summary: A brief description.
27 | * Steps to reproduce: How did you encounter the bug? Instructions to reproduce it.
28 | * Expected behavior: How did you expect it to behave?
29 | * Actual behavior: How did it actually behave?
30 | * Screenshot or animated gif: If possible, attach visual documentation of the bug.
31 | * References: Links to any related tickets or information sources.
32 |
33 | ### Example
34 |
35 | Here's a [real issue](https://github.com/woothemes/woocommerce/issues/8563#issue-94518347) to demonstrate.
36 |
37 |
38 | ## Getting Started
39 |
40 | ### Clone the repo
41 |
42 | * Click the GitHub fork button to create your own fork
43 | * Clone your fork of the repo to your dev system
44 |
45 | ```
46 | git clone git@github.com:ericelliott/.git
47 | ```
48 |
49 | ### If there's no issue, please create one
50 |
51 |
52 | ### Let us Know you're working on the issue
53 |
54 | If you're actively working on an issue, please comment in the issue thread stating that you're working on a fix, or (if you're an official contributor) assign it to yourself.
55 |
56 | This way, others will know they shouldn't try to work on a fix at the same time.
57 |
58 |
59 | ### Create a feature branch:
60 |
61 | ```
62 | git checkout -b
63 | ```
64 |
65 | ### Make your changes and commit:
66 |
67 | * Make sure you comply with the [.editorconfig](http://editorconfig.org/)
68 |
69 | ```
70 | git commit -m '[Issue #] '
71 | ```
72 |
73 | ### Create a Pull Request
74 |
75 | Please don't merge your own changes. Create a pull request so others can review the changes.
76 |
77 | **Push changes:**
78 |
79 | ```
80 | git push origin
81 | ```
82 |
83 | * Open your repository fork on GitHub
84 | * You should see a button to create a pull request - Press it
85 | * Consider mentioning a contributor in your pull request comments to alert them that it's available for review
86 | * **Wait for the reviewer to approve and merge the request**
87 |
88 | ### PR Merge Exception
89 |
90 | * Minor documentation grammar/spelling fixes (code example changes should be reviewed)
91 |
92 |
93 | ### PR Hints
94 |
95 | Reference the issue number in your commit message e.g.:
96 |
97 | ```
98 | $ git commit -m '[#5] Make sure to follow the PR process for contributions'
99 | ```
100 |
101 | #### For large changes spanning many commits / PRs
102 |
103 | * Create a meta-issue with a bullet list using the `* [ ] item` markdown syntax.
104 | * Create issues for each bullet point
105 | * Link to the meta-issue from each bullet point issue
106 | * Check off the bullet list as items get completed
107 |
108 | Linking from the bullet point issues to the meta issue will create a list of issues with status indicators in the issue comments stream, which will give us a quick visual reference to see what's done and what still needs doing.
109 |
--------------------------------------------------------------------------------
/docs/contributing/versions/index.md:
--------------------------------------------------------------------------------
1 | # Versions: Release Names vs Version Numbers
2 |
3 |
4 | ## Contents
5 |
6 | - [What?](#what)
7 | - [Why?](#why)
8 | - [Details](#details)
9 | - [Release Names (AKA code names)](#release-names-aka-code-names)
10 | - [MVP](#mvp)
11 | - [Version Numbers](#version-numbers)
12 | - [Breaking.Feature.Fix](#breakingfeaturefix)
13 | - [Breaking](#breaking)
14 | - [Feature](#feature)
15 | - [Fix](#fix)
16 | - [Examples](#examples)
17 |
18 |
19 |
20 | ## What?
21 |
22 | Version numbers are **only** there to communicate the nature of a change: **Breaking.Feature.Fix**.
23 |
24 | Human names are there to communicate, "Hey everybody, we have a new release! Here are the new features!"
25 |
26 | ## Why?
27 |
28 | Our releases and versions are separate concepts because the need to communicate new stable release information and the need to inform developers about the nature of changes (breaking, new features, or fixes/security patches) are two separate concerns which advance on separate timetables.
29 |
30 | The conflating of version numbers and public releases has led to a big problem in the software development community. Developers tend to break semantic version numbering, for example, resisting the need to advance the breaking (major) version number because they're not yet ready to release their mvp (which many developers think of as 1.0).
31 |
32 | In other words, we need two separate ways of tracking changes:
33 |
34 | * One for people & public announcements (names).
35 | * One for resolving version conflict problems (numbers).
36 |
37 | ## Details
38 |
39 | ### Release Names (AKA code names)
40 |
41 | Our major releases have code-names instead of version numbers. The current release is identified by the "latest" tag. The first version is "mvp". After that we pick a theme, and work through the alphabet from A to Z.
42 |
43 | When talking about release versions, we don't say "version Arty" we say "the newest version was released today, code named 'Arty'". After that, we just refer to it as "Arty" or "latest version". More recognizable codename examples include "Windows Vista" or "OS X Yosemite".
44 |
45 |
46 | #### MVP
47 |
48 | MVP stands for "Minimum **Valuable** Product" (a better version of the common "Minimum Viable Product"). The minimum number of features to make the product valuable to users.
49 |
50 | 
51 |
52 |
53 | ### Version Numbers
54 |
55 | [Semver](http://semver.org), except the version roles have the semantic names, "Breaking.Feature.Fix" instead of "Major.Minor.Patch".
56 |
57 |
58 | #### Breaking.Feature.Fix
59 |
60 | We don't decide what the version will be. The API changes decide. Version numbers are for computers, not people. Release names are for people.
61 |
62 | ##### Breaking
63 |
64 | Any breaking change, no matter how small increments the Breaking version number. Incrementing the Breaking version number has absolutely no relationship with issuing a release.
65 |
66 | ##### Feature
67 |
68 | When any new feature is added. This could be as small as a new public property, or as large as a new module contract being exposed.
69 |
70 | ##### Fix
71 |
72 | When a documented feature does not behave as documented, or when a security issue is discovered and fixed without altering documented behavior.
73 |
74 |
75 |
76 | ## Examples
77 |
78 | If it's time to write a blog post to inform the community about new features or important changes, we find the version we want to publicize, tag it "latest", give it a human-readable name, (i.e. "MVP" or "Art Nouveau" in the case of the [JSHomes API](https://github.com/jshomes/jshomes-platform-api/blob/master/README.md#jshomes-api-)).
79 |
80 | That human readable release name **does not replace semver**. "MVP" might correspond to `v1.6.23` or `v2.2.5` -- the point is, **the numbered version has nothing to do with the named release**.
81 |
82 | The numbered version is there so npm and developers can tell whether or not a new version is a breaking change, an added feature change, or a bug / security fix.
83 |
84 |
85 |
--------------------------------------------------------------------------------
/examples/react-hello/docs/contributing/versions/index.md:
--------------------------------------------------------------------------------
1 | # Versions: Release Names vs Version Numbers
2 |
3 |
4 | ## Contents
5 |
6 | - [What?](#what)
7 | - [Why?](#why)
8 | - [Details](#details)
9 | - [Release Names (AKA code names)](#release-names-aka-code-names)
10 | - [MVP](#mvp)
11 | - [Version Numbers](#version-numbers)
12 | - [Breaking.Feature.Fix](#breakingfeaturefix)
13 | - [Breaking](#breaking)
14 | - [Feature](#feature)
15 | - [Fix](#fix)
16 | - [Examples](#examples)
17 |
18 |
19 |
20 | ## What?
21 |
22 | Version numbers are **only** there to communicate the nature of a change: **Breaking.Feature.Fix**.
23 |
24 | Human names are there to communicate, "Hey everybody, we have a new release! Here are the new features!"
25 |
26 | ## Why?
27 |
28 | Our releases and versions are separate concepts because the need to communicate new stable release information and the need to inform developers about the nature of changes (breaking, new features, or fixes/security patches) are two separate concerns which advance on separate timetables.
29 |
30 | The conflating of version numbers and public releases has led to a big problem in the software development community. Developers tend to break semantic version numbering, for example, resisting the need to advance the breaking (major) version number because they're not yet ready to release their mvp (which many developers think of as 1.0).
31 |
32 | In other words, we need two separate ways of tracking changes:
33 |
34 | * One for people & public announcements (names).
35 | * One for resolving version conflict problems (numbers).
36 |
37 | ## Details
38 |
39 | ### Release Names (AKA code names)
40 |
41 | Our major releases have code-names instead of version numbers. The current release is identified by the "latest" tag. The first version is "mvp". After that we pick a theme, and work through the alphabet from A to Z.
42 |
43 | When talking about release versions, we don't say "version Arty" we say "the newest version was released today, code named 'Arty'". After that, we just refer to it as "Arty" or "latest version". More recognizable codename examples include "Windows Vista" or "OS X Yosemite".
44 |
45 |
46 | #### MVP
47 |
48 | MVP stands for "Minimum **Valuable** Product" (a better version of the common "Minimum Viable Product"). The minimum number of features to make the product valuable to users.
49 |
50 | 
51 |
52 |
53 | ### Version Numbers
54 |
55 | [Semver](http://semver.org), except the version roles have the semantic names, "Breaking.Feature.Fix" instead of "Major.Minor.Patch".
56 |
57 |
58 | #### Breaking.Feature.Fix
59 |
60 | We don't decide what the version will be. The API changes decide. Version numbers are for computers, not people. Release names are for people.
61 |
62 | ##### Breaking
63 |
64 | Any breaking change, no matter how small increments the Breaking version number. Incrementing the Breaking version number has absolutely no relationship with issuing a release.
65 |
66 | ##### Feature
67 |
68 | When any new feature is added. This could be as small as a new public property, or as large as a new module contract being exposed.
69 |
70 | ##### Fix
71 |
72 | When a documented feature does not behave as documented, or when a security issue is discovered and fixed without altering documented behavior.
73 |
74 |
75 |
76 | ## Examples
77 |
78 | If it's time to write a blog post to inform the community about new features or important changes, we find the version we want to publicize, tag it "latest", give it a human-readable name, (i.e. "MVP" or "Art Nouveau" in the case of the [JSHomes API](https://github.com/jshomes/jshomes-platform-api/blob/master/README.md#jshomes-api-)).
79 |
80 | That human readable release name **does not replace semver**. "MVP" might correspond to `v1.6.23` or `v2.2.5` -- the point is, **the numbered version has nothing to do with the named release**.
81 |
82 | The numbered version is there so npm and developers can tell whether or not a new version is a breaking change, an added feature change, or a bug / security fix.
83 |
84 |
85 |
--------------------------------------------------------------------------------
/examples/react-hello/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "parser": "babel-eslint",
3 |
4 | "plugins": [
5 | "react"
6 | ],
7 |
8 | "env": {
9 | "browser": true,
10 | "node": true,
11 | "es6": true
12 | },
13 |
14 | "ecmaFeatures": {
15 | "arrowFunctions": true,
16 | "binaryLiterals": true,
17 | "blockBindings": true,
18 | "classes": false,
19 | "defaultParams": true,
20 | "destructuring": true,
21 | "forOf": true,
22 | "generators": true,
23 | "modules": true,
24 | "objectLiteralComputedProperties": true,
25 | "objectLiteralDuplicateProperties": true,
26 | "objectLiteralShorthandMethods": true,
27 | "objectLiteralShorthandProperties": true,
28 | "octalLiterals": true,
29 | "regexUFlag": true,
30 | "regexYFlag": true,
31 | "spread": true,
32 | "superInFunctions": false,
33 | "templateStrings": true,
34 | "unicodeCodePointEscapes": true,
35 | "globalReturn": true,
36 | "jsx": true
37 | },
38 |
39 | "rules": {
40 | "block-scoped-var": [0],
41 | "brace-style": [2, "1tbs", {"allowSingleLine": true}],
42 | "camelcase": [0],
43 | "comma-dangle": [0],
44 | "comma-spacing": [2],
45 | "comma-style": [2, "last"],
46 | "complexity": [0, 11],
47 | "consistent-return": [2],
48 | "consistent-this": [0, "that"],
49 | "curly": [2, "multi-line"],
50 | "default-case": [2],
51 | "dot-notation": [2, {"allowKeywords": true}],
52 | "eol-last": [2],
53 | "eqeqeq": [2],
54 | "func-names": [0],
55 | "func-style": [0, "declaration"],
56 | "generator-star-spacing": [2, "after"],
57 | "guard-for-in": [0],
58 | "handle-callback-err": [0],
59 | "key-spacing": [2, {"beforeColon": false, "afterColon": true}],
60 | "quotes": [2, "single", "avoid-escape"],
61 | "max-depth": [0, 4],
62 | "max-len": [0, 80, 4],
63 | "max-nested-callbacks": [0, 2],
64 | "max-params": [0, 3],
65 | "max-statements": [0, 10],
66 | "new-parens": [2],
67 | "new-cap": [0],
68 | "newline-after-var": [0],
69 | "no-alert": [2],
70 | "no-array-constructor": [2],
71 | "no-bitwise": [0],
72 | "no-caller": [2],
73 | "no-catch-shadow": [2],
74 | "no-cond-assign": [2],
75 | "no-console": [0],
76 | "no-constant-condition": [1],
77 | "no-continue": [2],
78 | "no-control-regex": [2],
79 | "no-debugger": [2],
80 | "no-delete-var": [2],
81 | "no-div-regex": [0],
82 | "no-dupe-args": [2],
83 | "no-dupe-keys": [2],
84 | "no-duplicate-case": [2],
85 | "no-else-return": [0],
86 | "no-empty": [2],
87 | "no-empty-character-class": [2],
88 | "no-empty-label": [2],
89 | "no-eq-null": [0],
90 | "no-eval": [2],
91 | "no-ex-assign": [2],
92 | "no-extend-native": [1],
93 | "no-extra-bind": [2],
94 | "no-extra-boolean-cast": [2],
95 | "no-extra-semi": [1],
96 | "no-fallthrough": [2],
97 | "no-floating-decimal": [2],
98 | "no-func-assign": [2],
99 | "no-implied-eval": [2],
100 | "no-inline-comments": [0],
101 | "no-inner-declarations": [2, "functions"],
102 | "no-invalid-regexp": [2],
103 | "no-irregular-whitespace": [2],
104 | "no-iterator": [2],
105 | "no-label-var": [2],
106 | "no-labels": [2],
107 | "no-lone-blocks": [2],
108 | "no-lonely-if": [2],
109 | "no-loop-func": [2],
110 | "no-mixed-requires": [0, false],
111 | "no-mixed-spaces-and-tabs": [2, false],
112 | "no-multi-spaces": [2],
113 | "no-multi-str": [2],
114 | "no-multiple-empty-lines": [2, {"max": 2}],
115 | "no-native-reassign": [1],
116 | "no-negated-in-lhs": [2],
117 | "no-nested-ternary": [0],
118 | "no-new": [2],
119 | "no-new-func": [2],
120 | "no-new-object": [2],
121 | "no-new-require": [0],
122 | "no-new-wrappers": [2],
123 | "no-obj-calls": [2],
124 | "no-octal": [2],
125 | "no-octal-escape": [2],
126 | "no-param-reassign": [2],
127 | "no-path-concat": [0],
128 | "no-plusplus": [0],
129 | "no-process-env": [0],
130 | "no-process-exit": [2],
131 | "no-proto": [2],
132 | "no-redeclare": [2],
133 | "no-regex-spaces": [2],
134 | "no-reserved-keys": [0],
135 | "no-restricted-modules": [0],
136 | "no-return-assign": [2],
137 | "no-script-url": [2],
138 | "no-self-compare": [0],
139 | "no-sequences": [2],
140 | "no-shadow": [2],
141 | "no-shadow-restricted-names": [2],
142 | "no-spaced-func": [2],
143 | "no-sparse-arrays": [2],
144 | "no-sync": [0],
145 | "no-ternary": [0],
146 | "no-throw-literal": [2],
147 | "no-trailing-spaces": [2],
148 | "no-undef": [2],
149 | "no-undef-init": [2],
150 | "no-undefined": [0],
151 | "no-underscore-dangle": [2],
152 | "no-unreachable": [2],
153 | "no-unused-expressions": [2],
154 | "no-unused-vars": [1, {"vars": "all", "args": "after-used"}],
155 | "no-use-before-define": [2],
156 | "no-void": [0],
157 | "no-warning-comments": [0, {"terms": ["todo", "fixme", "xxx"], "location": "start"}],
158 | "no-with": [2],
159 | "no-extra-parens": [0],
160 | "one-var": [0],
161 | "operator-assignment": [0, "always"],
162 | "operator-linebreak": [2, "after"],
163 | "padded-blocks": [0],
164 | "quote-props": [0],
165 | "radix": [0],
166 | "semi": [2],
167 | "semi-spacing": [2, {"before": false, "after": true}],
168 | "sort-vars": [0],
169 | "space-after-keywords": [2, "always"],
170 | "space-before-function-paren": [2, {"anonymous": "always", "named": "always"}],
171 | "space-before-blocks": [0, "always"],
172 | "space-in-brackets": [
173 | 0, "never", {
174 | "singleValue": true,
175 | "arraysInArrays": false,
176 | "arraysInObjects": false,
177 | "objectsInArrays": true,
178 | "objectsInObjects": true,
179 | "propertyName": false
180 | }
181 | ],
182 | "space-in-parens": [2, "never"],
183 | "space-infix-ops": [2],
184 | "space-return-throw-case": [2],
185 | "space-unary-ops": [2, {"words": true, "nonwords": false}],
186 | "spaced-line-comment": [0, "always"],
187 | "strict": [2, "never"],
188 | "use-isnan": [2],
189 | "valid-jsdoc": [0],
190 | "valid-typeof": [2],
191 | "vars-on-top": [0],
192 | "wrap-iife": [2],
193 | "wrap-regex": [2],
194 | "yoda": [2, "never", {"exceptRange": true}]
195 | }
196 | }
197 |
--------------------------------------------------------------------------------
/examples/fs-access/build/index.min.js:
--------------------------------------------------------------------------------
1 | !function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function i(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t1?t-1:0),r=1;t>r;r++)n[r-1]=arguments[r];var o=e||{},s=o.sources;return new Promise(function(e,t){if(!s)return e(u["default"].apply(void 0,n));var r=s.map(function(e){return a["default"](e)});Promise.all(r).then(function(t){var r=[].concat(i(t),n);e(u["default"].apply(void 0,i(r)))})["catch"](function(e){t(e)})})},e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function i(e){return new Promise(function(t,n){var r=e.split("//")[1],i=r.split(".").pop(),o=f[i.toLowerCase()],a=void 0,s=void 0;o||n(new Error("Extension '"+i+"' not supported.\n Supported extensions: json, yml")),a=c["default"].resolve(r),u["default"].readFile(a,"utf-8",function(e,r){e&&n(new Error("Not a valid file: "+a));try{s=o(r)}catch(i){n(i)}t(s)})})}Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=i;var o=n(2),a=r(o),s=n(!function(){var e=new Error('Cannot find module "fs"');throw e.code="MODULE_NOT_FOUND",e}()),u=r(s),l=n(38),c=r(l),f={json:JSON.parse,yml:a["default"].safeLoad};e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3);e.exports=r},function(e,t,n){"use strict";function r(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}var i=n(4),o=n(37);e.exports.Type=n(14),e.exports.Schema=n(13),e.exports.FAILSAFE_SCHEMA=n(17),e.exports.JSON_SCHEMA=n(16),e.exports.CORE_SCHEMA=n(15),e.exports.DEFAULT_SAFE_SCHEMA=n(12),e.exports.DEFAULT_FULL_SCHEMA=n(32),e.exports.load=i.load,e.exports.loadAll=i.loadAll,e.exports.safeLoad=i.safeLoad,e.exports.safeLoadAll=i.safeLoadAll,e.exports.dump=o.dump,e.exports.safeDump=o.safeDump,e.exports.YAMLException=n(6),e.exports.MINIMAL_SCHEMA=n(17),e.exports.SAFE_SCHEMA=n(12),e.exports.DEFAULT_SCHEMA=n(32),e.exports.scan=r("scan"),e.exports.parse=r("parse"),e.exports.compose=r("compose"),e.exports.addConstructor=r("addConstructor")},function(e,t,n){"use strict";function r(e){return 10===e||13===e}function i(e){return 9===e||32===e}function o(e){return 9===e||32===e||10===e||13===e}function a(e){return 44===e||91===e||93===e||123===e||125===e}function s(e){var t;return e>=48&&57>=e?e-48:(t=32|e,t>=97&&102>=t?t-97+10:-1)}function u(e){return 120===e?2:117===e?4:85===e?8:0}function l(e){return e>=48&&57>=e?e-48:-1}function c(e){return 48===e?"\x00":97===e?"":98===e?"\b":116===e?" ":9===e?" ":110===e?"\n":118===e?"":102===e?"\f":114===e?"\r":101===e?"":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"
":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function f(e){return 65535>=e?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function p(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||q,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function h(e,t){return new z(t,new H(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function d(e,t){throw h(e,t)}function m(e,t){e.onWarning&&e.onWarning.call(null,h(e,t))}function g(e,t,n,r){var i,o,a,s;if(n>t){if(s=e.input.slice(t,n),r)for(i=0,o=s.length;o>i;i+=1)a=s.charCodeAt(i),9===a||a>=32&&1114111>=a||d(e,"expected valid JSON character");e.result+=s}}function y(e,t,n){var r,i,o,a;for(B.isObject(n)||d(e,"cannot merge mappings; the provided source object is unacceptable"),r=Object.keys(n),o=0,a=r.length;a>o;o+=1)i=r[o],W.call(t,i)||(t[i]=n[i])}function v(e,t,n,r,i){var o,a;if(r=String(r),null===t&&(t={}),"tag:yaml.org,2002:merge"===n)if(Array.isArray(i))for(o=0,a=i.length;a>o;o+=1)y(e,t,i[o]);else y(e,t,i);else t[r]=i;return t}function x(e){var t;t=e.input.charCodeAt(e.position),10===t?e.position++:13===t?(e.position++,10===e.input.charCodeAt(e.position)&&e.position++):d(e,"a line break is expected"),e.line+=1,e.lineStart=e.position}function w(e,t,n){for(var o=0,a=e.input.charCodeAt(e.position);0!==a;){for(;i(a);)a=e.input.charCodeAt(++e.position);if(t&&35===a)do a=e.input.charCodeAt(++e.position);while(10!==a&&13!==a&&0!==a);if(!r(a))break;for(x(e),a=e.input.charCodeAt(e.position),o++,e.lineIndent=0;32===a;)e.lineIndent++,a=e.input.charCodeAt(++e.position)}return-1!==n&&0!==o&&e.lineIndent1&&(e.result+=B.repeat("\n",t-1))}function C(e,t,n){var s,u,l,c,f,p,h,d,m,y=e.kind,v=e.result;if(m=e.input.charCodeAt(e.position),o(m)||a(m)||35===m||38===m||42===m||33===m||124===m||62===m||39===m||34===m||37===m||64===m||96===m)return!1;if((63===m||45===m)&&(u=e.input.charCodeAt(e.position+1),o(u)||n&&a(u)))return!1;for(e.kind="scalar",e.result="",l=c=e.position,f=!1;0!==m;){if(58===m){if(u=e.input.charCodeAt(e.position+1),o(u)||n&&a(u))break}else if(35===m){if(s=e.input.charCodeAt(e.position-1),o(s))break}else{if(e.position===e.lineStart&&b(e)||n&&a(m))break;if(r(m)){if(p=e.line,h=e.lineStart,d=e.lineIndent,w(e,!1,-1),e.lineIndent>=t){f=!0,m=e.input.charCodeAt(e.position);continue}e.position=c,e.line=p,e.lineStart=h,e.lineIndent=d;break}}f&&(g(e,l,c,!1),S(e,e.line-p),l=c=e.position,f=!1),i(m)||(c=e.position+1),m=e.input.charCodeAt(++e.position)}return g(e,l,c,!1),e.result?!0:(e.kind=y,e.result=v,!1)}function A(e,t){var n,i,o;if(n=e.input.charCodeAt(e.position),39!==n)return!1;for(e.kind="scalar",e.result="",e.position++,i=o=e.position;0!==(n=e.input.charCodeAt(e.position));)if(39===n){if(g(e,i,e.position,!0),n=e.input.charCodeAt(++e.position),39!==n)return!0;i=o=e.position,e.position++}else r(n)?(g(e,i,o,!0),S(e,w(e,!1,t)),i=o=e.position):e.position===e.lineStart&&b(e)?d(e,"unexpected end of the document within a single quoted scalar"):(e.position++,o=e.position);d(e,"unexpected end of the stream within a single quoted scalar")}function k(e,t){var n,i,o,a,l,c;if(c=e.input.charCodeAt(e.position),34!==c)return!1;for(e.kind="scalar",e.result="",e.position++,n=i=e.position;0!==(c=e.input.charCodeAt(e.position));){if(34===c)return g(e,n,e.position,!0),e.position++,!0;if(92===c){if(g(e,n,e.position,!0),c=e.input.charCodeAt(++e.position),r(c))w(e,!1,t);else if(256>c&&ie[c])e.result+=oe[c],e.position++;else if((l=u(c))>0){for(o=l,a=0;o>0;o--)c=e.input.charCodeAt(++e.position),(l=s(c))>=0?a=(a<<4)+l:d(e,"expected hexadecimal character");e.result+=f(a),e.position++}else d(e,"unknown escape sequence");n=i=e.position}else r(c)?(g(e,n,i,!0),S(e,w(e,!1,t)),n=i=e.position):e.position===e.lineStart&&b(e)?d(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}d(e,"unexpected end of the stream within a double quoted scalar")}function E(e,t){var n,r,i,a,s,u,l,c,f,p,h,m=!0,g=e.tag,y=e.anchor;if(h=e.input.charCodeAt(e.position),91===h)a=93,l=!1,r=[];else{if(123!==h)return!1;a=125,l=!0,r={}}for(null!==e.anchor&&(e.anchorMap[e.anchor]=r),h=e.input.charCodeAt(++e.position);0!==h;){if(w(e,!0,t),h=e.input.charCodeAt(e.position),h===a)return e.position++,e.tag=g,e.anchor=y,e.kind=l?"mapping":"sequence",e.result=r,!0;m||d(e,"missed comma between flow collection entries"),f=c=p=null,s=u=!1,63===h&&(i=e.input.charCodeAt(e.position+1),o(i)&&(s=u=!0,e.position++,w(e,!0,t))),n=e.line,F(e,t,V,!1,!0),f=e.tag,c=e.result,w(e,!0,t),h=e.input.charCodeAt(e.position),!u&&e.line!==n||58!==h||(s=!0,h=e.input.charCodeAt(++e.position),w(e,!0,t),F(e,t,V,!1,!0),p=e.result),l?v(e,r,f,c,p):s?r.push(v(e,null,f,c,p)):r.push(c),w(e,!0,t),h=e.input.charCodeAt(e.position),44===h?(m=!0,h=e.input.charCodeAt(++e.position)):m=!1}d(e,"unexpected end of the stream within a flow collection")}function I(e,t){var n,o,a,s,u=J,c=!1,f=t,p=0,h=!1;if(s=e.input.charCodeAt(e.position),124===s)o=!1;else{if(62!==s)return!1;o=!0}for(e.kind="scalar",e.result="";0!==s;)if(s=e.input.charCodeAt(++e.position),43===s||45===s)J===u?u=43===s?X:Z:d(e,"repeat of a chomping mode identifier");else{if(!((a=l(s))>=0))break;0===a?d(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):c?d(e,"repeat of an indentation width identifier"):(f=t+a-1,c=!0)}if(i(s)){do s=e.input.charCodeAt(++e.position);while(i(s));if(35===s)do s=e.input.charCodeAt(++e.position);while(!r(s)&&0!==s)}for(;0!==s;){for(x(e),e.lineIndent=0,s=e.input.charCodeAt(e.position);(!c||e.lineIndentf&&(f=e.lineIndent),r(s))p++;else{if(e.lineIndentt)&&0!==i)d(e,"bad indentation of a sequence entry");else if(e.lineIndentt)&&(F(e,t,G,!0,a)&&(g?h=e.result:m=e.result),g||(v(e,f,p,h,m),p=h=m=null),w(e,!0,-1),u=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==u)d(e,"bad indentation of a mapping entry");else if(e.lineIndentt?h=1:e.lineIndent===t?h=0:e.lineIndentt?h=1:e.lineIndent===t?h=0:e.lineIndentu;u+=1)if(c=e.implicitTypes[u],c.resolve(e.result)){e.result=c.construct(e.result),e.tag=c.tag,null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);break}}else W.call(e.typeMap,e.tag)?(c=e.typeMap[e.tag],null!==e.result&&c.kind!==e.kind&&d(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+c.kind+'", not "'+e.kind+'"'),c.resolve(e.result)?(e.result=c.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):d(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):d(e,"unknown tag !<"+e.tag+">");return null!==e.tag||null!==e.anchor||g}function T(e){var t,n,a,s,u=e.position,l=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(s=e.input.charCodeAt(e.position))&&(w(e,!0,-1),s=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==s));){for(l=!0,s=e.input.charCodeAt(++e.position),t=e.position;0!==s&&!o(s);)s=e.input.charCodeAt(++e.position);for(n=e.input.slice(t,e.position),a=[],n.length<1&&d(e,"directive name must not be less than one character in length");0!==s;){for(;i(s);)s=e.input.charCodeAt(++e.position);if(35===s){do s=e.input.charCodeAt(++e.position);while(0!==s&&!r(s));break}if(r(s))break;for(t=e.position;0!==s&&!o(s);)s=e.input.charCodeAt(++e.position);a.push(e.input.slice(t,e.position))}0!==s&&x(e),W.call(se,n)?se[n](e,n,a):m(e,'unknown document directive "'+n+'"')}return w(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,w(e,!0,-1)):l&&d(e,"directives end mark is expected"),F(e,e.lineIndent-1,G,!1,!0),w(e,!0,-1),e.checkLineBreaks&&ee.test(e.input.slice(u,e.position))&&m(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&b(e)?void(46===e.input.charCodeAt(e.position)&&(e.position+=3,w(e,!0,-1))):void(e.positionr;r+=1)t(o[r])}function U(e,t){var n=j(e,t);if(0===n.length)return void 0;if(1===n.length)return n[0];throw new z("expected a single document in the stream, but found more")}function M(e,t,n){R(e,t,B.extend({schema:K},n))}function _(e,t){return U(e,B.extend({schema:K},t))}for(var B=n(5),z=n(6),H=n(11),K=n(12),q=n(32),W=Object.prototype.hasOwnProperty,V=1,$=2,Y=3,G=4,J=1,Z=2,X=3,Q=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,ee=/[\x85\u2028\u2029]/,te=/[,\[\]\{\}]/,ne=/^(?:!|!!|![a-z\-]+!)$/i,re=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i,ie=new Array(256),oe=new Array(256),ae=0;256>ae;ae++)ie[ae]=c(ae)?1:0,oe[ae]=c(ae);var se={YAML:function(e,t,n){var r,i,o;null!==e.version&&d(e,"duplication of %YAML directive"),1!==n.length&&d(e,"YAML directive accepts exactly one argument"),r=/^([0-9]+)\.([0-9]+)$/.exec(n[0]),null===r&&d(e,"ill-formed argument of the YAML directive"),i=parseInt(r[1],10),o=parseInt(r[2],10),1!==i&&d(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=2>o,1!==o&&2!==o&&m(e,"unsupported YAML version of the document")},TAG:function(e,t,n){var r,i;2!==n.length&&d(e,"TAG directive accepts exactly two arguments"),r=n[0],i=n[1],ne.test(r)||d(e,"ill-formed tag handle (first argument) of the TAG directive"),W.call(e.tagMap,r)&&d(e,'there is a previously declared suffix for "'+r+'" tag handle'),re.test(i)||d(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[r]=i}};e.exports.loadAll=R,e.exports.load=U,e.exports.safeLoadAll=M,e.exports.safeLoad=_},function(e,t){"use strict";function n(e){return"undefined"==typeof e||null===e}function r(e){return"object"==typeof e&&null!==e}function i(e){return Array.isArray(e)?e:n(e)?[]:[e]}function o(e,t){var n,r,i,o;if(t)for(o=Object.keys(t),n=0,r=o.length;r>n;n+=1)i=o[n],e[i]=t[i];return e}function a(e,t){var n,r="";for(n=0;t>n;n+=1)r+=e;return r}function s(e){return 0===e&&Number.NEGATIVE_INFINITY===1/e}e.exports.isNothing=n,e.exports.isObject=r,e.exports.toArray=i,e.exports.repeat=a,e.exports.isNegativeZero=s,e.exports.extend=o},function(e,t,n){"use strict";function r(e,t){Error.call(this),Error.captureStackTrace(this,this.constructor),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():"")}var i=n(7).inherits;i(r,Error),r.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t},e.exports=r},function(e,t,n){(function(e,r){function i(e,n){var r={seen:[],stylize:a};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),m(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=o),u(r,e,r.depth)}function o(e,t){var n=i.styles[t];return n?"["+i.colors[n][0]+"m"+e+"["+i.colors[n][1]+"m":e}function a(e,t){return e}function s(e){var t={};return e.forEach(function(e,n){t[e]=!0}),t}function u(e,n,r){if(e.customInspect&&n&&E(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var i=n.inspect(r,e);return x(i)||(i=u(e,i,r)),i}var o=l(e,n);if(o)return o;var a=Object.keys(n),m=s(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),k(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return c(n);if(0===a.length){if(E(n)){var g=n.name?": "+n.name:"";return e.stylize("[Function"+g+"]","special")}if(S(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(A(n))return e.stylize(Date.prototype.toString.call(n),"date");if(k(n))return c(n)}var y="",v=!1,w=["{","}"];if(d(n)&&(v=!0,w=["[","]"]),E(n)){var b=n.name?": "+n.name:"";y=" [Function"+b+"]"}if(S(n)&&(y=" "+RegExp.prototype.toString.call(n)),A(n)&&(y=" "+Date.prototype.toUTCString.call(n)),k(n)&&(y=" "+c(n)),0===a.length&&(!v||0==n.length))return w[0]+y+w[1];if(0>r)return S(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special");e.seen.push(n);var C;return C=v?f(e,n,r,m,a):a.map(function(t){return p(e,n,r,m,t,v)}),e.seen.pop(),h(C,y,w)}function l(e,t){if(b(t))return e.stylize("undefined","undefined");if(x(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return v(t)?e.stylize(""+t,"number"):m(t)?e.stylize(""+t,"boolean"):g(t)?e.stylize("null","null"):void 0}function c(e){return"["+Error.prototype.toString.call(e)+"]"}function f(e,t,n,r,i){for(var o=[],a=0,s=t.length;s>a;++a)N(t,String(a))?o.push(p(e,t,n,r,String(a),!0)):o.push("");return i.forEach(function(i){i.match(/^\d+$/)||o.push(p(e,t,n,r,i,!0))}),o}function p(e,t,n,r,i,o){var a,s,l;if(l=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]},l.get?s=l.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):l.set&&(s=e.stylize("[Setter]","special")),N(r,i)||(a="["+i+"]"),s||(e.seen.indexOf(l.value)<0?(s=g(n)?u(e,l.value,null):u(e,l.value,n-1),s.indexOf("\n")>-1&&(s=o?s.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+s.split("\n").map(function(e){return" "+e}).join("\n"))):s=e.stylize("[Circular]","special")),b(a)){if(o&&i.match(/^\d+$/))return s;a=JSON.stringify(""+i),a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function h(e,t,n){var r=0,i=e.reduce(function(e,t){return r++,t.indexOf("\n")>=0&&r++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}function d(e){return Array.isArray(e)}function m(e){return"boolean"==typeof e}function g(e){return null===e}function y(e){return null==e}function v(e){return"number"==typeof e}function x(e){return"string"==typeof e}function w(e){return"symbol"==typeof e}function b(e){return void 0===e}function S(e){return C(e)&&"[object RegExp]"===O(e)}function C(e){return"object"==typeof e&&null!==e}function A(e){return C(e)&&"[object Date]"===O(e)}function k(e){return C(e)&&("[object Error]"===O(e)||e instanceof Error)}function E(e){return"function"==typeof e}function I(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||"undefined"==typeof e}function O(e){return Object.prototype.toString.call(e)}function D(e){return 10>e?"0"+e.toString(10):e.toString(10)}function L(){var e=new Date,t=[D(e.getHours()),D(e.getMinutes()),D(e.getSeconds())].join(":");return[e.getDate(),j[e.getMonth()],t].join(" ")}function N(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var P=/%[sdj%]/g;t.format=function(e){if(!x(e)){for(var t=[],n=0;n=o)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(t){return"[Circular]"}default:return e}}),s=r[n];o>n;s=r[++n])a+=g(s)||!C(s)?" "+s:" "+i(s);return a},t.deprecate=function(n,i){function o(){if(!a){if(r.throwDeprecation)throw new Error(i);r.traceDeprecation?console.trace(i):console.error(i),a=!0}return n.apply(this,arguments)}if(b(e.process))return function(){return t.deprecate(n,i).apply(this,arguments)};if(r.noDeprecation===!0)return n;var a=!1;return o};var F,T={};t.debuglog=function(e){if(b(F)&&(F={NODE_ENV:"production"}.NODE_DEBUG||""),e=e.toUpperCase(),!T[e])if(new RegExp("\\b"+e+"\\b","i").test(F)){var n=r.pid;T[e]=function(){var r=t.format.apply(t,arguments);console.error("%s %d: %s",e,n,r)}}else T[e]=function(){};return T[e]},t.inspect=i,i.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},i.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=d,t.isBoolean=m,t.isNull=g,t.isNullOrUndefined=y,t.isNumber=v,t.isString=x,t.isSymbol=w,t.isUndefined=b,t.isRegExp=S,t.isObject=C,t.isDate=A,t.isError=k,t.isFunction=E,t.isPrimitive=I,t.isBuffer=n(9);var j=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];t.log=function(){console.log("%s - %s",L(),t.format.apply(t,arguments))},t.inherits=n(10),t._extend=function(e,t){if(!t||!C(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e}}).call(t,function(){return this}(),n(8))},function(e,t){function n(){l=!1,a.length?u=a.concat(u):c=-1,u.length&&r()}function r(){if(!l){var e=setTimeout(n);l=!0;for(var t=u.length;t;){for(a=u,u=[];++c1)for(var n=1;n0&&-1==="\x00\r\n
\u2028\u2029".indexOf(this.buffer.charAt(r-1));)if(r-=1,this.position-r>t/2-1){n=" ... ",r+=5;break}for(o="",a=this.position;at/2-1){o=" ... ",a-=5;break}return s=this.buffer.slice(r,a),i.repeat(" ",e)+n+s+o+"\n"+i.repeat(" ",e+this.position-r+n.length)+"^"},r.prototype.toString=function(e){var t,n="";return this.name&&(n+='in "'+this.name+'" '),n+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(n+=":\n"+t)),n},e.exports=r},function(e,t,n){"use strict";var r=n(13);e.exports=new r({include:[n(15)],implicit:[n(25),n(26)],explicit:[n(27),n(29),n(30),n(31)]})},function(e,t,n){"use strict";function r(e,t,n){var i=[];return e.include.forEach(function(e){n=r(e,t,n)}),e[t].forEach(function(e){n.forEach(function(t,n){t.tag===e.tag&&i.push(n)}),n.push(e)}),n.filter(function(e,t){return-1===i.indexOf(t)})}function i(){function e(e){r[e.tag]=e}var t,n,r={};for(t=0,n=arguments.length;n>t;t+=1)arguments[t].forEach(e);return r}function o(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new s("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=r(this,"implicit",[]),this.compiledExplicit=r(this,"explicit",[]),this.compiledTypeMap=i(this.compiledImplicit,this.compiledExplicit)}var a=n(5),s=n(6),u=n(14);o.DEFAULT=null,o.create=function(){var e,t;switch(arguments.length){case 1:e=o.DEFAULT,t=arguments[0];break;case 2:e=arguments[0],t=arguments[1];break;default:throw new s("Wrong number of arguments for Schema.create function")}if(e=a.toArray(e),t=a.toArray(t),!e.every(function(e){return e instanceof o}))throw new s("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!t.every(function(e){return e instanceof u}))throw new s("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new o({include:e,explicit:t})},e.exports=o},function(e,t,n){"use strict";function r(e){var t={};return null!==e&&Object.keys(e).forEach(function(n){e[n].forEach(function(e){t[String(e)]=n})}),t}function i(e,t){if(t=t||{},Object.keys(t).forEach(function(t){if(-1===a.indexOf(t))throw new o('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')}),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=r(t.styleAliases||null),-1===s.indexOf(this.kind))throw new o('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var o=n(6),a=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],s=["scalar","sequence","mapping"];e.exports=i},function(e,t,n){"use strict";var r=n(13);e.exports=new r({include:[n(16)]})},function(e,t,n){"use strict";var r=n(13);e.exports=new r({include:[n(17)],implicit:[n(21),n(22),n(23),n(24)]})},function(e,t,n){"use strict";var r=n(13);e.exports=new r({explicit:[n(18),n(19),n(20)]})},function(e,t,n){"use strict";var r=n(14);e.exports=new r("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return null!==e?e:""}})},function(e,t,n){"use strict";var r=n(14);e.exports=new r("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return null!==e?e:[]}})},function(e,t,n){"use strict";var r=n(14);e.exports=new r("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null!==e?e:{}}})},function(e,t,n){"use strict";function r(e){if(null===e)return!0;var t=e.length;return 1===t&&"~"===e||4===t&&("null"===e||"Null"===e||"NULL"===e)}function i(){return null}function o(e){return null===e}var a=n(14);e.exports=new a("tag:yaml.org,2002:null",{kind:"scalar",resolve:r,construct:i,predicate:o,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},function(e,t,n){"use strict";function r(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)}function i(e){return"true"===e||"True"===e||"TRUE"===e}function o(e){return"[object Boolean]"===Object.prototype.toString.call(e)}var a=n(14);e.exports=new a("tag:yaml.org,2002:bool",{kind:"scalar",resolve:r,construct:i,predicate:o,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},function(e,t,n){"use strict";function r(e){return e>=48&&57>=e||e>=65&&70>=e||e>=97&&102>=e}function i(e){return e>=48&&55>=e}function o(e){return e>=48&&57>=e}function a(e){if(null===e)return!1;var t,n=e.length,a=0,s=!1;if(!n)return!1;if(t=e[a],("-"===t||"+"===t)&&(t=e[++a]),"0"===t){if(a+1===n)return!0;if(t=e[++a],"b"===t){for(a++;n>a;a++)if(t=e[a],"_"!==t){if("0"!==t&&"1"!==t)return!1;
2 | s=!0}return s}if("x"===t){for(a++;n>a;a++)if(t=e[a],"_"!==t){if(!r(e.charCodeAt(a)))return!1;s=!0}return s}for(;n>a;a++)if(t=e[a],"_"!==t){if(!i(e.charCodeAt(a)))return!1;s=!0}return s}for(;n>a;a++)if(t=e[a],"_"!==t){if(":"===t)break;if(!o(e.charCodeAt(a)))return!1;s=!0}return s?":"!==t?!0:/^(:[0-5]?[0-9])+$/.test(e.slice(a)):!1}function s(e){var t,n,r=e,i=1,o=[];return-1!==r.indexOf("_")&&(r=r.replace(/_/g,"")),t=r[0],("-"===t||"+"===t)&&("-"===t&&(i=-1),r=r.slice(1),t=r[0]),"0"===r?0:"0"===t?"b"===r[1]?i*parseInt(r.slice(2),2):"x"===r[1]?i*parseInt(r,16):i*parseInt(r,8):-1!==r.indexOf(":")?(r.split(":").forEach(function(e){o.unshift(parseInt(e,10))}),r=0,n=1,o.forEach(function(e){r+=e*n,n*=60}),i*r):i*parseInt(r,10)}function u(e){return"[object Number]"===Object.prototype.toString.call(e)&&0===e%1&&!l.isNegativeZero(e)}var l=n(5),c=n(14);e.exports=new c("tag:yaml.org,2002:int",{kind:"scalar",resolve:a,construct:s,predicate:u,represent:{binary:function(e){return"0b"+e.toString(2)},octal:function(e){return"0"+e.toString(8)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return"0x"+e.toString(16).toUpperCase()}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},function(e,t,n){"use strict";function r(e){return null===e?!1:l.test(e)?!0:!1}function i(e){var t,n,r,i;return t=e.replace(/_/g,"").toLowerCase(),n="-"===t[0]?-1:1,i=[],0<="+-".indexOf(t[0])&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:0<=t.indexOf(":")?(t.split(":").forEach(function(e){i.unshift(parseFloat(e,10))}),t=0,r=1,i.forEach(function(e){t+=e*r,r*=60}),n*t):n*parseFloat(t,10)}function o(e,t){if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(s.isNegativeZero(e))return"-0.0";return e.toString(10)}function a(e){return"[object Number]"===Object.prototype.toString.call(e)&&(0!==e%1||s.isNegativeZero(e))}var s=n(5),u=n(14),l=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)\\.[0-9_]*(?:[eE][-+][0-9]+)?|\\.[0-9_]+(?:[eE][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");e.exports=new u("tag:yaml.org,2002:float",{kind:"scalar",resolve:r,construct:i,predicate:a,represent:o,defaultStyle:"lowercase"})},function(e,t,n){"use strict";function r(e){return null===e?!1:null===s.exec(e)?!1:!0}function i(e){var t,n,r,i,o,a,u,l,c,f,p=0,h=null;if(t=s.exec(e),null===t)throw new Error("Date resolve error");if(n=+t[1],r=+t[2]-1,i=+t[3],!t[4])return new Date(Date.UTC(n,r,i));if(o=+t[4],a=+t[5],u=+t[6],t[7]){for(p=t[7].slice(0,3);p.length<3;)p+="0";p=+p}return t[9]&&(l=+t[10],c=+(t[11]||0),h=6e4*(60*l+c),"-"===t[9]&&(h=-h)),f=new Date(Date.UTC(n,r,i,o,a,u,p)),h&&f.setTime(f.getTime()-h),f}function o(e){return e.toISOString()}var a=n(14),s=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?)?$");e.exports=new a("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:r,construct:i,instanceOf:Date,represent:o})},function(e,t,n){"use strict";function r(e){return"<<"===e||null===e}var i=n(14);e.exports=new i("tag:yaml.org,2002:merge",{kind:"scalar",resolve:r})},function(e,t,n){"use strict";function r(e){if(null===e)return!1;var t,n,r=0,i=e.length,o=l;for(n=0;i>n;n++)if(t=o.indexOf(e.charAt(n)),!(t>64)){if(0>t)return!1;r+=6}return r%8===0}function i(e){var t,n,r=e.replace(/[\r\n=]/g,""),i=r.length,o=l,a=0,u=[];for(t=0;i>t;t++)t%4===0&&t&&(u.push(a>>16&255),u.push(a>>8&255),u.push(255&a)),a=a<<6|o.indexOf(r.charAt(t));return n=i%4*6,0===n?(u.push(a>>16&255),u.push(a>>8&255),u.push(255&a)):18===n?(u.push(a>>10&255),u.push(a>>2&255)):12===n&&u.push(a>>4&255),s?new s(u):u}function o(e){var t,n,r="",i=0,o=e.length,a=l;for(t=0;o>t;t++)t%3===0&&t&&(r+=a[i>>18&63],r+=a[i>>12&63],r+=a[i>>6&63],r+=a[63&i]),i=(i<<8)+e[t];return n=o%3,0===n?(r+=a[i>>18&63],r+=a[i>>12&63],r+=a[i>>6&63],r+=a[63&i]):2===n?(r+=a[i>>10&63],r+=a[i>>4&63],r+=a[i<<2&63],r+=a[64]):1===n&&(r+=a[i>>2&63],r+=a[i<<4&63],r+=a[64],r+=a[64]),r}function a(e){return s&&s.isBuffer(e)}var s=n(28).Buffer,u=n(14),l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";e.exports=new u("tag:yaml.org,2002:binary",{kind:"scalar",resolve:r,construct:i,predicate:a,represent:o})},function(e,t){},function(e,t,n){"use strict";function r(e){if(null===e)return!0;var t,n,r,i,o,u=[],l=e;for(t=0,n=l.length;n>t;t+=1){if(r=l[t],o=!1,"[object Object]"!==s.call(r))return!1;for(i in r)if(a.call(r,i)){if(o)return!1;o=!0}if(!o)return!1;if(-1!==u.indexOf(i))return!1;u.push(i)}return!0}function i(e){return null!==e?e:[]}var o=n(14),a=Object.prototype.hasOwnProperty,s=Object.prototype.toString;e.exports=new o("tag:yaml.org,2002:omap",{kind:"sequence",resolve:r,construct:i})},function(e,t,n){"use strict";function r(e){if(null===e)return!0;var t,n,r,i,o,s=e;for(o=new Array(s.length),t=0,n=s.length;n>t;t+=1){if(r=s[t],"[object Object]"!==a.call(r))return!1;if(i=Object.keys(r),1!==i.length)return!1;o[t]=[i[0],r[i[0]]]}return!0}function i(e){if(null===e)return[];var t,n,r,i,o,a=e;for(o=new Array(a.length),t=0,n=a.length;n>t;t+=1)r=a[t],i=Object.keys(r),o[t]=[i[0],r[i[0]]];return o}var o=n(14),a=Object.prototype.toString;e.exports=new o("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:r,construct:i})},function(e,t,n){"use strict";function r(e){if(null===e)return!0;var t,n=e;for(t in n)if(a.call(n,t)&&null!==n[t])return!1;return!0}function i(e){return null!==e?e:{}}var o=n(14),a=Object.prototype.hasOwnProperty;e.exports=new o("tag:yaml.org,2002:set",{kind:"mapping",resolve:r,construct:i})},function(e,t,n){"use strict";var r=n(13);e.exports=r.DEFAULT=new r({include:[n(12)],explicit:[n(33),n(34),n(35)]})},function(e,t,n){"use strict";function r(){return!0}function i(){return void 0}function o(){return""}function a(e){return"undefined"==typeof e}var s=n(14);e.exports=new s("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:r,construct:i,predicate:a,represent:o})},function(e,t,n){"use strict";function r(e){if(null===e)return!1;if(0===e.length)return!1;var t=e,n=/\/([gim]*)$/.exec(e),r="";if("/"===t[0]){if(n&&(r=n[1]),r.length>3)return!1;if("/"!==t[t.length-r.length-1])return!1;t=t.slice(1,t.length-r.length-1)}try{return!0}catch(i){return!1}}function i(e){var t=e,n=/\/([gim]*)$/.exec(e),r="";return"/"===t[0]&&(n&&(r=n[1]),t=t.slice(1,t.length-r.length-1)),new RegExp(t,r)}function o(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function a(e){return"[object RegExp]"===Object.prototype.toString.call(e)}var s=n(14);e.exports=new s("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:r,construct:i,predicate:a,represent:o})},function(e,t,n){"use strict";function r(e){if(null===e)return!1;try{var t="("+e+")",n=s.parse(t,{range:!0});return"Program"!==n.type||1!==n.body.length||"ExpressionStatement"!==n.body[0].type||"FunctionExpression"!==n.body[0].expression.type?!1:!0}catch(r){return!1}}function i(e){var t,n="("+e+")",r=s.parse(n,{range:!0}),i=[];if("Program"!==r.type||1!==r.body.length||"ExpressionStatement"!==r.body[0].type||"FunctionExpression"!==r.body[0].expression.type)throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(e){i.push(e.name)}),t=r.body[0].expression.body.range,new Function(i,n.slice(t[0]+1,t[1]-1))}function o(e){return e.toString()}function a(e){return"[object Function]"===Object.prototype.toString.call(e)}var s;try{s=n(36)}catch(u){"undefined"!=typeof window&&(s=window.esprima)}var l=n(14);e.exports=new l("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:r,construct:i,predicate:a,represent:o})},function(e,t,n){var r,i,o;!function(n,a){"use strict";i=[t],r=a,o="function"==typeof r?r.apply(t,i):r,!(void 0!==o&&(e.exports=o))}(this,function(e){"use strict";function t(e,t){if(!e)throw new Error("ASSERT: "+t)}function n(e){return e>=48&&57>=e}function r(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function i(e){return"01234567".indexOf(e)>=0}function o(e){var t="0"!==e,n="01234567".indexOf(e);return dn>nn&&i(Qt[nn])&&(t=!0,n=8*n+"01234567".indexOf(Qt[nn++]),"0123".indexOf(e)>=0&&dn>nn&&i(Qt[nn])&&(n=8*n+"01234567".indexOf(Qt[nn++]))),{code:n,octal:t}}function a(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0}function s(e){return 10===e||13===e||8232===e||8233===e}function u(e){return 36===e||95===e||e>=65&&90>=e||e>=97&&122>=e||92===e||e>=128&&Xt.NonAsciiIdentifierStart.test(String.fromCharCode(e))}function l(e){return 36===e||95===e||e>=65&&90>=e||e>=97&&122>=e||e>=48&&57>=e||92===e||e>=128&&Xt.NonAsciiIdentifierPart.test(String.fromCharCode(e))}function c(e){switch(e){case"enum":case"export":case"import":case"super":return!0;default:return!1}}function f(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}}function p(e){return"eval"===e||"arguments"===e}function h(e){switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}}function d(e,n,r,i,o){var a;t("number"==typeof r,"Comment must have valid position"),gn.lastCommentStart=r,a={type:e,value:n},yn.range&&(a.range=[r,i]),yn.loc&&(a.loc=o),yn.comments.push(a),yn.attachComment&&(yn.leadingComments.push(a),yn.trailingComments.push(a))}function m(e){var t,n,r,i;for(t=nn-e,n={start:{line:rn,column:nn-on-e}};dn>nn;)if(r=Qt.charCodeAt(nn),++nn,s(r))return an=!0,yn.comments&&(i=Qt.slice(t+e,nn-1),n.end={line:rn,column:nn-on-1},d("Line",i,t,nn-1,n)),13===r&&10===Qt.charCodeAt(nn)&&++nn,++rn,void(on=nn);yn.comments&&(i=Qt.slice(t+e,nn),n.end={line:rn,column:nn-on},d("Line",i,t,nn,n))}function g(){var e,t,n,r;for(yn.comments&&(e=nn-2,t={start:{line:rn,column:nn-on-2}});dn>nn;)if(n=Qt.charCodeAt(nn),s(n))13===n&&10===Qt.charCodeAt(nn+1)&&++nn,an=!0,++rn,++nn,on=nn;else if(42===n){if(47===Qt.charCodeAt(nn+1))return++nn,++nn,void(yn.comments&&(r=Qt.slice(e+2,nn-2),t.end={line:rn,column:nn-on},d("Block",r,e,nn,t)));++nn}else++nn;yn.comments&&(t.end={line:rn,column:nn-on},r=Qt.slice(e+2,nn),d("Block",r,e,nn,t)),Q()}function y(){var e,t;for(an=!1,t=0===nn;dn>nn;)if(e=Qt.charCodeAt(nn),a(e))++nn;else if(s(e))an=!0,++nn,13===e&&10===Qt.charCodeAt(nn)&&++nn,++rn,on=nn,t=!0;else if(47===e)if(e=Qt.charCodeAt(nn+1),47===e)++nn,++nn,m(2),t=!0;else{if(42!==e)break;++nn,++nn,g()}else if(t&&45===e){if(45!==Qt.charCodeAt(nn+1)||62!==Qt.charCodeAt(nn+2))break;nn+=3,m(3)}else{if(60!==e)break;if("!--"!==Qt.slice(nn+1,nn+4))break;++nn,++nn,++nn,++nn,m(4)}}function v(e){var t,n,i,o=0;for(n="u"===e?4:2,t=0;n>t;++t){if(!(dn>nn&&r(Qt[nn])))return"";i=Qt[nn++],o=16*o+"0123456789abcdef".indexOf(i.toLowerCase())}return String.fromCharCode(o)}function x(){var e,t,n,i;for(e=Qt[nn],t=0,"}"===e&&X();dn>nn&&(e=Qt[nn++],r(e));)t=16*t+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||"}"!==e)&&X(),65535>=t?String.fromCharCode(t):(n=(t-65536>>10)+55296,i=(t-65536&1023)+56320,String.fromCharCode(n,i))}function w(){var e,t;for(e=Qt.charCodeAt(nn++),t=String.fromCharCode(e),92===e&&(117!==Qt.charCodeAt(nn)&&X(),++nn,e=v("u"),e&&"\\"!==e&&u(e.charCodeAt(0))||X(),t=e);dn>nn&&(e=Qt.charCodeAt(nn),l(e));)++nn,t+=String.fromCharCode(e),92===e&&(t=t.substr(0,t.length-1),117!==Qt.charCodeAt(nn)&&X(),++nn,e=v("u"),e&&"\\"!==e&&l(e.charCodeAt(0))||X(),t+=e);return t}function b(){var e,t;for(e=nn++;dn>nn;){if(t=Qt.charCodeAt(nn),92===t)return nn=e,w();if(!l(t))break;++nn}return Qt.slice(e,nn)}function S(){var e,t,n;return e=nn,t=92===Qt.charCodeAt(nn)?w():b(),n=1===t.length?Vt.Identifier:h(t)?Vt.Keyword:"null"===t?Vt.NullLiteral:"true"===t||"false"===t?Vt.BooleanLiteral:Vt.Identifier,{type:n,value:t,lineNumber:rn,lineStart:on,start:e,end:nn}}function C(){var e,t;switch(e={type:Vt.Punctuator,value:"",lineNumber:rn,lineStart:on,start:nn,end:nn},t=Qt[nn]){case"(":yn.tokenize&&(yn.openParenToken=yn.tokens.length),++nn;break;case"{":yn.tokenize&&(yn.openCurlyToken=yn.tokens.length),gn.curlyStack.push("{"),++nn;break;case".":++nn,"."===Qt[nn]&&"."===Qt[nn+1]&&(nn+=2,t="...");break;case"}":++nn,gn.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++nn;break;default:t=Qt.substr(nn,4),">>>="===t?nn+=4:(t=t.substr(0,3),"==="===t||"!=="===t||">>>"===t||"<<="===t||">>="===t?nn+=3:(t=t.substr(0,2),"&&"===t||"||"===t||"=="===t||"!="===t||"+="===t||"-="===t||"*="===t||"/="===t||"++"===t||"--"===t||"<<"===t||">>"===t||"&="===t||"|="===t||"^="===t||"%="===t||"<="===t||">="===t||"=>"===t?nn+=2:(t=Qt[nn],"<>=!+-*%&|^/".indexOf(t)>=0&&++nn)))}return nn===e.start&&X(),e.end=nn,e.value=t,e}function A(e){for(var t="";dn>nn&&r(Qt[nn]);)t+=Qt[nn++];return 0===t.length&&X(),u(Qt.charCodeAt(nn))&&X(),{type:Vt.NumericLiteral,value:parseInt("0x"+t,16),lineNumber:rn,lineStart:on,start:e,end:nn}}function k(e){var t,r;for(r="";dn>nn&&(t=Qt[nn],"0"===t||"1"===t);)r+=Qt[nn++];return 0===r.length&&X(),dn>nn&&(t=Qt.charCodeAt(nn),(u(t)||n(t))&&X()),{type:Vt.NumericLiteral,value:parseInt(r,2),lineNumber:rn,lineStart:on,start:e,end:nn}}function E(e,t){var r,o;for(i(e)?(o=!0,r="0"+Qt[nn++]):(o=!1,++nn,r="");dn>nn&&i(Qt[nn]);)r+=Qt[nn++];return o||0!==r.length||X(),(u(Qt.charCodeAt(nn))||n(Qt.charCodeAt(nn)))&&X(),{type:Vt.NumericLiteral,value:parseInt(r,8),octal:o,lineNumber:rn,lineStart:on,start:t,end:nn}}function I(){var e,t;for(e=nn+1;dn>e;++e){if(t=Qt[e],"8"===t||"9"===t)return!1;if(!i(t))return!0}return!0}function O(){var e,r,o;if(o=Qt[nn],t(n(o.charCodeAt(0))||"."===o,"Numeric literal must start with a decimal digit or a decimal point"),r=nn,e="","."!==o){if(e=Qt[nn++],o=Qt[nn],"0"===e){if("x"===o||"X"===o)return++nn,A(r);if("b"===o||"B"===o)return++nn,k(r);if("o"===o||"O"===o)return E(o,r);if(i(o)&&I())return E(o,r)}for(;n(Qt.charCodeAt(nn));)e+=Qt[nn++];o=Qt[nn]}if("."===o){for(e+=Qt[nn++];n(Qt.charCodeAt(nn));)e+=Qt[nn++];o=Qt[nn]}if("e"===o||"E"===o)if(e+=Qt[nn++],o=Qt[nn],("+"===o||"-"===o)&&(e+=Qt[nn++]),n(Qt.charCodeAt(nn)))for(;n(Qt.charCodeAt(nn));)e+=Qt[nn++];else X();return u(Qt.charCodeAt(nn))&&X(),{type:Vt.NumericLiteral,value:parseFloat(e),lineNumber:rn,lineStart:on,start:r,end:nn}}function D(){var e,n,r,a,u,l="",c=!1;for(e=Qt[nn],t("'"===e||'"'===e,"String literal must starts with a quote"),n=nn,++nn;dn>nn;){if(r=Qt[nn++],r===e){e="";break}if("\\"===r)if(r=Qt[nn++],r&&s(r.charCodeAt(0)))++rn,"\r"===r&&"\n"===Qt[nn]&&++nn,on=nn;else switch(r){case"u":case"x":if("{"===Qt[nn])++nn,l+=x();else{if(a=v(r),!a)throw X();l+=a}break;case"n":l+="\n";break;case"r":l+="\r";break;case"t":l+=" ";break;case"b":l+="\b";break;case"f":l+="\f";break;case"v":l+="";break;case"8":case"9":throw X();default:i(r)?(u=o(r),c=u.octal||c,l+=String.fromCharCode(u.code)):l+=r}else{if(s(r.charCodeAt(0)))break;l+=r}}return""!==e&&X(),{type:Vt.StringLiteral,value:l,octal:c,lineNumber:fn,lineStart:pn,start:n,end:nn}}function L(){var e,t,r,o,a,u,l,c,f="";for(o=!1,u=!1,t=nn,a="`"===Qt[nn],r=2,++nn;dn>nn;){if(e=Qt[nn++],"`"===e){r=1,u=!0,o=!0;break}if("$"===e){if("{"===Qt[nn]){gn.curlyStack.push("${"),++nn,o=!0;break}f+=e}else if("\\"===e)if(e=Qt[nn++],s(e.charCodeAt(0)))++rn,"\r"===e&&"\n"===Qt[nn]&&++nn,on=nn;else switch(e){case"n":f+="\n";break;case"r":f+="\r";break;case"t":f+=" ";break;case"u":case"x":"{"===Qt[nn]?(++nn,f+=x()):(l=nn,c=v(e),c?f+=c:(nn=l,f+=e));break;case"b":f+="\b";break;case"f":f+="\f";break;case"v":f+="";break;default:"0"===e?(n(Qt.charCodeAt(nn))&&G(Zt.TemplateOctalLiteral),f+="\x00"):i(e)?G(Zt.TemplateOctalLiteral):f+=e}else s(e.charCodeAt(0))?(++rn,"\r"===e&&"\n"===Qt[nn]&&++nn,on=nn,f+="\n"):f+=e}return o||X(),a||gn.curlyStack.pop(),{type:Vt.Template,value:{cooked:f,raw:Qt.slice(t+1,nn-r)},head:a,tail:u,lineNumber:rn,lineStart:on,start:t,end:nn}}function N(e,t){var n=e;t.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,function(e,t){return parseInt(t,16)<=1114111?"x":void X(null,Zt.InvalidRegExp)}).replace(/\\u([a-fA-F0-9]{4})|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{RegExp(n)}catch(r){X(null,Zt.InvalidRegExp)}try{return new RegExp(e,t)}catch(i){return null}}function P(){var e,n,r,i,o;for(e=Qt[nn],t("/"===e,"Regular expression literal must start with a slash"),n=Qt[nn++],r=!1,i=!1;dn>nn;)if(e=Qt[nn++],n+=e,"\\"===e)e=Qt[nn++],s(e.charCodeAt(0))&&X(null,Zt.UnterminatedRegExp),n+=e;else if(s(e.charCodeAt(0)))X(null,Zt.UnterminatedRegExp);else if(r)"]"===e&&(r=!1);else{if("/"===e){i=!0;break}"["===e&&(r=!0)}return i||X(null,Zt.UnterminatedRegExp),o=n.substr(1,n.length-2),{value:o,literal:n}}function F(){var e,t,n,r;for(t="",n="";dn>nn&&(e=Qt[nn],l(e.charCodeAt(0)));)if(++nn,"\\"===e&&dn>nn)if(e=Qt[nn],"u"===e){if(++nn,r=nn,e=v("u"))for(n+=e,t+="\\u";nn>r;++r)t+=Qt[r];else nn=r,n+="u",t+="\\u";Q()}else t+="\\",Q();else n+=e,t+=e;return{value:n,literal:t}}function T(){hn=!0;var e,t,n,r;return mn=null,y(),e=nn,t=P(),n=F(),r=N(t.value,n.value),hn=!1,yn.tokenize?{type:Vt.RegularExpression,value:r,regex:{pattern:t.value,flags:n.value},lineNumber:rn,lineStart:on,start:e,end:nn}:{literal:t.literal+n.literal,value:r,regex:{pattern:t.value,flags:n.value},start:e,end:nn}}function j(){var e,t,n,r;return y(),e=nn,t={start:{line:rn,column:nn-on}},n=T(),t.end={line:rn,column:nn-on},yn.tokenize||(yn.tokens.length>0&&(r=yn.tokens[yn.tokens.length-1],r.range[0]===e&&"Punctuator"===r.type&&("/"===r.value||"/="===r.value)&&yn.tokens.pop()),yn.tokens.push({type:"RegularExpression",value:n.literal,regex:n.regex,range:[e,nn],loc:t})),n}function R(e){return e.type===Vt.Identifier||e.type===Vt.Keyword||e.type===Vt.BooleanLiteral||e.type===Vt.NullLiteral}function U(){var e,t;if(e=yn.tokens[yn.tokens.length-1],!e)return j();if("Punctuator"===e.type){if("]"===e.value)return C();if(")"===e.value)return t=yn.tokens[yn.openParenToken-1],!t||"Keyword"!==t.type||"if"!==t.value&&"while"!==t.value&&"for"!==t.value&&"with"!==t.value?C():j();if("}"===e.value){if(yn.tokens[yn.openCurlyToken-3]&&"Keyword"===yn.tokens[yn.openCurlyToken-3].type){if(t=yn.tokens[yn.openCurlyToken-4],!t)return C()}else{if(!yn.tokens[yn.openCurlyToken-4]||"Keyword"!==yn.tokens[yn.openCurlyToken-4].type)return C();if(t=yn.tokens[yn.openCurlyToken-5],!t)return j()}return Yt.indexOf(t.value)>=0?C():j()}return j()}return"Keyword"===e.type&&"this"!==e.value?j():C()}function M(){var e,t;return nn>=dn?{type:Vt.EOF,lineNumber:rn,lineStart:on,start:nn,end:nn}:(e=Qt.charCodeAt(nn),u(e)?(t=S(),en&&f(t.value)&&(t.type=Vt.Keyword),t):40===e||41===e||59===e?C():39===e||34===e?D():46===e?n(Qt.charCodeAt(nn+1))?O():C():n(e)?O():yn.tokenize&&47===e?U():96===e||125===e&&"${"===gn.curlyStack[gn.curlyStack.length-1]?L():C())}function _(){var e,t,n,r;return e={start:{line:rn,column:nn-on}},t=M(),e.end={line:rn,column:nn-on},t.type!==Vt.EOF&&(n=Qt.slice(t.start,t.end),r={type:$t[t.type],value:n,range:[t.start,t.end],loc:e},t.regex&&(r.regex={pattern:t.regex.pattern,flags:t.regex.flags}),yn.tokens.push(r)),t}function B(){var e;return hn=!0,sn=nn,un=rn,ln=on,y(),e=mn,cn=nn,fn=rn,pn=on,mn="undefined"!=typeof yn.tokens?_():M(),hn=!1,e}function z(){hn=!0,y(),sn=nn,un=rn,ln=on,cn=nn,fn=rn,pn=on,mn="undefined"!=typeof yn.tokens?_():M(),hn=!1}function H(){this.line=fn,this.column=cn-pn}function K(){this.start=new H,this.end=null}function q(e){this.start={line:e.lineNumber,column:e.start-e.lineStart},this.end=null}function W(){yn.range&&(this.range=[cn,0]),yn.loc&&(this.loc=new K)}function V(e){yn.range&&(this.range=[e.start,0]),yn.loc&&(this.loc=new q(e))}function $(e){var t,n;for(t=0;t>="===e||">>>="===e||"&="===e||"^="===e||"|="===e)}function se(){return 59===Qt.charCodeAt(cn)||re(";")?void B():void(an||(sn=cn,un=fn,ln=pn,mn.type===Vt.EOF||re("}")||X(mn)))}function ue(e){var t,n=vn,r=xn,i=wn;return vn=!0,xn=!0,wn=null,t=e(),null!==wn&&X(wn),vn=n,xn=r,wn=i,t}function le(e){var t,n=vn,r=xn,i=wn;return vn=!0,xn=!0,wn=null,t=e(),vn=vn&&n,xn=xn&&r,wn=i||wn,t}function ce(){var e,t,n=new W,r=[];for(ee("[");!re("]");)if(re(","))B(),r.push(null);else{if(re("...")){t=new W,B(),e=Je(),r.push(t.finishRestElement(e));break}r.push(de()),re("]")||ee(",")}return ee("]"),n.finishArrayPattern(r)}function fe(){var e,t,n=new W,r=re("[");if(mn.type===Vt.Identifier){if(e=Je(),re("="))return B(),t=We(),n.finishProperty("init",e,!1,new V(e).finishAssignmentPattern(e,t),!1,!1);if(!re(":"))return n.finishProperty("init",e,!1,e,!1,!0)}else e=ve();return ee(":"),t=de(),n.finishProperty("init",e,r,t,!1,!1)}function pe(){var e=new W,t=[];for(ee("{");!re("}");)t.push(fe()),re("}")||ee(",");return B(),e.finishObjectPattern(t)}function he(){return mn.type===Vt.Identifier?Je():re("[")?ce():re("{")?pe():void X(mn)}function de(){var e,t,n=mn;return e=he(),re("=")&&(B(),t=ue(We),e=new V(n).finishAssignmentPattern(e,t)),e}function me(){var e,t=[],n=new W;for(ee("[");!re("]");)re(",")?(B(),t.push(null)):re("...")?(e=new W,B(),e.finishSpreadElement(le(We)),re("]")||(xn=vn=!1,ee(",")),t.push(e)):(t.push(le(We)),re("]")||ee(","));return B(),n.finishArrayExpression(t)}function ge(e,t){var n,r;return xn=vn=!1,n=en,r=ue(bt),en&&t.firstRestricted&&Q(t.firstRestricted,t.message),en&&t.stricted&&Q(t.stricted,t.message),en=n,e.finishFunctionExpression(null,t.params,t.defaults,r)}function ye(){var e,t,n=new W;return e=At(),t=ge(n,e)}function ve(){var e,t,n=new W;switch(e=B(),e.type){case Vt.StringLiteral:case Vt.NumericLiteral:return en&&e.octal&&Q(e,Zt.StrictOctalLiteral),n.finishLiteral(e);case Vt.Identifier:case Vt.BooleanLiteral:case Vt.NullLiteral:case Vt.Keyword:return n.finishIdentifier(e.value);case Vt.Punctuator:if("["===e.value)return t=ue(We),ee("]"),t}X(e)}function xe(){switch(mn.type){case Vt.Identifier:case Vt.StringLiteral:case Vt.BooleanLiteral:case Vt.NullLiteral:case Vt.NumericLiteral:case Vt.Keyword:return!0;case Vt.Punctuator:return"["===mn.value}return!1}function we(e,t,n,r){var i,o,a;if(e.type===Vt.Identifier){if("get"===e.value&&xe())return n=re("["),t=ve(),a=new W,ee("("),ee(")"),i=ge(a,{params:[],defaults:[],stricted:null,firstRestricted:null,message:null}),r.finishProperty("get",t,n,i,!1,!1);if("set"===e.value&&xe())return n=re("["),t=ve(),a=new W,ee("("),o={params:[],defaultCount:0,defaults:[],firstRestricted:null,paramSet:{}},re(")")?Q(mn):(Ct(o),0===o.defaultCount&&(o.defaults=[])),ee(")"),i=ge(a,o),r.finishProperty("set",t,n,i,!1,!1)}return re("(")?(i=ye(),r.finishProperty("init",t,n,i,!0,!1)):null}function be(e,t,n){t===!1&&(e.type===Gt.Identifier&&"__proto__"===e.name||e.type===Gt.Literal&&"__proto__"===e.value)&&(n.value?J(Zt.DuplicateProtoProperty):n.value=!0)}function Se(e){var t,n,r,i,o=mn,a=new W;return t=re("["),n=ve(),(r=we(o,n,t,a))?(be(r.key,r.computed,e),r):(be(n,t,e),re(":")?(B(),i=le(We),a.finishProperty("init",n,t,i,!1,!1)):o.type===Vt.Identifier?re("=")?(wn=mn,B(),i=ue(We),a.finishProperty("init",n,t,new V(o).finishAssignmentPattern(n,i),!1,!0)):a.finishProperty("init",n,t,n,!1,!0):void X(mn))}function Ce(){var e=[],t={value:!1},n=new W;for(ee("{");!re("}");)e.push(Se(t)),re("}")||te();return ee("}"),n.finishObjectExpression(e)}function Ae(e){var t;switch(e.type){case Gt.Identifier:case Gt.MemberExpression:case Gt.RestElement:case Gt.AssignmentPattern:break;case Gt.SpreadElement:e.type=Gt.RestElement,Ae(e.argument);break;case Gt.ArrayExpression:for(e.type=Gt.ArrayPattern,t=0;t")||ee("=>"),{type:Jt.ArrowParameterPlaceHolder,params:[]};if(n=mn,re("..."))return e=rt(),ee(")"),re("=>")||ee("=>"),{type:Jt.ArrowParameterPlaceHolder,params:[e]};if(vn=!0,e=le(We),re(",")){for(xn=!1,t=[e];dn>cn&&re(",");){if(B(),re("...")){for(vn||X(mn),t.push(rt()),ee(")"),re("=>")||ee("=>"),vn=!1,r=0;r")){if(vn||X(mn),e.type===Gt.SequenceExpression)for(r=0;rcn&&(e.push(ue(We)),!re(")"));)te();return ee(")"),e}function Le(){var e,t=new W;return e=B(),R(e)||X(e),t.finishIdentifier(e.value)}function Ne(){return ee("."),Le()}function Pe(){var e;return ee("["),e=ue(Ve),ee("]"),e}function Fe(){var e,t,n=new W;return ne("new"),e=ue(je),t=re("(")?De():[],xn=vn=!1,n.finishNewExpression(e,t)}function Te(){var e,t,n,r,i,o=gn.allowIn;for(i=mn,gn.allowIn=!0,ie("super")&&gn.inFunctionBody?(t=new W,B(),t=t.finishSuper(),re("(")||re(".")||re("[")||X(mn)):t=le(ie("new")?Fe:Oe);;)if(re("."))vn=!1,xn=!0,r=Ne(),t=new V(i).finishMemberExpression(".",t,r);else if(re("("))vn=!1,xn=!1,n=De(),t=new V(i).finishCallExpression(t,n);else if(re("["))vn=!1,xn=!0,r=Pe(),t=new V(i).finishMemberExpression("[",t,r);else{if(mn.type!==Vt.Template||!mn.head)break;e=Ee(),t=new V(i).finishTaggedTemplateExpression(t,e)}return gn.allowIn=o,t}function je(){var e,n,r,i;for(t(gn.allowIn,"callee of new expression always allow in keyword."),i=mn,ie("super")&&gn.inFunctionBody?(n=new W,B(),n=n.finishSuper(),re("[")||re(".")||X(mn)):n=le(ie("new")?Fe:Oe);;)if(re("["))vn=!1,xn=!0,r=Pe(),n=new V(i).finishMemberExpression("[",n,r);else if(re("."))vn=!1,xn=!0,r=Ne(),n=new V(i).finishMemberExpression(".",n,r);else{if(mn.type!==Vt.Template||!mn.head)break;e=Ee(),n=new V(i).finishTaggedTemplateExpression(n,e)}return n}function Re(){var e,t,n=mn;return e=le(Te),an||mn.type!==Vt.Punctuator||(re("++")||re("--"))&&(en&&e.type===Gt.Identifier&&p(e.name)&&J(Zt.StrictLHSPostfix),xn||J(Zt.InvalidLHSInAssignment),xn=vn=!1,t=B(),e=new V(n).finishPostfixExpression(t.value,e)),e}function Ue(){var e,t,n;return mn.type!==Vt.Punctuator&&mn.type!==Vt.Keyword?t=Re():re("++")||re("--")?(n=mn,e=B(),t=le(Ue),en&&t.type===Gt.Identifier&&p(t.name)&&J(Zt.StrictLHSPrefix),xn||J(Zt.InvalidLHSInAssignment),t=new V(n).finishUnaryExpression(e.value,t),xn=vn=!1):re("+")||re("-")||re("~")||re("!")?(n=mn,e=B(),t=le(Ue),t=new V(n).finishUnaryExpression(e.value,t),xn=vn=!1):ie("delete")||ie("void")||ie("typeof")?(n=mn,e=B(),t=le(Ue),t=new V(n).finishUnaryExpression(e.value,t),en&&"delete"===t.operator&&t.argument.type===Gt.Identifier&&J(Zt.StrictDelete),xn=vn=!1):t=Re(),t}function Me(e,t){var n=0;if(e.type!==Vt.Punctuator&&e.type!==Vt.Keyword)return 0;switch(e.value){case"||":n=1;break;case"&&":n=2;break;case"|":n=3;break;case"^":n=4;break;case"&":n=5;break;case"==":case"!=":case"===":case"!==":n=6;break;case"<":case">":case"<=":case">=":case"instanceof":n=7;break;case"in":n=t?7:0;break;case"<<":case">>":case">>>":n=8;break;case"+":case"-":n=9;break;case"*":case"/":case"%":n=11}return n}function _e(){var e,t,n,r,i,o,a,s,u,l;if(e=mn,u=le(Ue),r=mn,i=Me(r,gn.allowIn),0===i)return u;for(xn=vn=!1,r.prec=i,B(),t=[e,mn],a=ue(Ue),o=[u,r,a];(i=Me(mn,gn.allowIn))>0;){for(;o.length>2&&i<=o[o.length-2].prec;)a=o.pop(),s=o.pop().value,u=o.pop(),t.pop(),n=new V(t[t.length-1]).finishBinaryExpression(s,u,a),o.push(n);r=B(),r.prec=i,o.push(r),t.push(mn),n=ue(Ue),o.push(n)}for(l=o.length-1,n=o[l],t.pop();l>1;)n=new V(t.pop()).finishBinaryExpression(o[l-1].value,o[l-2],n),l-=2;return n}function Be(){var e,t,n,r,i;return i=mn,e=le(_e),re("?")&&(B(),t=gn.allowIn,gn.allowIn=!0,n=ue(We),gn.allowIn=t,ee(":"),r=ue(We),e=new V(i).finishConditionalExpression(e,n,r),xn=vn=!1),e}function ze(){return re("{")?bt():ue(We)}function He(e,n){var r;switch(n.type){case Gt.Identifier:St(e,n,n.name);break;case Gt.RestElement:He(e,n.argument);break;case Gt.AssignmentPattern:He(e,n.left);break;case Gt.ArrayPattern:for(r=0;rt;t+=1)switch(r=i[t],r.type){case Gt.AssignmentPattern:i[t]=r.left,o.push(r.right),++a,He(s,r.left);break;default:He(s,r),i[t]=r,o.push(null)}return s.message===Zt.StrictParamDupe&&(u=en?s.stricted:s.firstRestricted,X(u,s.message)),0===a&&(o=[]),{params:i,defaults:o,stricted:s.stricted,firstRestricted:s.firstRestricted,message:s.message}}function qe(e,t){var n,r;return an&&Q(mn),ee("=>"),n=en,r=ze(),en&&e.firstRestricted&&X(e.firstRestricted,e.message),en&&e.stricted&&Q(e.stricted,e.message),en=n,t.finishArrowFunctionExpression(e.params,e.defaults,r,r.type!==Gt.BlockStatement)}function We(){var e,t,n,r,i;return i=mn,e=mn,t=Be(),t.type===Jt.ArrowParameterPlaceHolder||re("=>")?(xn=vn=!1,r=Ke(t),r?(wn=null,qe(r,new V(i))):t):(ae()&&(xn||J(Zt.InvalidLHSInAssignment),en&&t.type===Gt.Identifier&&p(t.name)&&Q(e,Zt.StrictLHSAssignment),re("=")?Ae(t):xn=vn=!1,e=B(),n=ue(We),t=new V(i).finishAssignmentExpression(e.value,t,n),wn=null),t)}function Ve(){var e,t,n=mn;if(e=ue(We),re(",")){for(t=[e];dn>cn&&re(",");)B(),t.push(ue(We));e=new V(n).finishSequenceExpression(t)}return e}function $e(){if(mn.type===Vt.Keyword)switch(mn.value){case"export":return"module"!==tn&&Q(mn,Zt.IllegalExportDeclaration),jt();case"import":return"module"!==tn&&Q(mn,Zt.IllegalImportDeclaration),Bt();case"const":case"let":return nt({inFor:!1});case"function":return kt(new W);case"class":return Ot()}return wt()}function Ye(){for(var e=[];dn>cn&&!re("}");)e.push($e());return e}function Ge(){var e,t=new W;return ee("{"),e=Ye(),ee("}"),t.finishBlockStatement(e)}function Je(){var e,t=new W;return e=B(),e.type!==Vt.Identifier&&(en&&e.type===Vt.Keyword&&f(e.value)?Q(e,Zt.StrictReservedWord):X(e)),t.finishIdentifier(e.value)}function Ze(){var e,t=null,n=new W;return e=he(),en&&p(e.name)&&J(Zt.StrictVarName),re("=")?(B(),t=ue(We)):e.type!==Gt.Identifier&&ee("="),n.finishVariableDeclarator(e,t)}function Xe(){var e=[];do{if(e.push(Ze()),!re(","))break;B()}while(dn>cn);return e}function Qe(e){var t;return ne("var"),t=Xe(),se(),e.finishVariableDeclaration(t)}function et(e,t){var n,r=null,i=new W;return n=he(),en&&n.type===Gt.Identifier&&p(n.name)&&J(Zt.StrictVarName),"const"===e?ie("in")||(ee("="),r=ue(We)):(!t.inFor&&n.type!==Gt.Identifier||re("="))&&(ee("="),r=ue(We)),i.finishVariableDeclarator(n,r)}function tt(e,t){var n=[];do{if(n.push(et(e,t)),!re(","))break;B()}while(dn>cn);return n}function nt(e){var n,r,i=new W;return n=B().value,t("let"===n||"const"===n,"Lexical declaration must be either let or const"),r=tt(n,e),se(),i.finishLexicalDeclaration(r,n)}function rt(){var e,t=new W;return B(),re("{")&&G(Zt.ObjectPatternAsRestParameter),e=Je(),re("=")&&G(Zt.DefaultRestParameter),re(")")||G(Zt.ParameterAfterRestParameter),t.finishRestElement(e)}function it(e){return ee(";"),e.finishEmptyStatement()}function ot(e){var t=Ve();return se(),e.finishExpressionStatement(t)}function at(e){var t,n,r;return ne("if"),ee("("),t=Ve(),ee(")"),n=wt(),ie("else")?(B(),r=wt()):r=null,e.finishIfStatement(t,n,r)}function st(e){var t,n,r;return ne("do"),r=gn.inIteration,gn.inIteration=!0,t=wt(),gn.inIteration=r,ne("while"),ee("("),n=Ve(),ee(")"),re(";")&&B(),e.finishDoWhileStatement(t,n)}function ut(e){var t,n,r;return ne("while"),ee("("),t=Ve(),ee(")"),r=gn.inIteration,gn.inIteration=!0,n=wt(),gn.inIteration=r,e.finishWhileStatement(t,n)}function lt(e){var t,n,r,i,o,a,s,u,l,c,f,p=gn.allowIn;if(t=i=o=null,ne("for"),ee("("),re(";"))B();else if(ie("var"))t=new W,B(),gn.allowIn=!1,t=t.finishVariableDeclaration(Xe()),gn.allowIn=p,1===t.declarations.length&&ie("in")?(B(),a=t,s=Ve(),t=null):ee(";");else if(ie("const")||ie("let"))t=new W,u=B().value,gn.allowIn=!1,l=tt(u,{inFor:!0}),gn.allowIn=p,1===l.length&&null===l[0].init&&ie("in")?(t=t.finishLexicalDeclaration(l,u),B(),a=t,s=Ve(),t=null):(se(),t=t.finishLexicalDeclaration(l,u));else if(r=mn,gn.allowIn=!1,t=le(We),gn.allowIn=p,ie("in"))xn||J(Zt.InvalidLHSInForIn),B(),Ae(t),a=t,s=Ve(),t=null;else{if(re(",")){for(n=[t];re(",");)B(),n.push(ue(We));t=new V(r).finishSequenceExpression(n)}ee(";")}return"undefined"==typeof a&&(re(";")||(i=Ve()),ee(";"),re(")")||(o=Ve())),ee(")"),f=gn.inIteration,gn.inIteration=!0,c=ue(wt),gn.inIteration=f,"undefined"==typeof a?e.finishForStatement(t,i,o,c):e.finishForInStatement(a,s,c)}function ct(e){var t,n=null;return ne("continue"),59===Qt.charCodeAt(cn)?(B(),gn.inIteration||G(Zt.IllegalContinue),e.finishContinueStatement(null)):an?(gn.inIteration||G(Zt.IllegalContinue),e.finishContinueStatement(null)):(mn.type===Vt.Identifier&&(n=Je(),t="$"+n.name,Object.prototype.hasOwnProperty.call(gn.labelSet,t)||G(Zt.UnknownLabel,n.name)),se(),null!==n||gn.inIteration||G(Zt.IllegalContinue),e.finishContinueStatement(n))}function ft(e){var t,n=null;return ne("break"),59===Qt.charCodeAt(sn)?(B(),gn.inIteration||gn.inSwitch||G(Zt.IllegalBreak),e.finishBreakStatement(null)):an?(gn.inIteration||gn.inSwitch||G(Zt.IllegalBreak),e.finishBreakStatement(null)):(mn.type===Vt.Identifier&&(n=Je(),t="$"+n.name,Object.prototype.hasOwnProperty.call(gn.labelSet,t)||G(Zt.UnknownLabel,n.name)),se(),null!==n||gn.inIteration||gn.inSwitch||G(Zt.IllegalBreak),e.finishBreakStatement(n))}function pt(e){var t=null;return ne("return"),gn.inFunctionBody||J(Zt.IllegalReturn),32===Qt.charCodeAt(sn)&&u(Qt.charCodeAt(sn+1))?(t=Ve(),se(),e.finishReturnStatement(t)):an?e.finishReturnStatement(null):(re(";")||re("}")||mn.type===Vt.EOF||(t=Ve()),se(),e.finishReturnStatement(t))}function ht(e){var t,n;return en&&J(Zt.StrictModeWith),ne("with"),ee("("),t=Ve(),ee(")"),n=wt(),e.finishWithStatement(t,n)}function dt(){var e,t,n=[],r=new W;for(ie("default")?(B(),e=null):(ne("case"),e=Ve()),ee(":");dn>cn&&!(re("}")||ie("default")||ie("case"));)t=$e(),n.push(t);return r.finishSwitchCase(e,n)}function mt(e){var t,n,r,i,o;if(ne("switch"),ee("("),t=Ve(),ee(")"),ee("{"),n=[],re("}"))return B(),e.finishSwitchStatement(t,n);for(i=gn.inSwitch,gn.inSwitch=!0,o=!1;dn>cn&&!re("}");)r=dt(),null===r.test&&(o&&G(Zt.MultipleDefaultsInSwitch),o=!0),n.push(r);return gn.inSwitch=i,ee("}"),e.finishSwitchStatement(t,n)}function gt(e){var t;return ne("throw"),an&&G(Zt.NewlineAfterThrow),t=Ve(),se(),e.finishThrowStatement(t)}function yt(){var e,t,n=new W;return ne("catch"),ee("("),re(")")&&X(mn),e=he(),en&&p(e.name)&&J(Zt.StrictCatchVariable),ee(")"),t=Ge(),n.finishCatchClause(e,t)}function vt(e){var t,n=null,r=null;return ne("try"),t=Ge(),ie("catch")&&(n=yt()),ie("finally")&&(B(),r=Ge()),n||r||G(Zt.NoCatchOrFinally),e.finishTryStatement(t,n,r)}function xt(e){return ne("debugger"),se(),e.finishDebuggerStatement()}function wt(){var e,t,n,r,i=mn.type;if(i===Vt.EOF&&X(mn),i===Vt.Punctuator&&"{"===mn.value)return Ge();if(xn=vn=!0,r=new W,i===Vt.Punctuator)switch(mn.value){case";":return it(r);case"(":return ot(r)}else if(i===Vt.Keyword)switch(mn.value){case"break":return ft(r);case"continue":return ct(r);case"debugger":return xt(r);case"do":return st(r);case"for":return lt(r);case"function":return kt(r);case"if":return at(r);case"return":return pt(r);case"switch":return mt(r);case"throw":return gt(r);case"try":return vt(r);case"var":return Qe(r);case"while":return ut(r);case"with":return ht(r)}return e=Ve(),e.type===Gt.Identifier&&re(":")?(B(),n="$"+e.name,Object.prototype.hasOwnProperty.call(gn.labelSet,n)&&G(Zt.Redeclaration,"Label",e.name),gn.labelSet[n]=!0,t=wt(),delete gn.labelSet[n],r.finishLabeledStatement(e,t)):(se(),r.finishExpressionStatement(e))}function bt(){var e,t,n,r,i,o,a,s,u,l=[],c=new W;for(ee("{");dn>cn&&mn.type===Vt.StringLiteral&&(t=mn,e=$e(),l.push(e),e.expression.type===Gt.Literal);)n=Qt.slice(t.start+1,t.end-1),"use strict"===n?(en=!0,r&&Q(r,Zt.StrictOctalLiteral)):!r&&t.octal&&(r=t);for(i=gn.labelSet,o=gn.inIteration,a=gn.inSwitch,s=gn.inFunctionBody,u=gn.parenthesizedCount,gn.labelSet={},gn.inIteration=!1,gn.inSwitch=!1,gn.inFunctionBody=!0,gn.parenthesizedCount=0;dn>cn&&!re("}");)l.push($e());return ee("}"),gn.labelSet=i,gn.inIteration=o,gn.inSwitch=a,gn.inFunctionBody=s,gn.parenthesizedCount=u,c.finishBlockStatement(l)}function St(e,t,n){var r="$"+n;en?(p(n)&&(e.stricted=t,e.message=Zt.StrictParamName),Object.prototype.hasOwnProperty.call(e.paramSet,r)&&(e.stricted=t,e.message=Zt.StrictParamDupe)):e.firstRestricted||(p(n)?(e.firstRestricted=t,e.message=Zt.StrictParamName):f(n)?(e.firstRestricted=t,e.message=Zt.StrictReservedWord):Object.prototype.hasOwnProperty.call(e.paramSet,r)&&(e.firstRestricted=t,e.message=Zt.StrictParamDupe)),e.paramSet[r]=!0}function Ct(e){var t,n,r;return t=mn,"..."===t.value?(n=rt(),St(e,n.argument,n.argument.name),e.params.push(n),e.defaults.push(null),!1):(n=de(),St(e,t,t.value),n.type===Gt.AssignmentPattern&&(r=n.right,n=n.left,++e.defaultCount),e.params.push(n),e.defaults.push(r),!re(")"))}function At(e){var t;if(t={params:[],defaultCount:0,defaults:[],firstRestricted:e},ee("("),!re(")"))for(t.paramSet={};dn>cn&&Ct(t);)ee(",");return ee(")"),0===t.defaultCount&&(t.defaults=[]),{params:t.params,defaults:t.defaults,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}}function kt(e,t){var n,r,i,o,a,s,u,l=null,c=[],h=[];return ne("function"),t&&re("(")||(r=mn,l=Je(),en?p(r.value)&&Q(r,Zt.StrictFunctionName):p(r.value)?(a=r,s=Zt.StrictFunctionName):f(r.value)&&(a=r,s=Zt.StrictReservedWord)),o=At(a),c=o.params,h=o.defaults,i=o.stricted,a=o.firstRestricted,o.message&&(s=o.message),u=en,n=bt(),en&&a&&X(a,s),en&&i&&Q(i,s),en=u,e.finishFunctionDeclaration(l,c,h,n)}function Et(){var e,t,n,r,i,o,a,s=null,u=[],l=[],c=new W;return ne("function"),re("(")||(e=mn,s=Je(),en?p(e.value)&&Q(e,Zt.StrictFunctionName):p(e.value)?(n=e,r=Zt.StrictFunctionName):f(e.value)&&(n=e,r=Zt.StrictReservedWord)),i=At(n),u=i.params,l=i.defaults,t=i.stricted,n=i.firstRestricted,i.message&&(r=i.message),a=en,o=bt(),en&&n&&X(n,r),en&&t&&Q(t,r),en=a,c.finishFunctionExpression(s,u,l,o)}function It(){var e,t,n,r,i,o,a,s=!1;for(e=new W,ee("{"),r=[];!re("}");)re(";")?B():(i=new W,t=mn,n=!1,o=re("["),a=ve(),"static"===a.name&&xe()&&(t=mn,n=!0,o=re("["),a=ve()),i=we(t,a,o,i),i?(i["static"]=n,"init"===i.kind&&(i.kind="method"),n?i.computed||"prototype"!==(i.key.name||i.key.value.toString())||X(t,Zt.StaticPrototype):i.computed||"constructor"!==(i.key.name||i.key.value.toString())||(("method"!==i.kind||!i.method||i.value.generator)&&X(t,Zt.ConstructorSpecialMethod),s?X(t,Zt.DuplicateConstructor):s=!0,i.kind="constructor"),i.type=Gt.MethodDefinition,delete i.method,delete i.shorthand,r.push(i)):X(mn));return B(),e.finishClassBody(r)}function Ot(e){var t,n=null,r=null,i=new W,o=en;return en=!0,ne("class"),e&&mn.type!==Vt.Identifier||(n=Je()),ie("extends")&&(B(),r=ue(Te)),t=It(),en=o,i.finishClassDeclaration(n,r,t)}function Dt(){var e,t=null,n=null,r=new W,i=en;return en=!0,ne("class"),mn.type===Vt.Identifier&&(t=Je()),ie("extends")&&(B(),n=ue(Te)),e=It(),en=i,r.finishClassExpression(t,n,e)}function Lt(){var e=new W;return mn.type!==Vt.StringLiteral&&G(Zt.InvalidModuleSpecifier),e.finishLiteral(B())}function Nt(){var e,t,n,r=new W;return ie("default")?(n=new W,B(),t=n.finishIdentifier("default")):t=Je(),oe("as")&&(B(),e=Le()),r.finishExportSpecifier(t,e)}function Pt(e){var t,n=null,r=null,i=[];if(mn.type===Vt.Keyword)switch(mn.value){case"let":case"const":case"var":case"class":case"function":return n=$e(),e.finishExportNamedDeclaration(n,i,null)}if(ee("{"),!re("}"))do t=t||ie("default"),i.push(Nt());while(re(",")&&B());return ee("}"),oe("from")?(B(),r=Lt(),se()):t?G(mn.value?Zt.UnexpectedToken:Zt.MissingFromClause,mn.value):se(),e.finishExportNamedDeclaration(n,i,r)}function Ft(e){var t=null,n=null;return ne("default"),ie("function")?(t=kt(new W,!0),e.finishExportDefaultDeclaration(t)):ie("class")?(t=Ot(!0),e.finishExportDefaultDeclaration(t)):(oe("from")&&G(Zt.UnexpectedToken,mn.value),n=re("{")?Ce():re("[")?me():We(),se(),e.finishExportDefaultDeclaration(n))}function Tt(e){var t;return ee("*"),oe("from")||G(mn.value?Zt.UnexpectedToken:Zt.MissingFromClause,mn.value),B(),t=Lt(),se(),e.finishExportAllDeclaration(t)}function jt(){var e=new W;return gn.inFunctionBody&&G(Zt.IllegalExportDeclaration),ne("export"),ie("default")?Ft(e):re("*")?Tt(e):Pt(e)}function Rt(){var e,t,n=new W;return t=Le(),oe("as")&&(B(),e=Je()),n.finishImportSpecifier(e,t)}function Ut(){var e=[];if(ee("{"),!re("}"))do e.push(Rt());while(re(",")&&B());return ee("}"),e}function Mt(){var e,t=new W;return e=Le(),t.finishImportDefaultSpecifier(e)}function _t(){var e,t=new W;return ee("*"),oe("as")||G(Zt.NoAsAfterImportNamespace),B(),e=Le(),t.finishImportNamespaceSpecifier(e)}function Bt(){var e,t,n=new W;return gn.inFunctionBody&&G(Zt.IllegalImportDeclaration),ne("import"),e=[],mn.type===Vt.StringLiteral?(t=Lt(),se(),n.finishImportDeclaration(e,t)):(!ie("default")&&R(mn)&&(e.push(Mt()),re(",")&&B()),re("*")?e.push(_t()):re("{")&&(e=e.concat(Ut())),oe("from")||G(mn.value?Zt.UnexpectedToken:Zt.MissingFromClause,mn.value),B(),t=Lt(),se(),n.finishImportDeclaration(e,t))}function zt(){for(var e,t,n,r,i=[];dn>cn&&(t=mn,t.type===Vt.StringLiteral)&&(e=$e(),i.push(e),e.expression.type===Gt.Literal);)n=Qt.slice(t.start+1,t.end-1),"use strict"===n?(en=!0,r&&Q(r,Zt.StrictOctalLiteral)):!r&&t.octal&&(r=t);for(;dn>cn&&(e=$e(),"undefined"!=typeof e);)i.push(e);return i}function Ht(){var e,t;return z(),t=new W,e=zt(),t.finishProgram(e)}function Kt(){var e,t,n,r=[];for(e=0;e0?1:0,on=0,cn=nn,fn=rn,pn=on,dn=Qt.length,mn=null,gn={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1,curlyStack:[]},yn={},t=t||{},t.tokens=!0,yn.tokens=[],yn.tokenize=!0,yn.openParenToken=-1,yn.openCurlyToken=-1,yn.range="boolean"==typeof t.range&&t.range,yn.loc="boolean"==typeof t.loc&&t.loc,"boolean"==typeof t.comment&&t.comment&&(yn.comments=[]),"boolean"==typeof t.tolerant&&t.tolerant&&(yn.errors=[]);try{if(z(),mn.type===Vt.EOF)return yn.tokens;for(B();mn.type!==Vt.EOF;)try{B()}catch(i){if(yn.errors){$(i);break}throw i}Kt(),r=yn.tokens,"undefined"!=typeof yn.comments&&(r.comments=yn.comments),"undefined"!=typeof yn.errors&&(r.errors=yn.errors)}catch(o){throw o}finally{yn={}}return r}function Wt(e,t){var n,r;r=String,"string"==typeof e||e instanceof String||(e=r(e)),Qt=e,nn=0,rn=Qt.length>0?1:0,on=0,cn=nn,fn=rn,pn=on,dn=Qt.length,mn=null,gn={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1,curlyStack:[]},tn="script",en=!1,yn={},"undefined"!=typeof t&&(yn.range="boolean"==typeof t.range&&t.range,yn.loc="boolean"==typeof t.loc&&t.loc,yn.attachComment="boolean"==typeof t.attachComment&&t.attachComment,yn.loc&&null!==t.source&&void 0!==t.source&&(yn.source=r(t.source)),"boolean"==typeof t.tokens&&t.tokens&&(yn.tokens=[]),"boolean"==typeof t.comment&&t.comment&&(yn.comments=[]),"boolean"==typeof t.tolerant&&t.tolerant&&(yn.errors=[]),yn.attachComment&&(yn.range=!0,yn.comments=[],yn.bottomRightStack=[],yn.trailingComments=[],yn.leadingComments=[]),"module"===t.sourceType&&(tn=t.sourceType,en=!0));try{n=Ht(),"undefined"!=typeof yn.comments&&(n.comments=yn.comments),"undefined"!=typeof yn.tokens&&(Kt(),n.tokens=yn.tokens),"undefined"!=typeof yn.errors&&(n.errors=yn.errors)}catch(i){throw i}finally{yn={}}return n}var Vt,$t,Yt,Gt,Jt,Zt,Xt,Qt,en,tn,nn,rn,on,an,sn,un,ln,cn,fn,pn,hn,dn,mn,gn,yn,vn,xn,wn;Vt={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8,RegularExpression:9,Template:10},$t={},$t[Vt.BooleanLiteral]="Boolean",$t[Vt.EOF]="",$t[Vt.Identifier]="Identifier",$t[Vt.Keyword]="Keyword",$t[Vt.NullLiteral]="Null",$t[Vt.NumericLiteral]="Numeric",$t[Vt.Punctuator]="Punctuator",$t[Vt.StringLiteral]="String",$t[Vt.RegularExpression]="RegularExpression",$t[Vt.Template]="Template",Yt=["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="],Gt={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement"},Jt={ArrowParameterPlaceHolder:"ArrowParameterPlaceHolder"},Zt={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",DefaultRestParameter:"Unexpected token =",ObjectPatternAsRestParameter:"Unexpected token {",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ConstructorSpecialMethod:"Class constructor may not be an accessor",DuplicateConstructor:"A class may only have one constructor",StaticPrototype:"Classes may not have static property named prototype",MissingFromClause:"Unexpected token",NoAsAfterImportNamespace:"Unexpected token",InvalidModuleSpecifier:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalExportDeclaration:"Unexpected token"},Xt={NonAsciiIdentifierStart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢲऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞭꞰꞱꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭟꭤꭥꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]"),NonAsciiIdentifierPart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԯԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠ-ࢲࣤ-ॣ०-९ॱ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఀ-ఃఅ-ఌఎ-ఐఒ-నప-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಁ-ಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲഁ-ഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟ෦-෯ෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤞᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧ᪰-᪽ᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶ᳸᳹ᴀ-᷵᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚝꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞭꞰꞱꟷ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꧠ-ꧾꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭟꭤꭥꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︭︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]")},V.prototype=W.prototype={processComment:function(){var e,t,n,r,i,o=yn.bottomRightStack,a=o[o.length-1];if(!(this.type===Gt.Program&&this.body.length>0)){if(yn.trailingComments.length>0){for(n=[],r=yn.trailingComments.length-1;r>=0;--r)i=yn.trailingComments[r],i.range[0]>=this.range[1]&&(n.unshift(i),yn.trailingComments.splice(r,1));yn.trailingComments=[]}else a&&a.trailingComments&&a.trailingComments[0].range[0]>=this.range[1]&&(n=a.trailingComments,delete a.trailingComments);if(a)for(;a&&a.range[0]>=this.range[0];)e=a,a=o.pop();if(e)e.leadingComments&&e.leadingComments[e.leadingComments.length-1].range[1]<=this.range[0]&&(this.leadingComments=e.leadingComments,e.leadingComments=void 0);else if(yn.leadingComments.length>0)for(t=[],r=yn.leadingComments.length-1;r>=0;--r)i=yn.leadingComments[r],i.range[1]<=this.range[0]&&(t.unshift(i),yn.leadingComments.splice(r,1));t&&t.length>0&&(this.leadingComments=t),n&&n.length>0&&(this.trailingComments=n),o.push(this)}},finish:function(){yn.range&&(this.range[1]=sn),yn.loc&&(this.loc.end={line:un,column:sn-ln},yn.source&&(this.loc.source=yn.source)),yn.attachComment&&this.processComment()},finishArrayExpression:function(e){return this.type=Gt.ArrayExpression,this.elements=e,this.finish(),this},finishArrayPattern:function(e){return this.type=Gt.ArrayPattern,this.elements=e,this.finish(),this},finishArrowFunctionExpression:function(e,t,n,r){return this.type=Gt.ArrowFunctionExpression,this.id=null,this.params=e,this.defaults=t,this.body=n,this.generator=!1,this.expression=r,this.finish(),this},finishAssignmentExpression:function(e,t,n){return this.type=Gt.AssignmentExpression,this.operator=e,this.left=t,this.right=n,this.finish(),this},finishAssignmentPattern:function(e,t){return this.type=Gt.AssignmentPattern,this.left=e,this.right=t,this.finish(),this},finishBinaryExpression:function(e,t,n){return this.type="||"===e||"&&"===e?Gt.LogicalExpression:Gt.BinaryExpression,this.operator=e,this.left=t,this.right=n,this.finish(),this},finishBlockStatement:function(e){return this.type=Gt.BlockStatement,this.body=e,this.finish(),this},finishBreakStatement:function(e){return this.type=Gt.BreakStatement,this.label=e,this.finish(),this},finishCallExpression:function(e,t){return this.type=Gt.CallExpression,this.callee=e,this.arguments=t,this.finish(),this},finishCatchClause:function(e,t){return this.type=Gt.CatchClause,this.param=e,this.body=t,this.finish(),this},finishClassBody:function(e){return this.type=Gt.ClassBody,this.body=e,this.finish(),this},finishClassDeclaration:function(e,t,n){return this.type=Gt.ClassDeclaration,this.id=e,this.superClass=t,this.body=n,this.finish(),this},finishClassExpression:function(e,t,n){return this.type=Gt.ClassExpression,this.id=e,this.superClass=t,this.body=n,this.finish(),this},finishConditionalExpression:function(e,t,n){return this.type=Gt.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=n,this.finish(),this},finishContinueStatement:function(e){return this.type=Gt.ContinueStatement,this.label=e,this.finish(),this},finishDebuggerStatement:function(){return this.type=Gt.DebuggerStatement,this.finish(),this},finishDoWhileStatement:function(e,t){return this.type=Gt.DoWhileStatement,this.body=e,this.test=t,this.finish(),this},finishEmptyStatement:function(){return this.type=Gt.EmptyStatement,this.finish(),this},finishExpressionStatement:function(e){return this.type=Gt.ExpressionStatement,this.expression=e,this.finish(),this},finishForStatement:function(e,t,n,r){return this.type=Gt.ForStatement,this.init=e,this.test=t,this.update=n,this.body=r,this.finish(),this},finishForInStatement:function(e,t,n){return this.type=Gt.ForInStatement,this.left=e,this.right=t,this.body=n,this.each=!1,this.finish(),this},finishFunctionDeclaration:function(e,t,n,r){return this.type=Gt.FunctionDeclaration,this.id=e,this.params=t,this.defaults=n,this.body=r,this.generator=!1,this.expression=!1,this.finish(),this},finishFunctionExpression:function(e,t,n,r){return this.type=Gt.FunctionExpression,this.id=e,this.params=t,this.defaults=n,this.body=r,this.generator=!1,this.expression=!1,this.finish(),this},finishIdentifier:function(e){return this.type=Gt.Identifier,this.name=e,this.finish(),this},finishIfStatement:function(e,t,n){return this.type=Gt.IfStatement,this.test=e,this.consequent=t,this.alternate=n,this.finish(),this},finishLabeledStatement:function(e,t){return this.type=Gt.LabeledStatement,this.label=e,this.body=t,this.finish(),this},finishLiteral:function(e){return this.type=Gt.Literal,this.value=e.value,this.raw=Qt.slice(e.start,e.end),e.regex&&(this.regex=e.regex),this.finish(),this},finishMemberExpression:function(e,t,n){return this.type=Gt.MemberExpression,this.computed="["===e,this.object=t,this.property=n,this.finish(),this},finishNewExpression:function(e,t){return this.type=Gt.NewExpression,this.callee=e,this.arguments=t,this.finish(),this},finishObjectExpression:function(e){return this.type=Gt.ObjectExpression,this.properties=e,this.finish(),this},finishObjectPattern:function(e){return this.type=Gt.ObjectPattern,this.properties=e,this.finish(),this},finishPostfixExpression:function(e,t){return this.type=Gt.UpdateExpression,this.operator=e,this.argument=t,this.prefix=!1,this.finish(),this},finishProgram:function(e){return this.type=Gt.Program,this.body=e,"module"===tn&&(this.sourceType=tn),this.finish(),this},finishProperty:function(e,t,n,r,i,o){return this.type=Gt.Property,this.key=t,this.computed=n,this.value=r,this.kind=e,this.method=i,this.shorthand=o,this.finish(),this},finishRestElement:function(e){return this.type=Gt.RestElement,this.argument=e,this.finish(),this},finishReturnStatement:function(e){return this.type=Gt.ReturnStatement,this.argument=e,this.finish(),this},finishSequenceExpression:function(e){return this.type=Gt.SequenceExpression,this.expressions=e,this.finish(),this},finishSpreadElement:function(e){return this.type=Gt.SpreadElement,this.argument=e,this.finish(),this},finishSwitchCase:function(e,t){return this.type=Gt.SwitchCase,this.test=e,this.consequent=t,this.finish(),this},finishSuper:function(){return this.type=Gt.Super,this.finish(),this},finishSwitchStatement:function(e,t){return this.type=Gt.SwitchStatement,this.discriminant=e,this.cases=t,this.finish(),this},finishTaggedTemplateExpression:function(e,t){return this.type=Gt.TaggedTemplateExpression,this.tag=e,this.quasi=t,this.finish(),this},finishTemplateElement:function(e,t){return this.type=Gt.TemplateElement,this.value=e,this.tail=t,this.finish(),this},finishTemplateLiteral:function(e,t){return this.type=Gt.TemplateLiteral,this.quasis=e,this.expressions=t,this.finish(),this},finishThisExpression:function(){return this.type=Gt.ThisExpression,this.finish(),this},finishThrowStatement:function(e){return this.type=Gt.ThrowStatement,this.argument=e,this.finish(),this},finishTryStatement:function(e,t,n){return this.type=Gt.TryStatement,this.block=e,this.guardedHandlers=[],this.handlers=t?[t]:[],this.handler=t,this.finalizer=n,this.finish(),this},finishUnaryExpression:function(e,t){return this.type="++"===e||"--"===e?Gt.UpdateExpression:Gt.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0,this.finish(),this},finishVariableDeclaration:function(e){return this.type=Gt.VariableDeclaration,this.declarations=e,this.kind="var",this.finish(),this},finishLexicalDeclaration:function(e,t){return this.type=Gt.VariableDeclaration,this.declarations=e,this.kind=t,this.finish(),this},finishVariableDeclarator:function(e,t){return this.type=Gt.VariableDeclarator,this.id=e,this.init=t,this.finish(),this},finishWhileStatement:function(e,t){return this.type=Gt.WhileStatement,this.test=e,this.body=t,this.finish(),this},finishWithStatement:function(e,t){return this.type=Gt.WithStatement,this.object=e,this.body=t,this.finish(),this},finishExportSpecifier:function(e,t){return this.type=Gt.ExportSpecifier,this.exported=t||e,this.local=e,this.finish(),this},finishImportDefaultSpecifier:function(e){return this.type=Gt.ImportDefaultSpecifier,this.local=e,this.finish(),this},finishImportNamespaceSpecifier:function(e){return this.type=Gt.ImportNamespaceSpecifier,this.local=e,this.finish(),this},finishExportNamedDeclaration:function(e,t,n){return this.type=Gt.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=n,this.finish(),this},finishExportDefaultDeclaration:function(e){return this.type=Gt.ExportDefaultDeclaration,this.declaration=e,this.finish(),this},finishExportAllDeclaration:function(e){return this.type=Gt.ExportAllDeclaration,this.source=e,this.finish(),this},finishImportSpecifier:function(e,t){return this.type=Gt.ImportSpecifier,this.local=e||t,this.imported=t,this.finish(),this},finishImportDeclaration:function(e,t){return this.type=Gt.ImportDeclaration,
4 | this.specifiers=e,this.source=t,this.finish(),this}},e.version="2.2.0",e.tokenize=qt,e.parse=Wt,e.Syntax=function(){var e,t={};"function"==typeof Object.create&&(t=Object.create(null));for(e in Gt)Gt.hasOwnProperty(e)&&(t[e]=Gt[e]);return"function"==typeof Object.freeze&&Object.freeze(t),t}()})},function(e,t,n){"use strict";function r(e,t){var n,r,i,o,a,s,u;if(null===t)return{};for(n={},r=Object.keys(t),i=0,o=r.length;o>i;i+=1)a=r[i],s=String(t[a]),"!!"===a.slice(0,2)&&(a="tag:yaml.org,2002:"+a.slice(2)),u=e.compiledTypeMap[a],u&&L.call(u.styleAliases,s)&&(s=u.styleAliases[s]),n[a]=s;return n}function i(e){var t,n,r;if(t=e.toString(16).toUpperCase(),255>=e)n="x",r=2;else if(65535>=e)n="u",r=4;else{if(!(4294967295>=e))throw new E("code point within a string may not be greater than 0xFFFFFFFF");n="U",r=8}return"\\"+n+k.repeat("0",r-t.length)+t}function o(e){this.schema=e.schema||I,this.indent=Math.max(1,e.indent||2),this.skipInvalid=e.skipInvalid||!1,this.flowLevel=k.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=r(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function a(e,t){for(var n,r=k.repeat(" ",t),i=0,o=-1,a="",s=e.length;s>i;)o=e.indexOf("\n",i),-1===o?(n=e.slice(i),i=s):(n=e.slice(i,o+1),i=o+1),n.length&&"\n"!==n&&(a+=r),a+=n;return a}function s(e,t){return"\n"+k.repeat(" ",e.indent*t)}function u(e,t){var n,r,i;for(n=0,r=e.implicitTypes.length;r>n;n+=1)if(i=e.implicitTypes[n],i.resolve(t))return!0;return!1}function l(e){this.source=e,this.result="",this.checkpoint=0}function c(e,t,n,r){var i,o,s,c,p,m,g,y,v,x,w,b,S,C,A,k,E,I,O,D,L;if(0===t.length)return void(e.dump="''");if(-1!==te.indexOf(t))return void(e.dump="'"+t+"'");for(i=!0,o=t.length?t.charCodeAt(0):0,s=T===o||T===t.charCodeAt(t.length-1),(K===o||V===o||$===o||J===o)&&(i=!1),s?(i=!1,c=!1,p=!1):(c=!r,p=!r),m=!0,g=new l(t),y=!1,v=0,x=0,w=e.indent*n,b=80,40>w?b-=w:b=40,C=0;C0&&(E=t.charCodeAt(C-1),E===T&&(p=!1,c=!1)),c&&(I=C-v,v=C,I>x&&(x=I))),S!==R&&(m=!1),g.takeUpTo(C),g.escapeChar())}if(i&&u(e,t)&&(i=!1),O="",(c||p)&&(D=0,t.charCodeAt(t.length-1)===P&&(D+=1,t.charCodeAt(t.length-2)===P&&(D+=1)),0===D?O="-":2===D&&(O="+")),p&&b>x&&(c=!1),y||(p=!1),i)e.dump=t;else if(m)e.dump="'"+t+"'";else if(c)L=f(t,b),e.dump=">"+O+"\n"+a(L,w);else if(p)O||(t=t.replace(/\n$/,"")),e.dump="|"+O+"\n"+a(t,w);else{if(!g)throw new Error("Failed to dump scalar value");g.finish(),e.dump='"'+g.result+'"'}}function f(e,t){var n,r="",i=0,o=e.length,a=/\n+$/.exec(e);for(a&&(o=a.index+1);o>i;)n=e.indexOf("\n",i),n>o||-1===n?(r&&(r+="\n\n"),r+=p(e.slice(i,o),t),i=o):(r&&(r+="\n\n"),r+=p(e.slice(i,n),t),i=n+1);return a&&"\n"!==a[0]&&(r+=a[0]),r}function p(e,t){if(""===e)return e;for(var n,r,i,o=/[^\s] [^\s]/g,a="",s=0,u=0,l=o.exec(e);l;)n=l.index,n-u>t&&(r=s!==u?s:n,a&&(a+="\n"),i=e.slice(u,r),a+=i,u=r+1),s=n+1,l=o.exec(e);return a&&(a+="\n"),a+=u!==s&&e.length-u>t?e.slice(u,s)+"\n"+e.slice(s+1):e.slice(u)}function h(e){return N!==e&&P!==e&&F!==e&&H!==e&&Y!==e&&G!==e&&Z!==e&&Q!==e&&U!==e&&_!==e&&z!==e&&j!==e&&X!==e&&W!==e&&B!==e&&R!==e&&M!==e&&q!==e&&!ee[e]&&!d(e)}function d(e){return!(e>=32&&126>=e||133===e||e>=160&&55295>=e||e>=57344&&65533>=e||e>=65536&&1114111>=e)}function m(e,t,n){var r,i,o="",a=e.tag;for(r=0,i=n.length;i>r;r+=1)w(e,t,n[r],!1,!1)&&(0!==r&&(o+=", "),o+=e.dump);e.tag=a,e.dump="["+o+"]"}function g(e,t,n,r){var i,o,a="",u=e.tag;for(i=0,o=n.length;o>i;i+=1)w(e,t+1,n[i],!0,!0)&&(r&&0===i||(a+=s(e,t)),a+="- "+e.dump);e.tag=u,e.dump=a||"[]"}function y(e,t,n){var r,i,o,a,s,u="",l=e.tag,c=Object.keys(n);for(r=0,i=c.length;i>r;r+=1)s="",0!==r&&(s+=", "),o=c[r],a=n[o],w(e,t,o,!1,!1)&&(e.dump.length>1024&&(s+="? "),s+=e.dump+": ",w(e,t,a,!1,!1)&&(s+=e.dump,u+=s));e.tag=l,e.dump="{"+u+"}"}function v(e,t,n,r){var i,o,a,u,l,c,f="",p=e.tag,h=Object.keys(n);if(e.sortKeys===!0)h.sort();else if("function"==typeof e.sortKeys)h.sort(e.sortKeys);else if(e.sortKeys)throw new E("sortKeys must be a boolean or a function");for(i=0,o=h.length;o>i;i+=1)c="",r&&0===i||(c+=s(e,t)),a=h[i],u=n[a],w(e,t+1,a,!0,!0,!0)&&(l=null!==e.tag&&"?"!==e.tag||e.dump&&e.dump.length>1024,l&&(c+=e.dump&&P===e.dump.charCodeAt(0)?"?":"? "),c+=e.dump,l&&(c+=s(e,t)),w(e,t+1,u,!0,l)&&(c+=e.dump&&P===e.dump.charCodeAt(0)?":":": ",c+=e.dump,f+=c));e.tag=p,e.dump=f||"{}"}function x(e,t,n){var r,i,o,a,s,u;for(i=n?e.explicitTypes:e.implicitTypes,o=0,a=i.length;a>o;o+=1)if(s=i[o],(s.instanceOf||s.predicate)&&(!s.instanceOf||"object"==typeof t&&t instanceof s.instanceOf)&&(!s.predicate||s.predicate(t))){if(e.tag=n?s.tag:"?",s.represent){if(u=e.styleMap[s.tag]||s.defaultStyle,"[object Function]"===D.call(s.represent))r=s.represent(t,u);else{if(!L.call(s.represent,u))throw new E("!<"+s.tag+'> tag resolver accepts not "'+u+'" style');r=s.represent[u](t,u)}e.dump=r}return!0}return!1}function w(e,t,n,r,i,o){e.tag=null,e.dump=n,x(e,n,!1)||x(e,n,!0);var a=D.call(e.dump);r&&(r=0>e.flowLevel||e.flowLevel>t),(null!==e.tag&&"?"!==e.tag||2!==e.indent&&t>0)&&(i=!1);var s,u,l="[object Object]"===a||"[object Array]"===a;if(l&&(s=e.duplicates.indexOf(n),u=-1!==s),u&&e.usedDuplicates[s])e.dump="*ref_"+s;else{if(l&&u&&!e.usedDuplicates[s]&&(e.usedDuplicates[s]=!0),"[object Object]"===a)r&&0!==Object.keys(e.dump).length?(v(e,t,e.dump,i),u&&(e.dump="&ref_"+s+(0===t?"\n":"")+e.dump)):(y(e,t,e.dump),u&&(e.dump="&ref_"+s+" "+e.dump));else if("[object Array]"===a)r&&0!==e.dump.length?(g(e,t,e.dump,i),u&&(e.dump="&ref_"+s+(0===t?"\n":"")+e.dump)):(m(e,t,e.dump),u&&(e.dump="&ref_"+s+" "+e.dump));else{if("[object String]"!==a){if(e.skipInvalid)return!1;throw new E("unacceptable kind of an object to dump "+a)}"?"!==e.tag&&c(e,e.dump,t,o)}null!==e.tag&&"?"!==e.tag&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function b(e,t){var n,r,i=[],o=[];for(S(e,i,o),n=0,r=o.length;r>n;n+=1)t.duplicates.push(i[o[n]]);t.usedDuplicates=new Array(r)}function S(e,t,n){var r,i,o;if(null!==e&&"object"==typeof e)if(i=t.indexOf(e),-1!==i)-1===n.indexOf(i)&&n.push(i);else if(t.push(e),Array.isArray(e))for(i=0,o=e.length;o>i;i+=1)S(e[i],t,n);else for(r=Object.keys(e),i=0,o=r.length;o>i;i+=1)S(e[r[i]],t,n)}function C(e,t){t=t||{};var n=new o(t);return b(e,n),w(n,0,e,!0,!0)?n.dump+"\n":""}function A(e,t){return C(e,k.extend({schema:O},t))}var k=n(5),E=n(6),I=n(32),O=n(12),D=Object.prototype.toString,L=Object.prototype.hasOwnProperty,N=9,P=10,F=13,T=32,j=33,R=34,U=35,M=37,_=38,B=39,z=42,H=44,K=45,q=58,W=62,V=63,$=64,Y=91,G=93,J=96,Z=123,X=124,Q=125,ee={};ee[0]="\\0",ee[7]="\\a",ee[8]="\\b",ee[9]="\\t",ee[10]="\\n",ee[11]="\\v",ee[12]="\\f",ee[13]="\\r",ee[27]="\\e",ee[34]='\\"',ee[92]="\\\\",ee[133]="\\N",ee[160]="\\_",ee[8232]="\\L",ee[8233]="\\P";var te=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];l.prototype.takeUpTo=function(e){var t;if(e checkpoint"),t.position=e,t.checkpoint=this.checkpoint,t;return this.result+=this.source.slice(this.checkpoint,e),this.checkpoint=e,this},l.prototype.escapeChar=function(){var e,t;return e=this.source.charCodeAt(this.checkpoint),t=ee[e]||i(e),this.result+=t,this.checkpoint+=1,this},l.prototype.finish=function(){this.source.length>this.checkpoint&&this.takeUpTo(this.source.length)},e.exports.dump=C,e.exports.safeDump=A},function(e,t,n){(function(e){function n(e,t){for(var n=0,r=e.length-1;r>=0;r--){var i=e[r];"."===i?e.splice(r,1):".."===i?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function r(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r=-1&&!i;o--){var a=o>=0?arguments[o]:e.cwd();if("string"!=typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(t=a+"/"+t,i="/"===a.charAt(0))}return t=n(r(t.split("/"),function(e){return!!e}),!i).join("/"),(i?"/":"")+t||"."},t.normalize=function(e){var i=t.isAbsolute(e),o="/"===a(e,-1);return e=n(r(e.split("/"),function(e){return!!e}),!i).join("/"),e||i||(e="."),e&&o&&(e+="/"),(i?"/":"")+e},t.isAbsolute=function(e){return"/"===e.charAt(0)},t.join=function(){var e=Array.prototype.slice.call(arguments,0);return t.normalize(r(e,function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},t.relative=function(e,n){function r(e){for(var t=0;t=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}e=t.resolve(e).substr(1),n=t.resolve(n).substr(1);for(var i=r(e.split("/")),o=r(n.split("/")),a=Math.min(i.length,o.length),s=a,u=0;a>u;u++)if(i[u]!==o[u]){s=u;break}for(var l=[],u=s;ut&&(t=e.length+t),e.substr(t,n)}}).call(t,n(8))},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=Object.assign,e.exports=t["default"]}]);
5 | //# sourceMappingURL=index.min.js.map
--------------------------------------------------------------------------------