diff --git a/js/node_modules/.bin/babylon b/js/node_modules/.bin/babylon deleted file mode 120000 index c2adc01..0000000 --- a/js/node_modules/.bin/babylon +++ /dev/null @@ -1 +0,0 @@ -../babylon/bin/babylon.js \ No newline at end of file diff --git a/js/node_modules/.bin/repeating b/js/node_modules/.bin/repeating deleted file mode 120000 index cdedec3..0000000 --- a/js/node_modules/.bin/repeating +++ /dev/null @@ -1 +0,0 @@ -../repeating/cli.js \ No newline at end of file diff --git a/js/node_modules/ansi-regex/index.js b/js/node_modules/ansi-regex/index.js deleted file mode 100644 index 4906755..0000000 --- a/js/node_modules/ansi-regex/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -module.exports = function () { - return /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g; -}; diff --git a/js/node_modules/ansi-regex/license b/js/node_modules/ansi-regex/license deleted file mode 100644 index 654d0bf..0000000 --- a/js/node_modules/ansi-regex/license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/js/node_modules/ansi-regex/package.json b/js/node_modules/ansi-regex/package.json deleted file mode 100644 index 1310295..0000000 --- a/js/node_modules/ansi-regex/package.json +++ /dev/null @@ -1,112 +0,0 @@ -{ - "_args": [ - [ - "ansi-regex@^2.0.0", - "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/has-ansi" - ] - ], - "_from": "ansi-regex@>=2.0.0 <3.0.0", - "_id": "ansi-regex@2.0.0", - "_inCache": true, - "_location": "/ansi-regex", - "_nodeVersion": "0.12.5", - "_npmUser": { - "email": "sindresorhus@gmail.com", - "name": "sindresorhus" - }, - "_npmVersion": "2.11.2", - "_phantomChildren": {}, - "_requested": { - "name": "ansi-regex", - "raw": "ansi-regex@^2.0.0", - "rawSpec": "^2.0.0", - "scope": null, - "spec": ">=2.0.0 <3.0.0", - "type": "range" - }, - "_requiredBy": [ - "/has-ansi", - "/strip-ansi" - ], - "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", - "_shasum": "c5061b6e0ef8a81775e50f5d66151bf6bf371107", - "_shrinkwrap": null, - "_spec": "ansi-regex@^2.0.0", - "_where": "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/has-ansi", - "author": { - "email": "sindresorhus@gmail.com", - "name": "Sindre Sorhus", - "url": "sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/sindresorhus/ansi-regex/issues" - }, - "dependencies": {}, - "description": "Regular expression for matching ANSI escape codes", - "devDependencies": { - "mocha": "*" - }, - "directories": {}, - "dist": { - "shasum": "c5061b6e0ef8a81775e50f5d66151bf6bf371107", - "tarball": "http://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" - }, - "engines": { - "node": ">=0.10.0" - }, - "files": [ - "index.js" - ], - "gitHead": "57c3f2941a73079fa8b081e02a522e3d29913e2f", - "homepage": "https://github.com/sindresorhus/ansi-regex", - "installable": true, - "keywords": [ - "256", - "ansi", - "cli", - "color", - "colors", - "colour", - "command-line", - "console", - "escape", - "find", - "formatting", - "match", - "pattern", - "re", - "regex", - "regexp", - "rgb", - "shell", - "string", - "styles", - "terminal", - "test", - "text", - "tty", - "xterm" - ], - "license": "MIT", - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - { - "name": "jbnicolai", - "email": "jappelman@xebia.com" - } - ], - "name": "ansi-regex", - "optionalDependencies": {}, - "repository": { - "type": "git", - "url": "https://github.com/sindresorhus/ansi-regex" - }, - "scripts": { - "test": "mocha test/test.js", - "view-supported": "node test/viewCodes.js" - }, - "version": "2.0.0" -} diff --git a/js/node_modules/ansi-regex/readme.md b/js/node_modules/ansi-regex/readme.md deleted file mode 100644 index 1a4894e..0000000 --- a/js/node_modules/ansi-regex/readme.md +++ /dev/null @@ -1,31 +0,0 @@ -# ansi-regex [![Build Status](https://travis-ci.org/sindresorhus/ansi-regex.svg?branch=master)](https://travis-ci.org/sindresorhus/ansi-regex) - -> Regular expression for matching [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code) - - -## Install - -``` -$ npm install --save ansi-regex -``` - - -## Usage - -```js -var ansiRegex = require('ansi-regex'); - -ansiRegex().test('\u001b[4mcake\u001b[0m'); -//=> true - -ansiRegex().test('cake'); -//=> false - -'\u001b[4mcake\u001b[0m'.match(ansiRegex()); -//=> ['\u001b[4m', '\u001b[0m'] -``` - - -## License - -MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/js/node_modules/ansi-styles/index.js b/js/node_modules/ansi-styles/index.js deleted file mode 100644 index 7894527..0000000 --- a/js/node_modules/ansi-styles/index.js +++ /dev/null @@ -1,65 +0,0 @@ -'use strict'; - -function assembleStyles () { - var styles = { - modifiers: { - reset: [0, 0], - bold: [1, 22], // 21 isn't widely supported and 22 does the same thing - dim: [2, 22], - italic: [3, 23], - underline: [4, 24], - inverse: [7, 27], - hidden: [8, 28], - strikethrough: [9, 29] - }, - colors: { - black: [30, 39], - red: [31, 39], - green: [32, 39], - yellow: [33, 39], - blue: [34, 39], - magenta: [35, 39], - cyan: [36, 39], - white: [37, 39], - gray: [90, 39] - }, - bgColors: { - bgBlack: [40, 49], - bgRed: [41, 49], - bgGreen: [42, 49], - bgYellow: [43, 49], - bgBlue: [44, 49], - bgMagenta: [45, 49], - bgCyan: [46, 49], - bgWhite: [47, 49] - } - }; - - // fix humans - styles.colors.grey = styles.colors.gray; - - Object.keys(styles).forEach(function (groupName) { - var group = styles[groupName]; - - Object.keys(group).forEach(function (styleName) { - var style = group[styleName]; - - styles[styleName] = group[styleName] = { - open: '\u001b[' + style[0] + 'm', - close: '\u001b[' + style[1] + 'm' - }; - }); - - Object.defineProperty(styles, groupName, { - value: group, - enumerable: false - }); - }); - - return styles; -} - -Object.defineProperty(module, 'exports', { - enumerable: true, - get: assembleStyles -}); diff --git a/js/node_modules/ansi-styles/license b/js/node_modules/ansi-styles/license deleted file mode 100644 index 654d0bf..0000000 --- a/js/node_modules/ansi-styles/license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/js/node_modules/ansi-styles/package.json b/js/node_modules/ansi-styles/package.json deleted file mode 100644 index 03a1b8d..0000000 --- a/js/node_modules/ansi-styles/package.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "_args": [ - [ - "ansi-styles@^2.1.0", - "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/chalk" - ] - ], - "_from": "ansi-styles@>=2.1.0 <3.0.0", - "_id": "ansi-styles@2.1.0", - "_inCache": true, - "_location": "/ansi-styles", - "_nodeVersion": "0.12.4", - "_npmUser": { - "email": "jappelman@xebia.com", - "name": "jbnicolai" - }, - "_npmVersion": "2.10.1", - "_phantomChildren": {}, - "_requested": { - "name": "ansi-styles", - "raw": "ansi-styles@^2.1.0", - "rawSpec": "^2.1.0", - "scope": null, - "spec": ">=2.1.0 <3.0.0", - "type": "range" - }, - "_requiredBy": [ - "/chalk" - ], - "_resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz", - "_shasum": "990f747146927b559a932bf92959163d60c0d0e2", - "_shrinkwrap": null, - "_spec": "ansi-styles@^2.1.0", - "_where": "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/chalk", - "author": { - "email": "sindresorhus@gmail.com", - "name": "Sindre Sorhus", - "url": "sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/chalk/ansi-styles/issues" - }, - "dependencies": {}, - "description": "ANSI escape codes for styling strings in the terminal", - "devDependencies": { - "mocha": "*" - }, - "directories": {}, - "dist": { - "shasum": "990f747146927b559a932bf92959163d60c0d0e2", - "tarball": "http://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" - }, - "engines": { - "node": ">=0.10.0" - }, - "files": [ - "index.js" - ], - "gitHead": "18421cbe4a2d93359ec2599a894f704be126d066", - "homepage": "https://github.com/chalk/ansi-styles", - "installable": true, - "keywords": [ - "256", - "ansi", - "cli", - "color", - "colors", - "colour", - "command-line", - "console", - "escape", - "formatting", - "log", - "logging", - "rgb", - "shell", - "string", - "styles", - "terminal", - "text", - "tty", - "xterm" - ], - "license": "MIT", - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - { - "name": "jbnicolai", - "email": "jappelman@xebia.com" - } - ], - "name": "ansi-styles", - "optionalDependencies": {}, - "repository": { - "type": "git", - "url": "https://github.com/chalk/ansi-styles" - }, - "scripts": { - "test": "mocha" - }, - "version": "2.1.0" -} diff --git a/js/node_modules/ansi-styles/readme.md b/js/node_modules/ansi-styles/readme.md deleted file mode 100644 index 3f933f6..0000000 --- a/js/node_modules/ansi-styles/readme.md +++ /dev/null @@ -1,86 +0,0 @@ -# ansi-styles [![Build Status](https://travis-ci.org/chalk/ansi-styles.svg?branch=master)](https://travis-ci.org/chalk/ansi-styles) - -> [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) for styling strings in the terminal - -You probably want the higher-level [chalk](https://github.com/chalk/chalk) module for styling your strings. - -![](screenshot.png) - - -## Install - -``` -$ npm install --save ansi-styles -``` - - -## Usage - -```js -var ansi = require('ansi-styles'); - -console.log(ansi.green.open + 'Hello world!' + ansi.green.close); -``` - - -## API - -Each style has an `open` and `close` property. - - -## Styles - -### Modifiers - -- `reset` -- `bold` -- `dim` -- `italic` *(not widely supported)* -- `underline` -- `inverse` -- `hidden` -- `strikethrough` *(not widely supported)* - -### Colors - -- `black` -- `red` -- `green` -- `yellow` -- `blue` -- `magenta` -- `cyan` -- `white` -- `gray` - -### Background colors - -- `bgBlack` -- `bgRed` -- `bgGreen` -- `bgYellow` -- `bgBlue` -- `bgMagenta` -- `bgCyan` -- `bgWhite` - - -## Advanced usage - -By default you get a map of styles, but the styles are also available as groups. They are non-enumerable so they don't show up unless you access them explicitly. This makes it easier to expose only a subset in a higher-level module. - -- `ansi.modifiers` -- `ansi.colors` -- `ansi.bgColors` - - -###### Example - -```js -console.log(ansi.colors.green.open); -``` - - -## License - -MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/js/node_modules/babel-code-frame/.npmignore b/js/node_modules/babel-code-frame/.npmignore deleted file mode 100644 index a57582c..0000000 --- a/js/node_modules/babel-code-frame/.npmignore +++ /dev/null @@ -1 +0,0 @@ -/src diff --git a/js/node_modules/babel-code-frame/README.md b/js/node_modules/babel-code-frame/README.md deleted file mode 100644 index b9a5c6c..0000000 --- a/js/node_modules/babel-code-frame/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# babel-code-frame - -> Generate errors that contain a code frame that point to source locations. - -## Install - -```sh -$ npm install babel-code-frame -``` - -## Usage - -```js -import codeFrame from 'babel-code-frame'; - -const rawLines = `class Foo { - constructor() -}`; -const lineNumber = 2; -const colNumber = 16; - -const result = codeFrame(rawLines, lineNumber, colNumber, { /* options */ }); - -console.log(result); -``` - -```sh - 1 | class Foo { -> 2 | constructor() - | ^ - 3 | } -``` diff --git a/js/node_modules/babel-code-frame/lib/index.js b/js/node_modules/babel-code-frame/lib/index.js deleted file mode 100644 index ea04dac..0000000 --- a/js/node_modules/babel-code-frame/lib/index.js +++ /dev/null @@ -1,146 +0,0 @@ -/* @flow */ - -"use strict"; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -exports.__esModule = true; - -var _lineNumbers = require("line-numbers"); - -var _lineNumbers2 = _interopRequireDefault(_lineNumbers); - -var _repeating = require("repeating"); - -var _repeating2 = _interopRequireDefault(_repeating); - -var _jsTokens = require("js-tokens"); - -var _jsTokens2 = _interopRequireDefault(_jsTokens); - -var _esutils = require("esutils"); - -var _esutils2 = _interopRequireDefault(_esutils); - -var _chalk = require("chalk"); - -var _chalk2 = _interopRequireDefault(_chalk); - -/** - * Chalk styles for token types. - */ - -var defs = { - string: _chalk2["default"].red, - punctuator: _chalk2["default"].bold, - curly: _chalk2["default"].green, - parens: _chalk2["default"].blue.bold, - square: _chalk2["default"].yellow, - keyword: _chalk2["default"].cyan, - number: _chalk2["default"].magenta, - regex: _chalk2["default"].magenta, - comment: _chalk2["default"].grey, - invalid: _chalk2["default"].inverse -}; - -/** - * RegExp to test for newlines in terminal. - */ - -var NEWLINE = /\r\n|[\n\r\u2028\u2029]/; - -/** - * Get the type of token, specifying punctuator type. - */ - -function getTokenType(match) { - var token = _jsTokens2["default"].matchToToken(match); - if (token.type === "name" && _esutils2["default"].keyword.isReservedWordES6(token.value)) { - return "keyword"; - } - - if (token.type === "punctuator") { - switch (token.value) { - case "{": - case "}": - return "curly"; - case "(": - case ")": - return "parens"; - case "[": - case "]": - return "square"; - } - } - - return token.type; -} - -/** - * Highlight `text`. - */ - -function highlight(text /*: string*/) { - return text.replace(_jsTokens2["default"], function () { - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - var type = getTokenType(args); - var colorize = defs[type]; - if (colorize) { - return args[0].split(NEWLINE).map(function (str) { - return colorize(str); - }).join("\n"); - } else { - return args[0]; - } - }); -} - -/** - * Create a code frame, adding line numbers, code highlighting, and pointing to a given position. - */ - -exports["default"] = function (rawLines /*: string*/, lineNumber /*: number*/, colNumber /*: number*/) /*: string*/ { - var opts /*: Object*/ = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3]; - - colNumber = Math.max(colNumber, 0); - - var highlighted = opts.highlightCode && _chalk2["default"].supportsColor; - if (highlighted) rawLines = highlight(rawLines); - - var lines = rawLines.split(NEWLINE); - var start = Math.max(lineNumber - 3, 0); - var end = Math.min(lines.length, lineNumber + 3); - - if (!lineNumber && !colNumber) { - start = 0; - end = lines.length; - } - - var frame = _lineNumbers2["default"](lines.slice(start, end), { - start: start + 1, - before: " ", - after: " | ", - transform: function transform(params) { - if (params.number !== lineNumber) { - return; - } - - if (colNumber) { - params.line += "\n" + params.before + _repeating2["default"](" ", params.width) + params.after + _repeating2["default"](" ", colNumber - 1) + "^"; - } - - params.before = params.before.replace(/^./, ">"); - } - }).join("\n"); - - if (highlighted) { - return _chalk2["default"].reset(frame); - } else { - return frame; - } -}; - -module.exports = exports["default"]; \ No newline at end of file diff --git a/js/node_modules/babel-code-frame/package.json b/js/node_modules/babel-code-frame/package.json deleted file mode 100644 index 84b8126..0000000 --- a/js/node_modules/babel-code-frame/package.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "_args": [ - [ - "babel-code-frame@^6.1.18", - "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/babel-traverse" - ] - ], - "_from": "babel-code-frame@>=6.1.18 <7.0.0", - "_id": "babel-code-frame@6.1.18", - "_inCache": true, - "_location": "/babel-code-frame", - "_nodeVersion": "4.1.0", - "_npmUser": { - "email": "sebmck@gmail.com", - "name": "sebmck" - }, - "_npmVersion": "3.3.10", - "_phantomChildren": {}, - "_requested": { - "name": "babel-code-frame", - "raw": "babel-code-frame@^6.1.18", - "rawSpec": "^6.1.18", - "scope": null, - "spec": ">=6.1.18 <7.0.0", - "type": "range" - }, - "_requiredBy": [ - "/babel-traverse" - ], - "_resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.1.18.tgz", - "_shasum": "0af962908b31b272cf8ca893c1236486a756f9a5", - "_shrinkwrap": null, - "_spec": "babel-code-frame@^6.1.18", - "_where": "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/babel-traverse", - "author": { - "email": "sebmck@gmail.com", - "name": "Sebastian McKenzie" - }, - "dependencies": { - "babel-runtime": "^5.0.0", - "chalk": "^1.1.0", - "esutils": "^2.0.2", - "js-tokens": "^1.0.1", - "line-numbers": "^0.2.0", - "repeating": "^1.1.3" - }, - "description": "Generate errors that contain a code frame that point to source locations.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "0af962908b31b272cf8ca893c1236486a756f9a5", - "tarball": "http://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.1.18.tgz" - }, - "homepage": "https://babeljs.io/", - "installable": true, - "license": "MIT", - "main": "lib/index.js", - "maintainers": [ - { - "name": "amasad", - "email": "amjad.masad@gmail.com" - }, - { - "name": "sebmck", - "email": "sebmck@gmail.com" - }, - { - "name": "thejameskyle", - "email": "me@thejameskyle.com" - } - ], - "name": "babel-code-frame", - "optionalDependencies": {}, - "repository": { - "type": "git", - "url": "https://github.com/babel/babel/tree/master/packages/babel-code-frame" - }, - "scripts": {}, - "version": "6.1.18" -} diff --git a/js/node_modules/babel-code-frame/test/index.js b/js/node_modules/babel-code-frame/test/index.js deleted file mode 100644 index 02a36f9..0000000 --- a/js/node_modules/babel-code-frame/test/index.js +++ /dev/null @@ -1,5 +0,0 @@ -var buildCodeFrame = require(".."); - -suite("babel-code-frame", function () { - -}); diff --git a/js/node_modules/babel-helper-builder-react-jsx/.npmignore b/js/node_modules/babel-helper-builder-react-jsx/.npmignore deleted file mode 100644 index 47cdd2c..0000000 --- a/js/node_modules/babel-helper-builder-react-jsx/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -src -test -node_modules diff --git a/js/node_modules/babel-helper-builder-react-jsx/README.md b/js/node_modules/babel-helper-builder-react-jsx/README.md deleted file mode 100644 index 895857e..0000000 --- a/js/node_modules/babel-helper-builder-react-jsx/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# babel-helper-builder-react-jsx - -## Usage - -```javascript -type ElementState = { - tagExpr: Object; // tag node - tagName: string; // raw string tag name - args: Array; // array of call arguments - call?: Object; // optional call property that can be set to override the call expression returned - pre?: Function; // function called with (state: ElementState) before building attribs - post?: Function; // function called with (state: ElementState) after building attribs -}; - -require("babel-helper-builder-react-jsx")({ - pre: function (state: ElementState) { - // called before building the element - }, - - post: function (state: ElementState) { - // called after building the element - } -}); -``` diff --git a/js/node_modules/babel-helper-builder-react-jsx/lib/index.js b/js/node_modules/babel-helper-builder-react-jsx/lib/index.js deleted file mode 100644 index 90e7f31..0000000 --- a/js/node_modules/babel-helper-builder-react-jsx/lib/index.js +++ /dev/null @@ -1,180 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -exports.__esModule = true; - -var _esutils = require("esutils"); - -var _esutils2 = _interopRequireDefault(_esutils); - -var _babelTypes = require("babel-types"); - -var t = _interopRequireWildcard(_babelTypes); - -/*:: type ElementState = { - tagExpr: Object; // tag node - tagName: string; // raw string tag name - args: Array; // array of call arguments - call?: Object; // optional call property that can be set to override the call expression returned - pre?: Function; // function called with (state: ElementState) before building attribs - post?: Function; // function called with (state: ElementState) after building attribs -};*/ // function called with (state: ElementState) after building attribs - -exports["default"] = function (opts) { - var visitor = {}; - - visitor.JSXNamespacedName = function (path) { - throw path.buildCodeFrameError("Namespace tags are not supported. ReactJSX is not XML."); - }; - - visitor.JSXElement = { - exit: function exit(path, file) { - var callExpr = buildElementCall(path.get("openingElement"), file); - - callExpr.arguments = callExpr.arguments.concat(path.node.children); - - if (callExpr.arguments.length >= 3) { - callExpr._prettyCall = true; - } - - path.replaceWith(t.inherits(callExpr, path.node)); - } - }; - - return visitor; - - function convertJSXIdentifier(node, parent) { - if (t.isJSXIdentifier(node)) { - if (node.name === "this" && t.isReferenced(node, parent)) { - return t.thisExpression(); - } else if (_esutils2["default"].keyword.isIdentifierNameES6(node.name)) { - node.type = "Identifier"; - } else { - return t.stringLiteral(node.name); - } - } else if (t.isJSXMemberExpression(node)) { - return t.memberExpression(convertJSXIdentifier(node.object, node), convertJSXIdentifier(node.property, node)); - } - - return node; - } - - function convertAttributeValue(node) { - if (t.isJSXExpressionContainer(node)) { - return node.expression; - } else { - return node; - } - } - - function convertAttribute(node) { - var value = convertAttributeValue(node.value || t.booleanLiteral(true)); - - if (t.isStringLiteral(value)) { - value.value = value.value.replace(/\n\s+/g, " "); - } - - if (t.isValidIdentifier(node.name.name)) { - node.name.type = "Identifier"; - } else { - node.name = t.stringLiteral(node.name.name); - } - - return t.inherits(t.objectProperty(node.name, value), node); - } - - function buildElementCall(path, file) { - path.parent.children = t.react.buildChildren(path.parent); - - var tagExpr = convertJSXIdentifier(path.node.name, path.node); - var args = []; - - var tagName = undefined; - if (t.isIdentifier(tagExpr)) { - tagName = tagExpr.name; - } else if (t.isLiteral(tagExpr)) { - tagName = tagExpr.value; - } - - var state /*: ElementState*/ = { - tagExpr: tagExpr, - tagName: tagName, - args: args - }; - - if (opts.pre) { - opts.pre(state, file); - } - - var attribs = path.node.attributes; - if (attribs.length) { - attribs = buildOpeningElementAttributes(attribs, file); - } else { - attribs = t.nullLiteral(); - } - - args.push(attribs); - - if (opts.post) { - opts.post(state, file); - } - - return state.call || t.callExpression(state.callee, args); - } - - /** - * The logic for this is quite terse. It's because we need to - * support spread elements. We loop over all attributes, - * breaking on spreads, we then push a new object containg - * all prior attributes to an array for later processing. - */ - - function buildOpeningElementAttributes(attribs, file) { - var _props = []; - var objs = []; - - function pushProps() { - if (!_props.length) return; - - objs.push(t.objectExpression(_props)); - _props = []; - } - - while (attribs.length) { - var prop = attribs.shift(); - if (t.isJSXSpreadAttribute(prop)) { - pushProps(); - objs.push(prop.argument); - } else { - _props.push(convertAttribute(prop)); - } - } - - pushProps(); - - if (objs.length === 1) { - // only one object - attribs = objs[0]; - } else { - // looks like we have multiple objects - if (!t.isObjectExpression(objs[0])) { - objs.unshift(t.objectExpression([])); - } - - // spread it - attribs = t.callExpression(file.addHelper("extends"), objs); - } - - return attribs; - } -}; - -module.exports = exports["default"]; -// tag node -// raw string tag name -// array of call arguments -// optional call property that can be set to override the call expression returned -// function called with (state: ElementState) before building attribs \ No newline at end of file diff --git a/js/node_modules/babel-helper-builder-react-jsx/package.json b/js/node_modules/babel-helper-builder-react-jsx/package.json deleted file mode 100644 index 1465d7a..0000000 --- a/js/node_modules/babel-helper-builder-react-jsx/package.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "_args": [ - [ - "babel-helper-builder-react-jsx@^6.2.0", - "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/babel-plugin-transform-react-jsx" - ] - ], - "_from": "babel-helper-builder-react-jsx@>=6.2.0 <7.0.0", - "_id": "babel-helper-builder-react-jsx@6.2.0", - "_inCache": true, - "_location": "/babel-helper-builder-react-jsx", - "_nodeVersion": "4.1.0", - "_npmUser": { - "email": "sebmck@gmail.com", - "name": "sebmck" - }, - "_npmVersion": "3.3.10", - "_phantomChildren": {}, - "_requested": { - "name": "babel-helper-builder-react-jsx", - "raw": "babel-helper-builder-react-jsx@^6.2.0", - "rawSpec": "^6.2.0", - "scope": null, - "spec": ">=6.2.0 <7.0.0", - "type": "range" - }, - "_requiredBy": [ - "/babel-plugin-transform-react-jsx" - ], - "_resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.2.0.tgz", - "_shasum": "ec778288d684cfd98847103d178b8720a2108623", - "_shrinkwrap": null, - "_spec": "babel-helper-builder-react-jsx@^6.2.0", - "_where": "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/babel-plugin-transform-react-jsx", - "dependencies": { - "babel-runtime": "^5.0.0", - "babel-types": "^6.2.0", - "esutils": "^2.0.0", - "lodash": "^3.10.0" - }, - "description": "## Usage", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "ec778288d684cfd98847103d178b8720a2108623", - "tarball": "http://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.2.0.tgz" - }, - "installable": true, - "license": "MIT", - "main": "lib/index.js", - "maintainers": [ - { - "name": "amasad", - "email": "amjad.masad@gmail.com" - }, - { - "name": "sebmck", - "email": "sebmck@gmail.com" - }, - { - "name": "thejameskyle", - "email": "me@thejameskyle.com" - } - ], - "name": "babel-helper-builder-react-jsx", - "optionalDependencies": {}, - "repository": { - "type": "git", - "url": "https://github.com/babel/babel/tree/master/packages/babel-helper-builder-react-jsx" - }, - "scripts": {}, - "version": "6.2.0" -} diff --git a/js/node_modules/babel-messages/.npmignore b/js/node_modules/babel-messages/.npmignore deleted file mode 100644 index a57582c..0000000 --- a/js/node_modules/babel-messages/.npmignore +++ /dev/null @@ -1 +0,0 @@ -/src diff --git a/js/node_modules/babel-messages/README.md b/js/node_modules/babel-messages/README.md deleted file mode 100644 index 297cd0c..0000000 --- a/js/node_modules/babel-messages/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# babel-messages - -> Collection of debug messages used by Babel. - -## Install - -```sh -$ npm install babel-messages -``` - -## Usage - -```js -import * as messages from 'babel-messages'; - -messages.get('tailCallReassignmentDeopt'); -// > "Function reference has been..." -``` diff --git a/js/node_modules/babel-messages/lib/index.js b/js/node_modules/babel-messages/lib/index.js deleted file mode 100644 index e55433a..0000000 --- a/js/node_modules/babel-messages/lib/index.js +++ /dev/null @@ -1,94 +0,0 @@ -/* @flow */ - -"use strict"; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -exports.__esModule = true; -exports.get = get; -exports.parseArgs = parseArgs; - -var _util = require("util"); - -var util = _interopRequireWildcard(_util); - -/** - * Mapping of messages to be used in Babel. - * Messages can include $0-style placeholders. - */ - -var MESSAGES = { - tailCallReassignmentDeopt: "Function reference has been reassigned, so it will probably be dereferenced, therefore we can't optimise this with confidence", - classesIllegalBareSuper: "Illegal use of bare super", - classesIllegalSuperCall: "Direct super call is illegal in non-constructor, use super.$1() instead", - scopeDuplicateDeclaration: "Duplicate declaration $1", - settersNoRest: "Setters aren't allowed to have a rest", - noAssignmentsInForHead: "No assignments allowed in for-in/of head", - expectedMemberExpressionOrIdentifier: "Expected type MemberExpression or Identifier", - invalidParentForThisNode: "We don't know how to handle this node within the current parent - please open an issue", - readOnly: "$1 is read-only", - unknownForHead: "Unknown node type $1 in ForStatement", - didYouMean: "Did you mean $1?", - codeGeneratorDeopt: "Note: The code generator has deoptimised the styling of $1 as it exceeds the max of $2.", - missingTemplatesDirectory: "no templates directory - this is most likely the result of a broken `npm publish`. Please report to https://github.com/babel/babel/issues", - unsupportedOutputType: "Unsupported output type $1", - illegalMethodName: "Illegal method name $1", - lostTrackNodePath: "We lost track of this node's position, likely because the AST was directly manipulated", - - modulesIllegalExportName: "Illegal export $1", - modulesDuplicateDeclarations: "Duplicate module declarations with the same source but in different scopes", - - undeclaredVariable: "Reference to undeclared variable $1", - undeclaredVariableType: "Referencing a type alias outside of a type annotation", - undeclaredVariableSuggestion: "Reference to undeclared variable $1 - did you mean $2?", - - traverseNeedsParent: "You must pass a scope and parentPath unless traversing a Program/File got a $1 node", - traverseVerifyRootFunction: "You passed `traverse()` a function when it expected a visitor object, are you sure you didn't mean `{ enter: Function }`?", - traverseVerifyVisitorProperty: "You passed `traverse()` a visitor object with the property $1 that has the invalid property $2", - traverseVerifyNodeType: "You gave us a visitor for the node type $1 but it's not a valid type", - - pluginNotObject: "Plugin $2 specified in $1 was expected to return an object when invoked but returned $3", - pluginNotFunction: "Plugin $2 specified in $1 was expected to return a function but returned $3", - pluginUnknown: "Unknown plugin $1 specified in $2 at $3, attempted to resolve relative to $4", - pluginInvalidProperty: "Plugin $2 specified in $1 provided an invalid property of $3" -}; - -exports.MESSAGES = MESSAGES; -/** - * Get a message with $0 placeholders replaced by arguments. - */ - -function get(key /*: string*/) /*: string*/ { - for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - var msg = MESSAGES[key]; - if (!msg) throw new ReferenceError("Unknown message " + JSON.stringify(key)); - - // stringify args - args = parseArgs(args); - - // replace $0 placeholders with args - return msg.replace(/\$(\d+)/g, function (str, i) { - return args[i - 1]; - }); -} - -/** - * Stingify arguments to be used inside messages. - */ - -function parseArgs(args /*: Array*/) /*: Array*/ { - return args.map(function (val) { - if (val != null && val.inspect) { - return val.inspect(); - } else { - try { - return JSON.stringify(val) || val + ""; - } catch (e) { - return util.inspect(val); - } - } - }); -} \ No newline at end of file diff --git a/js/node_modules/babel-messages/package.json b/js/node_modules/babel-messages/package.json deleted file mode 100644 index d8fe571..0000000 --- a/js/node_modules/babel-messages/package.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "_args": [ - [ - "babel-messages@^6.2.0", - "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/babel-traverse" - ] - ], - "_from": "babel-messages@>=6.2.0 <7.0.0", - "_id": "babel-messages@6.2.1", - "_inCache": true, - "_location": "/babel-messages", - "_nodeVersion": "4.1.0", - "_npmUser": { - "email": "sebmck@gmail.com", - "name": "sebmck" - }, - "_npmVersion": "3.3.10", - "_phantomChildren": {}, - "_requested": { - "name": "babel-messages", - "raw": "babel-messages@^6.2.0", - "rawSpec": "^6.2.0", - "scope": null, - "spec": ">=6.2.0 <7.0.0", - "type": "range" - }, - "_requiredBy": [ - "/babel-traverse" - ], - "_resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.2.1.tgz", - "_shasum": "95f69eab049a7579390b5e2f544227edef093dce", - "_shrinkwrap": null, - "_spec": "babel-messages@^6.2.0", - "_where": "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/babel-traverse", - "author": { - "email": "sebmck@gmail.com", - "name": "Sebastian McKenzie" - }, - "dependencies": { - "babel-runtime": "^5.0.0" - }, - "description": "Collection of debug messages used by Babel.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "95f69eab049a7579390b5e2f544227edef093dce", - "tarball": "http://registry.npmjs.org/babel-messages/-/babel-messages-6.2.1.tgz" - }, - "homepage": "https://babeljs.io/", - "installable": true, - "license": "MIT", - "main": "lib/index.js", - "maintainers": [ - { - "name": "amasad", - "email": "amjad.masad@gmail.com" - }, - { - "name": "sebmck", - "email": "sebmck@gmail.com" - }, - { - "name": "thejameskyle", - "email": "me@thejameskyle.com" - } - ], - "name": "babel-messages", - "optionalDependencies": {}, - "repository": { - "type": "git", - "url": "https://github.com/babel/babel/tree/master/packages/babel-messages" - }, - "scripts": {}, - "version": "6.2.1" -} diff --git a/js/node_modules/babel-plugin-syntax-flow/.npmignore b/js/node_modules/babel-plugin-syntax-flow/.npmignore deleted file mode 100644 index cace0d6..0000000 --- a/js/node_modules/babel-plugin-syntax-flow/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -src diff --git a/js/node_modules/babel-plugin-syntax-flow/README.md b/js/node_modules/babel-plugin-syntax-flow/README.md deleted file mode 100644 index 0e4691f..0000000 --- a/js/node_modules/babel-plugin-syntax-flow/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-syntax-flow - - - -## Installation - -```sh -$ npm install babel-plugin-syntax-flow -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["syntax-flow"] -} -``` - -### Via CLI - -```sh -$ babel --plugins syntax-flow script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["syntax-flow"] -}); -``` diff --git a/js/node_modules/babel-plugin-syntax-flow/lib/index.js b/js/node_modules/babel-plugin-syntax-flow/lib/index.js deleted file mode 100644 index 5399b9e..0000000 --- a/js/node_modules/babel-plugin-syntax-flow/lib/index.js +++ /dev/null @@ -1,13 +0,0 @@ -"use strict"; - -exports.__esModule = true; - -exports["default"] = function () { - return { - manipulateOptions: function manipulateOptions(opts, parserOpts) { - parserOpts.plugins.push("flow"); - } - }; -}; - -module.exports = exports["default"]; \ No newline at end of file diff --git a/js/node_modules/babel-plugin-syntax-flow/package.json b/js/node_modules/babel-plugin-syntax-flow/package.json deleted file mode 100644 index e1af703..0000000 --- a/js/node_modules/babel-plugin-syntax-flow/package.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "_args": [ - [ - "babel-plugin-syntax-flow@^6.1.18", - "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/babel-preset-react" - ] - ], - "_from": "babel-plugin-syntax-flow@>=6.1.18 <7.0.0", - "_id": "babel-plugin-syntax-flow@6.1.18", - "_inCache": true, - "_location": "/babel-plugin-syntax-flow", - "_nodeVersion": "4.1.0", - "_npmUser": { - "email": "sebmck@gmail.com", - "name": "sebmck" - }, - "_npmVersion": "3.3.10", - "_phantomChildren": {}, - "_requested": { - "name": "babel-plugin-syntax-flow", - "raw": "babel-plugin-syntax-flow@^6.1.18", - "rawSpec": "^6.1.18", - "scope": null, - "spec": ">=6.1.18 <7.0.0", - "type": "range" - }, - "_requiredBy": [ - "/babel-plugin-transform-flow-strip-types", - "/babel-preset-react" - ], - "_resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.1.18.tgz", - "_shasum": "1927bd85739801081e8fb304e565b57a2202b9c3", - "_shrinkwrap": null, - "_spec": "babel-plugin-syntax-flow@^6.1.18", - "_where": "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/babel-preset-react", - "dependencies": { - "babel-runtime": "^5.0.0" - }, - "description": "", - "devDependencies": { - "babel-helper-plugin-test-runner": "^6.1.18" - }, - "directories": {}, - "dist": { - "shasum": "1927bd85739801081e8fb304e565b57a2202b9c3", - "tarball": "http://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.1.18.tgz" - }, - "installable": true, - "keywords": [ - "babel-plugin" - ], - "license": "MIT", - "main": "lib/index.js", - "maintainers": [ - { - "name": "amasad", - "email": "amjad.masad@gmail.com" - }, - { - "name": "sebmck", - "email": "sebmck@gmail.com" - }, - { - "name": "thejameskyle", - "email": "me@thejameskyle.com" - } - ], - "name": "babel-plugin-syntax-flow", - "optionalDependencies": {}, - "repository": { - "type": "git", - "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-flow" - }, - "scripts": {}, - "version": "6.1.18" -} diff --git a/js/node_modules/babel-plugin-syntax-jsx/.npmignore b/js/node_modules/babel-plugin-syntax-jsx/.npmignore deleted file mode 100644 index cace0d6..0000000 --- a/js/node_modules/babel-plugin-syntax-jsx/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -src diff --git a/js/node_modules/babel-plugin-syntax-jsx/README.md b/js/node_modules/babel-plugin-syntax-jsx/README.md deleted file mode 100644 index e8c7e6b..0000000 --- a/js/node_modules/babel-plugin-syntax-jsx/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-syntax-jsx - - - -## Installation - -```sh -$ npm install babel-plugin-syntax-jsx -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["syntax-jsx"] -} -``` - -### Via CLI - -```sh -$ babel --plugins syntax-jsx script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["syntax-jsx"] -}); -``` diff --git a/js/node_modules/babel-plugin-syntax-jsx/lib/index.js b/js/node_modules/babel-plugin-syntax-jsx/lib/index.js deleted file mode 100644 index c9fbcd5..0000000 --- a/js/node_modules/babel-plugin-syntax-jsx/lib/index.js +++ /dev/null @@ -1,13 +0,0 @@ -"use strict"; - -exports.__esModule = true; - -exports["default"] = function () { - return { - manipulateOptions: function manipulateOptions(opts, parserOpts) { - parserOpts.plugins.push("jsx"); - } - }; -}; - -module.exports = exports["default"]; \ No newline at end of file diff --git a/js/node_modules/babel-plugin-syntax-jsx/package.json b/js/node_modules/babel-plugin-syntax-jsx/package.json deleted file mode 100644 index 070473c..0000000 --- a/js/node_modules/babel-plugin-syntax-jsx/package.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "_args": [ - [ - "babel-plugin-syntax-jsx@^6.1.18", - "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/babel-preset-react" - ] - ], - "_from": "babel-plugin-syntax-jsx@>=6.1.18 <7.0.0", - "_id": "babel-plugin-syntax-jsx@6.1.18", - "_inCache": true, - "_location": "/babel-plugin-syntax-jsx", - "_nodeVersion": "4.1.0", - "_npmUser": { - "email": "sebmck@gmail.com", - "name": "sebmck" - }, - "_npmVersion": "3.3.10", - "_phantomChildren": {}, - "_requested": { - "name": "babel-plugin-syntax-jsx", - "raw": "babel-plugin-syntax-jsx@^6.1.18", - "rawSpec": "^6.1.18", - "scope": null, - "spec": ">=6.1.18 <7.0.0", - "type": "range" - }, - "_requiredBy": [ - "/babel-plugin-transform-react-jsx", - "/babel-plugin-transform-react-jsx-source", - "/babel-preset-react" - ], - "_resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.1.18.tgz", - "_shasum": "ec0f97ea561aca201c74137dcc54b3253c6f6818", - "_shrinkwrap": null, - "_spec": "babel-plugin-syntax-jsx@^6.1.18", - "_where": "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/babel-preset-react", - "dependencies": { - "babel-runtime": "^5.0.0" - }, - "description": "", - "devDependencies": { - "babel-helper-plugin-test-runner": "^6.1.18" - }, - "directories": {}, - "dist": { - "shasum": "ec0f97ea561aca201c74137dcc54b3253c6f6818", - "tarball": "http://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.1.18.tgz" - }, - "installable": true, - "keywords": [ - "babel-plugin" - ], - "license": "MIT", - "main": "lib/index.js", - "maintainers": [ - { - "name": "amasad", - "email": "amjad.masad@gmail.com" - }, - { - "name": "sebmck", - "email": "sebmck@gmail.com" - }, - { - "name": "thejameskyle", - "email": "me@thejameskyle.com" - } - ], - "name": "babel-plugin-syntax-jsx", - "optionalDependencies": {}, - "repository": { - "type": "git", - "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-syntax-jsx" - }, - "scripts": {}, - "version": "6.1.18" -} diff --git a/js/node_modules/babel-plugin-transform-flow-strip-types/.npmignore b/js/node_modules/babel-plugin-transform-flow-strip-types/.npmignore deleted file mode 100644 index 3185290..0000000 --- a/js/node_modules/babel-plugin-transform-flow-strip-types/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -*.log -src -test diff --git a/js/node_modules/babel-plugin-transform-flow-strip-types/README.md b/js/node_modules/babel-plugin-transform-flow-strip-types/README.md deleted file mode 100644 index f846bd2..0000000 --- a/js/node_modules/babel-plugin-transform-flow-strip-types/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-transform-flow-strip-types - -Strip flow type annotations from your output code. - -## Installation - -```sh -$ npm install babel-plugin-transform-flow-strip-types -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["transform-flow-strip-types"] -} -``` - -### Via CLI - -```sh -$ babel --plugins transform-flow-strip-types script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["transform-flow-strip-types"] -}); -``` diff --git a/js/node_modules/babel-plugin-transform-flow-strip-types/lib/index.js b/js/node_modules/babel-plugin-transform-flow-strip-types/lib/index.js deleted file mode 100644 index aa28535..0000000 --- a/js/node_modules/babel-plugin-transform-flow-strip-types/lib/index.js +++ /dev/null @@ -1,79 +0,0 @@ -"use strict"; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -exports.__esModule = true; - -exports["default"] = function (_ref2) { - var t = _ref2.types; - - var FLOW_DIRECTIVE = "@flow"; - - return { - inherits: require("babel-plugin-syntax-flow"), - - visitor: { - Program: function Program(path, _ref3) { - var comments = _ref3.file.ast.comments; - - for (var _iterator = (comments /*: Array*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var comment = _ref; - - if (comment.value.indexOf(FLOW_DIRECTIVE) >= 0) { - // remove flow directive - comment.value = comment.value.replace(FLOW_DIRECTIVE, ""); - - // remove the comment completely if it only consists of whitespace and/or stars - if (!comment.value.replace(/\*/g, "").trim()) comment.ignore = true; - } - } - }, - - Flow: function Flow(path) { - path.remove(); - }, - - ClassProperty: function ClassProperty(path) { - path.node.typeAnnotation = null; - if (!path.node.value) path.remove(); - }, - - Class: function Class(_ref4) { - var node = _ref4.node; - - node["implements"] = null; - }, - - Function: function Function(_ref5) { - var node = _ref5.node; - - for (var i = 0; i < node.params.length; i++) { - var param = node.params[i]; - param.optional = false; - } - }, - - TypeCastExpression: function TypeCastExpression(path) { - var node = path.node; - - do { - node = node.expression; - } while (t.isTypeCastExpression(node)); - path.replaceWith(node); - } - } - }; -}; - -module.exports = exports["default"]; \ No newline at end of file diff --git a/js/node_modules/babel-plugin-transform-flow-strip-types/package.json b/js/node_modules/babel-plugin-transform-flow-strip-types/package.json deleted file mode 100644 index 23986a4..0000000 --- a/js/node_modules/babel-plugin-transform-flow-strip-types/package.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "_args": [ - [ - "babel-plugin-transform-flow-strip-types@^6.1.18", - "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/babel-preset-react" - ] - ], - "_from": "babel-plugin-transform-flow-strip-types@>=6.1.18 <7.0.0", - "_id": "babel-plugin-transform-flow-strip-types@6.1.18", - "_inCache": true, - "_location": "/babel-plugin-transform-flow-strip-types", - "_nodeVersion": "4.1.0", - "_npmUser": { - "email": "sebmck@gmail.com", - "name": "sebmck" - }, - "_npmVersion": "3.3.10", - "_phantomChildren": {}, - "_requested": { - "name": "babel-plugin-transform-flow-strip-types", - "raw": "babel-plugin-transform-flow-strip-types@^6.1.18", - "rawSpec": "^6.1.18", - "scope": null, - "spec": ">=6.1.18 <7.0.0", - "type": "range" - }, - "_requiredBy": [ - "/babel-preset-react" - ], - "_resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.1.18.tgz", - "_shasum": "a06b4b9feb49e2d77be81f42e6b5b16e295b7810", - "_shrinkwrap": null, - "_spec": "babel-plugin-transform-flow-strip-types@^6.1.18", - "_where": "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/babel-preset-react", - "dependencies": { - "babel-plugin-syntax-flow": "^6.1.18", - "babel-runtime": "^5.0.0" - }, - "description": "Strip flow type annotations from your output code.", - "devDependencies": { - "babel-helper-plugin-test-runner": "^6.1.18" - }, - "directories": {}, - "dist": { - "shasum": "a06b4b9feb49e2d77be81f42e6b5b16e295b7810", - "tarball": "http://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.1.18.tgz" - }, - "installable": true, - "keywords": [ - "babel-plugin" - ], - "license": "MIT", - "main": "lib/index.js", - "maintainers": [ - { - "name": "amasad", - "email": "amjad.masad@gmail.com" - }, - { - "name": "sebmck", - "email": "sebmck@gmail.com" - }, - { - "name": "thejameskyle", - "email": "me@thejameskyle.com" - } - ], - "name": "babel-plugin-transform-flow-strip-types", - "optionalDependencies": {}, - "repository": { - "type": "git", - "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-flow-strip-types" - }, - "scripts": {}, - "version": "6.1.18" -} diff --git a/js/node_modules/babel-plugin-transform-react-display-name/.npmignore b/js/node_modules/babel-plugin-transform-react-display-name/.npmignore deleted file mode 100644 index 3185290..0000000 --- a/js/node_modules/babel-plugin-transform-react-display-name/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -*.log -src -test diff --git a/js/node_modules/babel-plugin-transform-react-display-name/README.md b/js/node_modules/babel-plugin-transform-react-display-name/README.md deleted file mode 100644 index 1eeb49c..0000000 --- a/js/node_modules/babel-plugin-transform-react-display-name/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-transform-react-display-name - -Add displayName to React.createClass calls - -## Installation - -```sh -$ npm install babel-plugin-transform-react-display-name -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["transform-react-display-name"] -} -``` - -### Via CLI - -```sh -$ babel --plugins transform-react-display-name script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["transform-react-display-name"] -}); -``` diff --git a/js/node_modules/babel-plugin-transform-react-display-name/lib/index.js b/js/node_modules/babel-plugin-transform-react-display-name/lib/index.js deleted file mode 100644 index 7720cce..0000000 --- a/js/node_modules/babel-plugin-transform-react-display-name/lib/index.js +++ /dev/null @@ -1,97 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -exports.__esModule = true; - -var _path = require("path"); - -var _path2 = _interopRequireDefault(_path); - -exports["default"] = function (_ref) { - var t = _ref.types; - - function addDisplayName(id, call) { - var props = call.arguments[0].properties; - var safe = true; - - for (var i = 0; i < props.length; i++) { - var prop = props[i]; - var key = t.toComputedKey(prop); - if (t.isLiteral(key, { value: "displayName" })) { - safe = false; - break; - } - } - - if (safe) { - props.unshift(t.objectProperty(t.identifier("displayName"), t.stringLiteral(id))); - } - } - - var isCreateClassCallExpression = t.buildMatchMemberExpression("React.createClass"); - - function isCreateClass(node) { - if (!node || !t.isCallExpression(node)) return false; - - // not React.createClass call member object - if (!isCreateClassCallExpression(node.callee)) return false; - - // no call arguments - var args = node.arguments; - if (args.length !== 1) return false; - - // first node arg is not an object - var first = args[0]; - if (!t.isObjectExpression(first)) return false; - - return true; - } - - return { - visitor: { - ExportDefaultDeclaration: function ExportDefaultDeclaration(_ref2, state) { - var node = _ref2.node; - - if (isCreateClass(node.declaration)) { - var displayName = state.file.opts.basename; - - // ./{module name}/index.js - if (displayName === "index") { - displayName = _path2["default"].basename(_path2["default"].dirname(state.file.opts.filename)); - } - - addDisplayName(displayName, node.declaration); - } - }, - - "AssignmentExpression|ObjectProperty|VariableDeclarator": function AssignmentExpressionObjectPropertyVariableDeclarator(_ref3) { - var node = _ref3.node; - - var left = undefined, - right = undefined; - - if (t.isAssignmentExpression(node)) { - left = node.left; - right = node.right; - } else if (t.isObjectProperty(node)) { - left = node.key; - right = node.value; - } else if (t.isVariableDeclarator(node)) { - left = node.id; - right = node.init; - } - - if (t.isMemberExpression(left)) { - left = left.property; - } - - if (t.isIdentifier(left) && isCreateClass(right)) { - addDisplayName(left.name, right); - } - } - } - }; -}; - -module.exports = exports["default"]; \ No newline at end of file diff --git a/js/node_modules/babel-plugin-transform-react-display-name/package.json b/js/node_modules/babel-plugin-transform-react-display-name/package.json deleted file mode 100644 index 025ceb1..0000000 --- a/js/node_modules/babel-plugin-transform-react-display-name/package.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "_args": [ - [ - "babel-plugin-transform-react-display-name@^6.1.18", - "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/babel-preset-react" - ] - ], - "_from": "babel-plugin-transform-react-display-name@>=6.1.18 <7.0.0", - "_id": "babel-plugin-transform-react-display-name@6.1.18", - "_inCache": true, - "_location": "/babel-plugin-transform-react-display-name", - "_nodeVersion": "4.1.0", - "_npmUser": { - "email": "sebmck@gmail.com", - "name": "sebmck" - }, - "_npmVersion": "3.3.10", - "_phantomChildren": {}, - "_requested": { - "name": "babel-plugin-transform-react-display-name", - "raw": "babel-plugin-transform-react-display-name@^6.1.18", - "rawSpec": "^6.1.18", - "scope": null, - "spec": ">=6.1.18 <7.0.0", - "type": "range" - }, - "_requiredBy": [ - "/babel-preset-react" - ], - "_resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.1.18.tgz", - "_shasum": "38be3833e26559a8316ae260580238cfce0ef886", - "_shrinkwrap": null, - "_spec": "babel-plugin-transform-react-display-name@^6.1.18", - "_where": "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/babel-preset-react", - "dependencies": { - "babel-runtime": "^5.0.0" - }, - "description": "Add displayName to React.createClass calls", - "devDependencies": { - "babel-helper-plugin-test-runner": "^6.1.18" - }, - "directories": {}, - "dist": { - "shasum": "38be3833e26559a8316ae260580238cfce0ef886", - "tarball": "http://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.1.18.tgz" - }, - "installable": true, - "keywords": [ - "babel-plugin" - ], - "license": "MIT", - "main": "lib/index.js", - "maintainers": [ - { - "name": "amasad", - "email": "amjad.masad@gmail.com" - }, - { - "name": "sebmck", - "email": "sebmck@gmail.com" - }, - { - "name": "thejameskyle", - "email": "me@thejameskyle.com" - } - ], - "name": "babel-plugin-transform-react-display-name", - "optionalDependencies": {}, - "repository": { - "type": "git", - "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-display-name" - }, - "scripts": {}, - "version": "6.1.18" -} diff --git a/js/node_modules/babel-plugin-transform-react-jsx-source/.npmignore b/js/node_modules/babel-plugin-transform-react-jsx-source/.npmignore deleted file mode 100644 index 3185290..0000000 --- a/js/node_modules/babel-plugin-transform-react-jsx-source/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -*.log -src -test diff --git a/js/node_modules/babel-plugin-transform-react-jsx-source/README.md b/js/node_modules/babel-plugin-transform-react-jsx-source/README.md deleted file mode 100644 index 002c1ad..0000000 --- a/js/node_modules/babel-plugin-transform-react-jsx-source/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# babel-plugin-transform-react-jsx-source - -Adds source file and line number to JSX elements. - -## Example - -###In - -``` - -``` -###Out - -``` - -``` - -## Installation - -```sh -$ npm install babel-plugin-transform-react-jsx-source -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["transform-react-jsx-source"] -} -``` - -### Via CLI - -```sh -$ babel --plugins transform-react-jsx-source script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["transform-react-jsx-source"] -}); -``` diff --git a/js/node_modules/babel-plugin-transform-react-jsx-source/lib/index.js b/js/node_modules/babel-plugin-transform-react-jsx-source/lib/index.js deleted file mode 100644 index 8da96f5..0000000 --- a/js/node_modules/babel-plugin-transform-react-jsx-source/lib/index.js +++ /dev/null @@ -1,54 +0,0 @@ - -/** -* This adds {fileName, lineNumber} annotations to React component definitions -* and to jsx tag literals. -* -* -* == JSX Literals == -* -* -* -* becomes: -* -* -*/ - -"use strict"; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -exports.__esModule = true; - -var _path = require("path"); - -var _path2 = _interopRequireDefault(_path); - -var TRACE_ID = "__source"; - -exports["default"] = function (_ref) { - var t = _ref.types; - - function makeTrace(fileName, lineNumber) { - var fileNameLiteral = fileName != null ? t.stringLiteral(fileName) : t.nullLiteral(); - var fileLineLiteral = lineNumber != null ? t.numericLiteral(lineNumber) : t.nullLiteral(); - var fileNameProperty = t.objectProperty(t.identifier("fileName"), fileNameLiteral); - var lineNumberProperty = t.objectProperty(t.identifier("lineNumber"), fileLineLiteral); - return t.objectExpression([fileNameProperty, lineNumberProperty]); - } - - var visitor = { - JSXOpeningElement: function JSXOpeningElement(node, state) { - var id = t.jSXIdentifier(TRACE_ID); - var fileName = state.file.log.filename !== "unknown" ? _path2["default"].relative(__dirname, state.file.log.filename) : null; - var trace = makeTrace(fileName, node.container.openingElement.loc.start.line); - - node.container.openingElement.attributes.push(t.jSXAttribute(id, t.jSXExpressionContainer(trace))); - } - }; - - return { - visitor: visitor - }; -}; - -module.exports = exports["default"]; \ No newline at end of file diff --git a/js/node_modules/babel-plugin-transform-react-jsx-source/package.json b/js/node_modules/babel-plugin-transform-react-jsx-source/package.json deleted file mode 100644 index 93fd2fa..0000000 --- a/js/node_modules/babel-plugin-transform-react-jsx-source/package.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "_args": [ - [ - "babel-plugin-transform-react-jsx-source@^6.1.18", - "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/babel-preset-react" - ] - ], - "_from": "babel-plugin-transform-react-jsx-source@>=6.1.18 <7.0.0", - "_id": "babel-plugin-transform-react-jsx-source@6.1.18", - "_inCache": true, - "_location": "/babel-plugin-transform-react-jsx-source", - "_nodeVersion": "4.1.0", - "_npmUser": { - "email": "sebmck@gmail.com", - "name": "sebmck" - }, - "_npmVersion": "3.3.10", - "_phantomChildren": {}, - "_requested": { - "name": "babel-plugin-transform-react-jsx-source", - "raw": "babel-plugin-transform-react-jsx-source@^6.1.18", - "rawSpec": "^6.1.18", - "scope": null, - "spec": ">=6.1.18 <7.0.0", - "type": "range" - }, - "_requiredBy": [ - "/babel-preset-react" - ], - "_resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.1.18.tgz", - "_shasum": "1753306b788feb3f3574d8964adc50b4d001a0c3", - "_shrinkwrap": null, - "_spec": "babel-plugin-transform-react-jsx-source@^6.1.18", - "_where": "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/babel-preset-react", - "dependencies": { - "babel-plugin-syntax-jsx": "^6.1.18", - "babel-runtime": "^5.0.0" - }, - "description": "Add a __source prop to all JSX Elements", - "devDependencies": { - "babel-helper-plugin-test-runner": "^6.1.18" - }, - "directories": {}, - "dist": { - "shasum": "1753306b788feb3f3574d8964adc50b4d001a0c3", - "tarball": "http://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.1.18.tgz" - }, - "installable": true, - "keywords": [ - "babel-plugin" - ], - "license": "MIT", - "main": "lib/index.js", - "maintainers": [ - { - "name": "amasad", - "email": "amjad.masad@gmail.com" - }, - { - "name": "sebmck", - "email": "sebmck@gmail.com" - }, - { - "name": "thejameskyle", - "email": "me@thejameskyle.com" - } - ], - "name": "babel-plugin-transform-react-jsx-source", - "optionalDependencies": {}, - "repository": { - "type": "git", - "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-react-jsx-source" - }, - "scripts": {}, - "version": "6.1.18" -} diff --git a/js/node_modules/babel-plugin-transform-react-jsx/.npmignore b/js/node_modules/babel-plugin-transform-react-jsx/.npmignore deleted file mode 100644 index 3185290..0000000 --- a/js/node_modules/babel-plugin-transform-react-jsx/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -*.log -src -test diff --git a/js/node_modules/babel-plugin-transform-react-jsx/README.md b/js/node_modules/babel-plugin-transform-react-jsx/README.md deleted file mode 100644 index 51e996b..0000000 --- a/js/node_modules/babel-plugin-transform-react-jsx/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-transform-react-jsx - -Turn JSX into React function calls - -## Installation - -```sh -$ npm install babel-plugin-transform-react-jsx -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["transform-react-jsx"] -} -``` - -### Via CLI - -```sh -$ babel --plugins transform-react-jsx script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["transform-react-jsx"] -}); -``` diff --git a/js/node_modules/babel-plugin-transform-react-jsx/lib/index.js b/js/node_modules/babel-plugin-transform-react-jsx/lib/index.js deleted file mode 100644 index b6b728b..0000000 --- a/js/node_modules/babel-plugin-transform-react-jsx/lib/index.js +++ /dev/null @@ -1,71 +0,0 @@ -"use strict"; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -exports.__esModule = true; - -exports["default"] = function (_ref2) { - var t = _ref2.types; - - var JSX_ANNOTATION_REGEX = /\*?\s*@jsx\s+([^\s]+)/; - - var visitor = require("babel-helper-builder-react-jsx")({ - pre: function pre(state) { - var tagName = state.tagName; - var args = state.args; - if (t.react.isCompatTag(tagName)) { - args.push(t.stringLiteral(tagName)); - } else { - args.push(state.tagExpr); - } - }, - - post: function post(state, pass) { - state.callee = pass.get("jsxIdentifier"); - } - }); - - visitor.Program = function (path, state) { - var file = state.file; - - var id = state.opts.pragma || "React.createElement"; - - for (var _iterator = (file.ast.comments /*: Array*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var comment = _ref; - - var matches = JSX_ANNOTATION_REGEX.exec(comment.value); - if (matches) { - id = matches[1]; - if (id === "React.DOM") { - throw file.buildCodeFrameError(comment, "The @jsx React.DOM pragma has been deprecated as of React 0.12"); - } else { - break; - } - } - } - - state.set("jsxIdentifier", id.split(".").map(function (name) { - return t.identifier(name); - }).reduce(function (object, property) { - return t.memberExpression(object, property); - })); - }; - - return { - inherits: require("babel-plugin-syntax-jsx"), - visitor: visitor - }; -}; - -module.exports = exports["default"]; \ No newline at end of file diff --git a/js/node_modules/babel-plugin-transform-react-jsx/package.json b/js/node_modules/babel-plugin-transform-react-jsx/package.json deleted file mode 100644 index 75afb3b..0000000 --- a/js/node_modules/babel-plugin-transform-react-jsx/package.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "_args": [ - [ - "babel-plugin-transform-react-jsx@^6.1.18", - "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/babel-preset-react" - ] - ], - "_from": "babel-plugin-transform-react-jsx@>=6.1.18 <7.0.0", - "_id": "babel-plugin-transform-react-jsx@6.2.0", - "_inCache": true, - "_location": "/babel-plugin-transform-react-jsx", - "_nodeVersion": "4.1.0", - "_npmUser": { - "email": "sebmck@gmail.com", - "name": "sebmck" - }, - "_npmVersion": "3.3.10", - "_phantomChildren": {}, - "_requested": { - "name": "babel-plugin-transform-react-jsx", - "raw": "babel-plugin-transform-react-jsx@^6.1.18", - "rawSpec": "^6.1.18", - "scope": null, - "spec": ">=6.1.18 <7.0.0", - "type": "range" - }, - "_requiredBy": [ - "/babel-preset-react" - ], - "_resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.2.0.tgz", - "_shasum": "2191567a4fb8a3a201cd225b9e32b20dd6d6ff98", - "_shrinkwrap": null, - "_spec": "babel-plugin-transform-react-jsx@^6.1.18", - "_where": "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/babel-preset-react", - "dependencies": { - "babel-helper-builder-react-jsx": "^6.2.0", - "babel-plugin-syntax-jsx": "^6.1.18", - "babel-runtime": "^5.0.0" - }, - "description": "Turn JSX into React function calls", - "devDependencies": { - "babel-helper-plugin-test-runner": "^6.1.18" - }, - "directories": {}, - "dist": { - "shasum": "2191567a4fb8a3a201cd225b9e32b20dd6d6ff98", - "tarball": "http://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.2.0.tgz" - }, - "installable": true, - "keywords": [ - "babel-plugin" - ], - "license": "MIT", - "main": "lib/index.js", - "maintainers": [ - { - "name": "amasad", - "email": "amjad.masad@gmail.com" - }, - { - "name": "sebmck", - "email": "sebmck@gmail.com" - }, - { - "name": "thejameskyle", - "email": "me@thejameskyle.com" - } - ], - "name": "babel-plugin-transform-react-jsx", - "optionalDependencies": {}, - "repository": { - "type": "git", - "url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-jsx" - }, - "scripts": {}, - "version": "6.2.0" -} diff --git a/js/node_modules/babel-preset-react/.npmignore b/js/node_modules/babel-preset-react/.npmignore deleted file mode 100644 index 47cdd2c..0000000 --- a/js/node_modules/babel-preset-react/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -src -test -node_modules diff --git a/js/node_modules/babel-preset-react/README.md b/js/node_modules/babel-preset-react/README.md deleted file mode 100644 index f09fc56..0000000 --- a/js/node_modules/babel-preset-react/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-preset-react - -> Babel preset for all React plugins. - -## Install - -```sh -$ npm install --save-dev babel-preset-react -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "presets": ["react"] -} -``` - -### Via CLI - -```sh -$ babel script.js --presets react -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - presets: ["react"] -}); -``` diff --git a/js/node_modules/babel-preset-react/index.js b/js/node_modules/babel-preset-react/index.js deleted file mode 100644 index 89f691a..0000000 --- a/js/node_modules/babel-preset-react/index.js +++ /dev/null @@ -1,16 +0,0 @@ -module.exports = { - plugins: [ - require("babel-plugin-transform-react-jsx"), - require("babel-plugin-transform-flow-strip-types"), - require("babel-plugin-syntax-flow"), - require("babel-plugin-syntax-jsx"), - require("babel-plugin-transform-react-display-name"), - ], - /*env: { - development: { - plugins: [ - require("babel-plugin-transform-react-jsx-source") - ] - } - }*/ -}; diff --git a/js/node_modules/babel-preset-react/package.json b/js/node_modules/babel-preset-react/package.json deleted file mode 100644 index cb52b00..0000000 --- a/js/node_modules/babel-preset-react/package.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "_args": [ - [ - "babel-preset-react", - "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js" - ] - ], - "_from": "babel-preset-react@*", - "_id": "babel-preset-react@6.1.18", - "_inCache": true, - "_location": "/babel-preset-react", - "_nodeVersion": "4.1.0", - "_npmUser": { - "email": "sebmck@gmail.com", - "name": "sebmck" - }, - "_npmVersion": "3.3.10", - "_phantomChildren": {}, - "_requested": { - "name": "babel-preset-react", - "raw": "babel-preset-react", - "rawSpec": "", - "scope": null, - "spec": "*", - "type": "range" - }, - "_requiredBy": [ - "#USER" - ], - "_resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.1.18.tgz", - "_shasum": "8983d779f8bf1bce476ea5a45894d472f922840a", - "_shrinkwrap": null, - "_spec": "babel-preset-react", - "_where": "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js", - "author": { - "email": "sebmck@gmail.com", - "name": "Sebastian McKenzie" - }, - "dependencies": { - "babel-plugin-syntax-flow": "^6.1.18", - "babel-plugin-syntax-jsx": "^6.1.18", - "babel-plugin-transform-flow-strip-types": "^6.1.18", - "babel-plugin-transform-react-display-name": "^6.1.18", - "babel-plugin-transform-react-jsx": "^6.1.18", - "babel-plugin-transform-react-jsx-source": "^6.1.18" - }, - "description": "Babel preset for all React plugins.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "8983d779f8bf1bce476ea5a45894d472f922840a", - "tarball": "http://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.1.18.tgz" - }, - "homepage": "https://babeljs.io/", - "installable": true, - "license": "MIT", - "main": "index.js", - "maintainers": [ - { - "name": "amasad", - "email": "amjad.masad@gmail.com" - }, - { - "name": "sebmck", - "email": "sebmck@gmail.com" - }, - { - "name": "thejameskyle", - "email": "me@thejameskyle.com" - } - ], - "name": "babel-preset-react", - "optionalDependencies": {}, - "repository": { - "type": "git", - "url": "https://github.com/babel/babel/tree/master/packages/babel-preset-react" - }, - "scripts": {}, - "version": "6.1.18" -} diff --git a/js/node_modules/babel-runtime/.npmignore b/js/node_modules/babel-runtime/.npmignore deleted file mode 100644 index 3efd5b9..0000000 --- a/js/node_modules/babel-runtime/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -scripts -node_modules diff --git a/js/node_modules/babel-runtime/README.md b/js/node_modules/babel-runtime/README.md deleted file mode 100644 index bde5507..0000000 --- a/js/node_modules/babel-runtime/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# babel-runtime - -Babel self-contained runtime - -For more information please look at [babel](https://github.com/babel/babel). diff --git a/js/node_modules/babel-runtime/core-js.js b/js/node_modules/babel-runtime/core-js.js deleted file mode 100644 index 7d56643..0000000 --- a/js/node_modules/babel-runtime/core-js.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - "default": require("core-js/library"), - __esModule: true -}; diff --git a/js/node_modules/babel-runtime/core-js/array/concat.js b/js/node_modules/babel-runtime/core-js/array/concat.js deleted file mode 100644 index f0a5ec7..0000000 --- a/js/node_modules/babel-runtime/core-js/array/concat.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/concat"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/copy-within.js b/js/node_modules/babel-runtime/core-js/array/copy-within.js deleted file mode 100644 index e9352ed..0000000 --- a/js/node_modules/babel-runtime/core-js/array/copy-within.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/copy-within"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/entries.js b/js/node_modules/babel-runtime/core-js/array/entries.js deleted file mode 100644 index ee8b9e9..0000000 --- a/js/node_modules/babel-runtime/core-js/array/entries.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/entries"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/every.js b/js/node_modules/babel-runtime/core-js/array/every.js deleted file mode 100644 index adc9319..0000000 --- a/js/node_modules/babel-runtime/core-js/array/every.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/every"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/fill.js b/js/node_modules/babel-runtime/core-js/array/fill.js deleted file mode 100644 index 3cc2fe1..0000000 --- a/js/node_modules/babel-runtime/core-js/array/fill.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/fill"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/filter.js b/js/node_modules/babel-runtime/core-js/array/filter.js deleted file mode 100644 index f73a5db..0000000 --- a/js/node_modules/babel-runtime/core-js/array/filter.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/filter"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/find-index.js b/js/node_modules/babel-runtime/core-js/array/find-index.js deleted file mode 100644 index 560caa8..0000000 --- a/js/node_modules/babel-runtime/core-js/array/find-index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/find-index"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/find.js b/js/node_modules/babel-runtime/core-js/array/find.js deleted file mode 100644 index 7763993..0000000 --- a/js/node_modules/babel-runtime/core-js/array/find.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/find"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/for-each.js b/js/node_modules/babel-runtime/core-js/array/for-each.js deleted file mode 100644 index 4808c96..0000000 --- a/js/node_modules/babel-runtime/core-js/array/for-each.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/for-each"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/from.js b/js/node_modules/babel-runtime/core-js/array/from.js deleted file mode 100644 index 8c92e81..0000000 --- a/js/node_modules/babel-runtime/core-js/array/from.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/from"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/includes.js b/js/node_modules/babel-runtime/core-js/array/includes.js deleted file mode 100644 index 602d0d8..0000000 --- a/js/node_modules/babel-runtime/core-js/array/includes.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/includes"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/index-of.js b/js/node_modules/babel-runtime/core-js/array/index-of.js deleted file mode 100644 index eb4a6ac..0000000 --- a/js/node_modules/babel-runtime/core-js/array/index-of.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/index-of"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/join.js b/js/node_modules/babel-runtime/core-js/array/join.js deleted file mode 100644 index 7dc300b..0000000 --- a/js/node_modules/babel-runtime/core-js/array/join.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/join"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/keys.js b/js/node_modules/babel-runtime/core-js/array/keys.js deleted file mode 100644 index 5008ccb..0000000 --- a/js/node_modules/babel-runtime/core-js/array/keys.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/keys"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/last-index-of.js b/js/node_modules/babel-runtime/core-js/array/last-index-of.js deleted file mode 100644 index ed92a55..0000000 --- a/js/node_modules/babel-runtime/core-js/array/last-index-of.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/last-index-of"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/map.js b/js/node_modules/babel-runtime/core-js/array/map.js deleted file mode 100644 index 0f58810..0000000 --- a/js/node_modules/babel-runtime/core-js/array/map.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/map"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/of.js b/js/node_modules/babel-runtime/core-js/array/of.js deleted file mode 100644 index d03ab62..0000000 --- a/js/node_modules/babel-runtime/core-js/array/of.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/of"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/pop.js b/js/node_modules/babel-runtime/core-js/array/pop.js deleted file mode 100644 index 9114d2f..0000000 --- a/js/node_modules/babel-runtime/core-js/array/pop.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/pop"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/push.js b/js/node_modules/babel-runtime/core-js/array/push.js deleted file mode 100644 index 0cd42be..0000000 --- a/js/node_modules/babel-runtime/core-js/array/push.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/push"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/reduce-right.js b/js/node_modules/babel-runtime/core-js/array/reduce-right.js deleted file mode 100644 index f56176c..0000000 --- a/js/node_modules/babel-runtime/core-js/array/reduce-right.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/reduce-right"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/reduce.js b/js/node_modules/babel-runtime/core-js/array/reduce.js deleted file mode 100644 index c0a2006..0000000 --- a/js/node_modules/babel-runtime/core-js/array/reduce.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/reduce"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/reverse.js b/js/node_modules/babel-runtime/core-js/array/reverse.js deleted file mode 100644 index 8892c26..0000000 --- a/js/node_modules/babel-runtime/core-js/array/reverse.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/reverse"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/shift.js b/js/node_modules/babel-runtime/core-js/array/shift.js deleted file mode 100644 index 49e66cd..0000000 --- a/js/node_modules/babel-runtime/core-js/array/shift.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/shift"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/slice.js b/js/node_modules/babel-runtime/core-js/array/slice.js deleted file mode 100644 index 5f5fe16..0000000 --- a/js/node_modules/babel-runtime/core-js/array/slice.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/slice"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/some.js b/js/node_modules/babel-runtime/core-js/array/some.js deleted file mode 100644 index 72ca911..0000000 --- a/js/node_modules/babel-runtime/core-js/array/some.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/some"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/sort.js b/js/node_modules/babel-runtime/core-js/array/sort.js deleted file mode 100644 index 32dece8..0000000 --- a/js/node_modules/babel-runtime/core-js/array/sort.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/sort"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/splice.js b/js/node_modules/babel-runtime/core-js/array/splice.js deleted file mode 100644 index 6fdebb0..0000000 --- a/js/node_modules/babel-runtime/core-js/array/splice.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/splice"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/turn.js b/js/node_modules/babel-runtime/core-js/array/turn.js deleted file mode 100644 index b49c361..0000000 --- a/js/node_modules/babel-runtime/core-js/array/turn.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/turn"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/unshift.js b/js/node_modules/babel-runtime/core-js/array/unshift.js deleted file mode 100644 index 3c237a4..0000000 --- a/js/node_modules/babel-runtime/core-js/array/unshift.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/unshift"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/array/values.js b/js/node_modules/babel-runtime/core-js/array/values.js deleted file mode 100644 index 6cc67aa..0000000 --- a/js/node_modules/babel-runtime/core-js/array/values.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/array/values"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/clear-immediate.js b/js/node_modules/babel-runtime/core-js/clear-immediate.js deleted file mode 100644 index f2090b7..0000000 --- a/js/node_modules/babel-runtime/core-js/clear-immediate.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/clear-immediate"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/date/add-locale.js b/js/node_modules/babel-runtime/core-js/date/add-locale.js deleted file mode 100644 index 61ce70b..0000000 --- a/js/node_modules/babel-runtime/core-js/date/add-locale.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/date/add-locale"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/date/format-utc.js b/js/node_modules/babel-runtime/core-js/date/format-utc.js deleted file mode 100644 index 0bcc6ac..0000000 --- a/js/node_modules/babel-runtime/core-js/date/format-utc.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/date/format-utc"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/date/format.js b/js/node_modules/babel-runtime/core-js/date/format.js deleted file mode 100644 index 2864221..0000000 --- a/js/node_modules/babel-runtime/core-js/date/format.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/date/format"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/function/only.js b/js/node_modules/babel-runtime/core-js/function/only.js deleted file mode 100644 index 2231176..0000000 --- a/js/node_modules/babel-runtime/core-js/function/only.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/function/only"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/function/part.js b/js/node_modules/babel-runtime/core-js/function/part.js deleted file mode 100644 index 8134260..0000000 --- a/js/node_modules/babel-runtime/core-js/function/part.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/function/part"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/get-iterator.js b/js/node_modules/babel-runtime/core-js/get-iterator.js deleted file mode 100644 index 8f9943a..0000000 --- a/js/node_modules/babel-runtime/core-js/get-iterator.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/get-iterator"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/is-iterable.js b/js/node_modules/babel-runtime/core-js/is-iterable.js deleted file mode 100644 index d690ac8..0000000 --- a/js/node_modules/babel-runtime/core-js/is-iterable.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/is-iterable"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/json/stringify.js b/js/node_modules/babel-runtime/core-js/json/stringify.js deleted file mode 100644 index f09e2f9..0000000 --- a/js/node_modules/babel-runtime/core-js/json/stringify.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/json/stringify"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/map.js b/js/node_modules/babel-runtime/core-js/map.js deleted file mode 100644 index ed02186..0000000 --- a/js/node_modules/babel-runtime/core-js/map.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/map"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/math/acosh.js b/js/node_modules/babel-runtime/core-js/math/acosh.js deleted file mode 100644 index 37e2202..0000000 --- a/js/node_modules/babel-runtime/core-js/math/acosh.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/math/acosh"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/math/asinh.js b/js/node_modules/babel-runtime/core-js/math/asinh.js deleted file mode 100644 index b5147b3..0000000 --- a/js/node_modules/babel-runtime/core-js/math/asinh.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/math/asinh"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/math/atanh.js b/js/node_modules/babel-runtime/core-js/math/atanh.js deleted file mode 100644 index ad09bb7..0000000 --- a/js/node_modules/babel-runtime/core-js/math/atanh.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/math/atanh"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/math/cbrt.js b/js/node_modules/babel-runtime/core-js/math/cbrt.js deleted file mode 100644 index 24a6974..0000000 --- a/js/node_modules/babel-runtime/core-js/math/cbrt.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/math/cbrt"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/math/clz32.js b/js/node_modules/babel-runtime/core-js/math/clz32.js deleted file mode 100644 index d2218b4..0000000 --- a/js/node_modules/babel-runtime/core-js/math/clz32.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/math/clz32"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/math/cosh.js b/js/node_modules/babel-runtime/core-js/math/cosh.js deleted file mode 100644 index fa9d079..0000000 --- a/js/node_modules/babel-runtime/core-js/math/cosh.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/math/cosh"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/math/expm1.js b/js/node_modules/babel-runtime/core-js/math/expm1.js deleted file mode 100644 index 860921e..0000000 --- a/js/node_modules/babel-runtime/core-js/math/expm1.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/math/expm1"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/math/fround.js b/js/node_modules/babel-runtime/core-js/math/fround.js deleted file mode 100644 index b62e43a..0000000 --- a/js/node_modules/babel-runtime/core-js/math/fround.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/math/fround"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/math/hypot.js b/js/node_modules/babel-runtime/core-js/math/hypot.js deleted file mode 100644 index b07335b..0000000 --- a/js/node_modules/babel-runtime/core-js/math/hypot.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/math/hypot"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/math/imul.js b/js/node_modules/babel-runtime/core-js/math/imul.js deleted file mode 100644 index 3bf89e8..0000000 --- a/js/node_modules/babel-runtime/core-js/math/imul.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/math/imul"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/math/log10.js b/js/node_modules/babel-runtime/core-js/math/log10.js deleted file mode 100644 index f384512..0000000 --- a/js/node_modules/babel-runtime/core-js/math/log10.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/math/log10"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/math/log1p.js b/js/node_modules/babel-runtime/core-js/math/log1p.js deleted file mode 100644 index 358fc45..0000000 --- a/js/node_modules/babel-runtime/core-js/math/log1p.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/math/log1p"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/math/log2.js b/js/node_modules/babel-runtime/core-js/math/log2.js deleted file mode 100644 index 1cbca00..0000000 --- a/js/node_modules/babel-runtime/core-js/math/log2.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/math/log2"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/math/pot.js b/js/node_modules/babel-runtime/core-js/math/pot.js deleted file mode 100644 index 04baddd..0000000 --- a/js/node_modules/babel-runtime/core-js/math/pot.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/math/pot"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/math/sign.js b/js/node_modules/babel-runtime/core-js/math/sign.js deleted file mode 100644 index 8d0cfa3..0000000 --- a/js/node_modules/babel-runtime/core-js/math/sign.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/math/sign"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/math/sinh.js b/js/node_modules/babel-runtime/core-js/math/sinh.js deleted file mode 100644 index 81afadd..0000000 --- a/js/node_modules/babel-runtime/core-js/math/sinh.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/math/sinh"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/math/tanh.js b/js/node_modules/babel-runtime/core-js/math/tanh.js deleted file mode 100644 index 76fad88..0000000 --- a/js/node_modules/babel-runtime/core-js/math/tanh.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/math/tanh"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/math/trunc.js b/js/node_modules/babel-runtime/core-js/math/trunc.js deleted file mode 100644 index 443a958..0000000 --- a/js/node_modules/babel-runtime/core-js/math/trunc.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/math/trunc"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/number/epsilon.js b/js/node_modules/babel-runtime/core-js/number/epsilon.js deleted file mode 100644 index b5c7862..0000000 --- a/js/node_modules/babel-runtime/core-js/number/epsilon.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/number/epsilon"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/number/is-finite.js b/js/node_modules/babel-runtime/core-js/number/is-finite.js deleted file mode 100644 index 7366242..0000000 --- a/js/node_modules/babel-runtime/core-js/number/is-finite.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/number/is-finite"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/number/is-integer.js b/js/node_modules/babel-runtime/core-js/number/is-integer.js deleted file mode 100644 index 69b9bb7..0000000 --- a/js/node_modules/babel-runtime/core-js/number/is-integer.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/number/is-integer"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/number/is-nan.js b/js/node_modules/babel-runtime/core-js/number/is-nan.js deleted file mode 100644 index 5402a71..0000000 --- a/js/node_modules/babel-runtime/core-js/number/is-nan.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/number/is-nan"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/number/is-safe-integer.js b/js/node_modules/babel-runtime/core-js/number/is-safe-integer.js deleted file mode 100644 index 2d72dd4..0000000 --- a/js/node_modules/babel-runtime/core-js/number/is-safe-integer.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/number/is-safe-integer"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/number/max-safe-integer.js b/js/node_modules/babel-runtime/core-js/number/max-safe-integer.js deleted file mode 100644 index 9b55c84..0000000 --- a/js/node_modules/babel-runtime/core-js/number/max-safe-integer.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/number/max-safe-integer"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/number/min-safe-integer.js b/js/node_modules/babel-runtime/core-js/number/min-safe-integer.js deleted file mode 100644 index b5e9785..0000000 --- a/js/node_modules/babel-runtime/core-js/number/min-safe-integer.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/number/min-safe-integer"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/number/parse-float.js b/js/node_modules/babel-runtime/core-js/number/parse-float.js deleted file mode 100644 index 0e0f0bc..0000000 --- a/js/node_modules/babel-runtime/core-js/number/parse-float.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/number/parse-float"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/number/parse-int.js b/js/node_modules/babel-runtime/core-js/number/parse-int.js deleted file mode 100644 index 6d454ea..0000000 --- a/js/node_modules/babel-runtime/core-js/number/parse-int.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/number/parse-int"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/number/random.js b/js/node_modules/babel-runtime/core-js/number/random.js deleted file mode 100644 index 96363b7..0000000 --- a/js/node_modules/babel-runtime/core-js/number/random.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/number/random"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/object/assign.js b/js/node_modules/babel-runtime/core-js/object/assign.js deleted file mode 100644 index ca48f0c..0000000 --- a/js/node_modules/babel-runtime/core-js/object/assign.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/object/assign"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/object/classof.js b/js/node_modules/babel-runtime/core-js/object/classof.js deleted file mode 100644 index 57d4f09..0000000 --- a/js/node_modules/babel-runtime/core-js/object/classof.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/object/classof"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/object/create.js b/js/node_modules/babel-runtime/core-js/object/create.js deleted file mode 100644 index 130165c..0000000 --- a/js/node_modules/babel-runtime/core-js/object/create.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/object/create"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/object/define-properties.js b/js/node_modules/babel-runtime/core-js/object/define-properties.js deleted file mode 100644 index d39e153..0000000 --- a/js/node_modules/babel-runtime/core-js/object/define-properties.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/object/define-properties"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/object/define-property.js b/js/node_modules/babel-runtime/core-js/object/define-property.js deleted file mode 100644 index f41735b..0000000 --- a/js/node_modules/babel-runtime/core-js/object/define-property.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/object/define-property"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/object/define.js b/js/node_modules/babel-runtime/core-js/object/define.js deleted file mode 100644 index 4773199..0000000 --- a/js/node_modules/babel-runtime/core-js/object/define.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/object/define"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/object/entries.js b/js/node_modules/babel-runtime/core-js/object/entries.js deleted file mode 100644 index 32ed7a5..0000000 --- a/js/node_modules/babel-runtime/core-js/object/entries.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/object/entries"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/object/freeze.js b/js/node_modules/babel-runtime/core-js/object/freeze.js deleted file mode 100644 index 8cc278b..0000000 --- a/js/node_modules/babel-runtime/core-js/object/freeze.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/object/freeze"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js b/js/node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js deleted file mode 100644 index 8e9296e..0000000 --- a/js/node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/object/get-own-property-descriptor"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/object/get-own-property-descriptors.js b/js/node_modules/babel-runtime/core-js/object/get-own-property-descriptors.js deleted file mode 100644 index 23200d2..0000000 --- a/js/node_modules/babel-runtime/core-js/object/get-own-property-descriptors.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/object/get-own-property-descriptors"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/object/get-own-property-names.js b/js/node_modules/babel-runtime/core-js/object/get-own-property-names.js deleted file mode 100644 index 7b95445..0000000 --- a/js/node_modules/babel-runtime/core-js/object/get-own-property-names.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/object/get-own-property-names"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/object/get-own-property-symbols.js b/js/node_modules/babel-runtime/core-js/object/get-own-property-symbols.js deleted file mode 100644 index c2fc78f..0000000 --- a/js/node_modules/babel-runtime/core-js/object/get-own-property-symbols.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/object/get-own-property-symbols"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/object/get-prototype-of.js b/js/node_modules/babel-runtime/core-js/object/get-prototype-of.js deleted file mode 100644 index 47d3f72..0000000 --- a/js/node_modules/babel-runtime/core-js/object/get-prototype-of.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/object/get-prototype-of"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/object/index.js b/js/node_modules/babel-runtime/core-js/object/index.js deleted file mode 100644 index 2e23110..0000000 --- a/js/node_modules/babel-runtime/core-js/object/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/object/index"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/object/is-extensible.js b/js/node_modules/babel-runtime/core-js/object/is-extensible.js deleted file mode 100644 index 51175ad..0000000 --- a/js/node_modules/babel-runtime/core-js/object/is-extensible.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/object/is-extensible"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/object/is-frozen.js b/js/node_modules/babel-runtime/core-js/object/is-frozen.js deleted file mode 100644 index e8ab5f1..0000000 --- a/js/node_modules/babel-runtime/core-js/object/is-frozen.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/object/is-frozen"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/object/is-object.js b/js/node_modules/babel-runtime/core-js/object/is-object.js deleted file mode 100644 index 323b0e4..0000000 --- a/js/node_modules/babel-runtime/core-js/object/is-object.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/object/is-object"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/object/is-sealed.js b/js/node_modules/babel-runtime/core-js/object/is-sealed.js deleted file mode 100644 index 77beda4..0000000 --- a/js/node_modules/babel-runtime/core-js/object/is-sealed.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/object/is-sealed"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/object/is.js b/js/node_modules/babel-runtime/core-js/object/is.js deleted file mode 100644 index 6524704..0000000 --- a/js/node_modules/babel-runtime/core-js/object/is.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/object/is"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/object/keys.js b/js/node_modules/babel-runtime/core-js/object/keys.js deleted file mode 100644 index 04a3f01..0000000 --- a/js/node_modules/babel-runtime/core-js/object/keys.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/object/keys"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/object/make.js b/js/node_modules/babel-runtime/core-js/object/make.js deleted file mode 100644 index a3f9a28..0000000 --- a/js/node_modules/babel-runtime/core-js/object/make.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/object/make"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/object/prevent-extensions.js b/js/node_modules/babel-runtime/core-js/object/prevent-extensions.js deleted file mode 100644 index 3d4305f..0000000 --- a/js/node_modules/babel-runtime/core-js/object/prevent-extensions.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/object/prevent-extensions"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/object/seal.js b/js/node_modules/babel-runtime/core-js/object/seal.js deleted file mode 100644 index c969cab..0000000 --- a/js/node_modules/babel-runtime/core-js/object/seal.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/object/seal"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/object/set-prototype-of.js b/js/node_modules/babel-runtime/core-js/object/set-prototype-of.js deleted file mode 100644 index 63b1435..0000000 --- a/js/node_modules/babel-runtime/core-js/object/set-prototype-of.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/object/set-prototype-of"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/object/values.js b/js/node_modules/babel-runtime/core-js/object/values.js deleted file mode 100644 index c587097..0000000 --- a/js/node_modules/babel-runtime/core-js/object/values.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/object/values"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/promise.js b/js/node_modules/babel-runtime/core-js/promise.js deleted file mode 100644 index 0cb9a23..0000000 --- a/js/node_modules/babel-runtime/core-js/promise.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/promise"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/reflect/apply.js b/js/node_modules/babel-runtime/core-js/reflect/apply.js deleted file mode 100644 index cc578d4..0000000 --- a/js/node_modules/babel-runtime/core-js/reflect/apply.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/reflect/apply"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/reflect/construct.js b/js/node_modules/babel-runtime/core-js/reflect/construct.js deleted file mode 100644 index a2d991a..0000000 --- a/js/node_modules/babel-runtime/core-js/reflect/construct.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/reflect/construct"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/reflect/define-property.js b/js/node_modules/babel-runtime/core-js/reflect/define-property.js deleted file mode 100644 index aee1c3a..0000000 --- a/js/node_modules/babel-runtime/core-js/reflect/define-property.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/reflect/define-property"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/reflect/delete-property.js b/js/node_modules/babel-runtime/core-js/reflect/delete-property.js deleted file mode 100644 index efa76ab..0000000 --- a/js/node_modules/babel-runtime/core-js/reflect/delete-property.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/reflect/delete-property"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/reflect/enumerate.js b/js/node_modules/babel-runtime/core-js/reflect/enumerate.js deleted file mode 100644 index 041484b..0000000 --- a/js/node_modules/babel-runtime/core-js/reflect/enumerate.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/reflect/enumerate"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/reflect/get-own-property-descriptor.js b/js/node_modules/babel-runtime/core-js/reflect/get-own-property-descriptor.js deleted file mode 100644 index 67a50f5..0000000 --- a/js/node_modules/babel-runtime/core-js/reflect/get-own-property-descriptor.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/reflect/get-own-property-descriptor"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/reflect/get-prototype-of.js b/js/node_modules/babel-runtime/core-js/reflect/get-prototype-of.js deleted file mode 100644 index d3c8d4e..0000000 --- a/js/node_modules/babel-runtime/core-js/reflect/get-prototype-of.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/reflect/get-prototype-of"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/reflect/get.js b/js/node_modules/babel-runtime/core-js/reflect/get.js deleted file mode 100644 index a42e4fb..0000000 --- a/js/node_modules/babel-runtime/core-js/reflect/get.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/reflect/get"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/reflect/has.js b/js/node_modules/babel-runtime/core-js/reflect/has.js deleted file mode 100644 index e2a9665..0000000 --- a/js/node_modules/babel-runtime/core-js/reflect/has.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/reflect/has"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/reflect/is-extensible.js b/js/node_modules/babel-runtime/core-js/reflect/is-extensible.js deleted file mode 100644 index b0de7bf..0000000 --- a/js/node_modules/babel-runtime/core-js/reflect/is-extensible.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/reflect/is-extensible"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/reflect/own-keys.js b/js/node_modules/babel-runtime/core-js/reflect/own-keys.js deleted file mode 100644 index d98fed2..0000000 --- a/js/node_modules/babel-runtime/core-js/reflect/own-keys.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/reflect/own-keys"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/reflect/prevent-extensions.js b/js/node_modules/babel-runtime/core-js/reflect/prevent-extensions.js deleted file mode 100644 index 5408d89..0000000 --- a/js/node_modules/babel-runtime/core-js/reflect/prevent-extensions.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/reflect/prevent-extensions"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/reflect/set-prototype-of.js b/js/node_modules/babel-runtime/core-js/reflect/set-prototype-of.js deleted file mode 100644 index 5433e2e..0000000 --- a/js/node_modules/babel-runtime/core-js/reflect/set-prototype-of.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/reflect/set-prototype-of"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/reflect/set.js b/js/node_modules/babel-runtime/core-js/reflect/set.js deleted file mode 100644 index 657bddc..0000000 --- a/js/node_modules/babel-runtime/core-js/reflect/set.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/reflect/set"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/regexp/escape.js b/js/node_modules/babel-runtime/core-js/regexp/escape.js deleted file mode 100644 index 12a25c3..0000000 --- a/js/node_modules/babel-runtime/core-js/regexp/escape.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/regexp/escape"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/set-immediate.js b/js/node_modules/babel-runtime/core-js/set-immediate.js deleted file mode 100644 index fc42eb4..0000000 --- a/js/node_modules/babel-runtime/core-js/set-immediate.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/set-immediate"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/set.js b/js/node_modules/babel-runtime/core-js/set.js deleted file mode 100644 index 22c14d4..0000000 --- a/js/node_modules/babel-runtime/core-js/set.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/set"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/string/at.js b/js/node_modules/babel-runtime/core-js/string/at.js deleted file mode 100644 index 1c4b595..0000000 --- a/js/node_modules/babel-runtime/core-js/string/at.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/string/at"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/string/code-point-at.js b/js/node_modules/babel-runtime/core-js/string/code-point-at.js deleted file mode 100644 index 4332bdb..0000000 --- a/js/node_modules/babel-runtime/core-js/string/code-point-at.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/string/code-point-at"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/string/ends-with.js b/js/node_modules/babel-runtime/core-js/string/ends-with.js deleted file mode 100644 index ad3b55a..0000000 --- a/js/node_modules/babel-runtime/core-js/string/ends-with.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/string/ends-with"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/string/escape-html.js b/js/node_modules/babel-runtime/core-js/string/escape-html.js deleted file mode 100644 index c693a61..0000000 --- a/js/node_modules/babel-runtime/core-js/string/escape-html.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/string/escape-html"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/string/from-code-point.js b/js/node_modules/babel-runtime/core-js/string/from-code-point.js deleted file mode 100644 index 8c10782..0000000 --- a/js/node_modules/babel-runtime/core-js/string/from-code-point.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/string/from-code-point"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/string/includes.js b/js/node_modules/babel-runtime/core-js/string/includes.js deleted file mode 100644 index f7de270..0000000 --- a/js/node_modules/babel-runtime/core-js/string/includes.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/string/includes"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/string/pad-left.js b/js/node_modules/babel-runtime/core-js/string/pad-left.js deleted file mode 100644 index a8a3890..0000000 --- a/js/node_modules/babel-runtime/core-js/string/pad-left.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/string/pad-left"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/string/pad-right.js b/js/node_modules/babel-runtime/core-js/string/pad-right.js deleted file mode 100644 index df2a452..0000000 --- a/js/node_modules/babel-runtime/core-js/string/pad-right.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/string/pad-right"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/string/raw.js b/js/node_modules/babel-runtime/core-js/string/raw.js deleted file mode 100644 index 05c92dc..0000000 --- a/js/node_modules/babel-runtime/core-js/string/raw.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/string/raw"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/string/repeat.js b/js/node_modules/babel-runtime/core-js/string/repeat.js deleted file mode 100644 index 816ef2e..0000000 --- a/js/node_modules/babel-runtime/core-js/string/repeat.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/string/repeat"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/string/starts-with.js b/js/node_modules/babel-runtime/core-js/string/starts-with.js deleted file mode 100644 index 5d74716..0000000 --- a/js/node_modules/babel-runtime/core-js/string/starts-with.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/string/starts-with"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/string/trim-left.js b/js/node_modules/babel-runtime/core-js/string/trim-left.js deleted file mode 100644 index b8a7e1e..0000000 --- a/js/node_modules/babel-runtime/core-js/string/trim-left.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/string/trim-left"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/string/trim-right.js b/js/node_modules/babel-runtime/core-js/string/trim-right.js deleted file mode 100644 index ba3ca74..0000000 --- a/js/node_modules/babel-runtime/core-js/string/trim-right.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/string/trim-right"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/string/trim.js b/js/node_modules/babel-runtime/core-js/string/trim.js deleted file mode 100644 index 7d51cf0..0000000 --- a/js/node_modules/babel-runtime/core-js/string/trim.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/string/trim"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/string/unescape-html.js b/js/node_modules/babel-runtime/core-js/string/unescape-html.js deleted file mode 100644 index 75a1c98..0000000 --- a/js/node_modules/babel-runtime/core-js/string/unescape-html.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/string/unescape-html"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/symbol.js b/js/node_modules/babel-runtime/core-js/symbol.js deleted file mode 100644 index 9aa95a0..0000000 --- a/js/node_modules/babel-runtime/core-js/symbol.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/symbol"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/symbol/for.js b/js/node_modules/babel-runtime/core-js/symbol/for.js deleted file mode 100644 index de7424f..0000000 --- a/js/node_modules/babel-runtime/core-js/symbol/for.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/symbol/for"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/symbol/has-instance.js b/js/node_modules/babel-runtime/core-js/symbol/has-instance.js deleted file mode 100644 index f771180..0000000 --- a/js/node_modules/babel-runtime/core-js/symbol/has-instance.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/symbol/has-instance"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/symbol/is-concat-spreadable.js b/js/node_modules/babel-runtime/core-js/symbol/is-concat-spreadable.js deleted file mode 100644 index 0bc7f03..0000000 --- a/js/node_modules/babel-runtime/core-js/symbol/is-concat-spreadable.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/symbol/is-concat-spreadable"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/symbol/iterator.js b/js/node_modules/babel-runtime/core-js/symbol/iterator.js deleted file mode 100644 index 3f9a0fb..0000000 --- a/js/node_modules/babel-runtime/core-js/symbol/iterator.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/symbol/iterator"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/symbol/key-for.js b/js/node_modules/babel-runtime/core-js/symbol/key-for.js deleted file mode 100644 index 15a6cfb..0000000 --- a/js/node_modules/babel-runtime/core-js/symbol/key-for.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/symbol/key-for"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/symbol/match.js b/js/node_modules/babel-runtime/core-js/symbol/match.js deleted file mode 100644 index ed64810..0000000 --- a/js/node_modules/babel-runtime/core-js/symbol/match.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/symbol/match"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/symbol/replace.js b/js/node_modules/babel-runtime/core-js/symbol/replace.js deleted file mode 100644 index 35f900b..0000000 --- a/js/node_modules/babel-runtime/core-js/symbol/replace.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/symbol/replace"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/symbol/search.js b/js/node_modules/babel-runtime/core-js/symbol/search.js deleted file mode 100644 index 4b81d31..0000000 --- a/js/node_modules/babel-runtime/core-js/symbol/search.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/symbol/search"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/symbol/species.js b/js/node_modules/babel-runtime/core-js/symbol/species.js deleted file mode 100644 index 4481321..0000000 --- a/js/node_modules/babel-runtime/core-js/symbol/species.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/symbol/species"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/symbol/split.js b/js/node_modules/babel-runtime/core-js/symbol/split.js deleted file mode 100644 index 1f5795c..0000000 --- a/js/node_modules/babel-runtime/core-js/symbol/split.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/symbol/split"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/symbol/to-primitive.js b/js/node_modules/babel-runtime/core-js/symbol/to-primitive.js deleted file mode 100644 index b7f9e04..0000000 --- a/js/node_modules/babel-runtime/core-js/symbol/to-primitive.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/symbol/to-primitive"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/symbol/to-string-tag.js b/js/node_modules/babel-runtime/core-js/symbol/to-string-tag.js deleted file mode 100644 index d9e4e4d..0000000 --- a/js/node_modules/babel-runtime/core-js/symbol/to-string-tag.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/symbol/to-string-tag"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/symbol/unscopables.js b/js/node_modules/babel-runtime/core-js/symbol/unscopables.js deleted file mode 100644 index cd3dac0..0000000 --- a/js/node_modules/babel-runtime/core-js/symbol/unscopables.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/symbol/unscopables"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/weak-map.js b/js/node_modules/babel-runtime/core-js/weak-map.js deleted file mode 100644 index de130d4..0000000 --- a/js/node_modules/babel-runtime/core-js/weak-map.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/weak-map"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/core-js/weak-set.js b/js/node_modules/babel-runtime/core-js/weak-set.js deleted file mode 100644 index b96cb97..0000000 --- a/js/node_modules/babel-runtime/core-js/weak-set.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { "default": require("core-js/library/fn/weak-set"), __esModule: true }; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/_extends.js b/js/node_modules/babel-runtime/helpers/_extends.js deleted file mode 100644 index c0afb75..0000000 --- a/js/node_modules/babel-runtime/helpers/_extends.js +++ /dev/null @@ -1,23 +0,0 @@ -"use strict"; - -var _assign = require("babel-runtime/core-js/object/assign"); - -var _assign2 = _interopRequireDefault(_assign); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = _assign2.default || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/_instanceof.js b/js/node_modules/babel-runtime/helpers/_instanceof.js deleted file mode 100644 index 424e9e9..0000000 --- a/js/node_modules/babel-runtime/helpers/_instanceof.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; - -var _hasInstance = require("babel-runtime/core-js/symbol/has-instance"); - -var _hasInstance2 = _interopRequireDefault(_hasInstance); - -var _symbol = require("babel-runtime/core-js/symbol"); - -var _symbol2 = _interopRequireDefault(_symbol); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (left, right) { - if (right != null && typeof _symbol2.default !== "undefined" && right[_hasInstance2.default]) { - return right[_hasInstance2.default](left); - } else { - return left instanceof right; - } -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/_typeof.js b/js/node_modules/babel-runtime/helpers/_typeof.js deleted file mode 100644 index e47f1d5..0000000 --- a/js/node_modules/babel-runtime/helpers/_typeof.js +++ /dev/null @@ -1,17 +0,0 @@ -"use strict"; - -var _typeof2 = require("babel-runtime/helpers/typeof"); - -var _typeof3 = _interopRequireDefault(_typeof2); - -var _symbol = require("babel-runtime/core-js/symbol"); - -var _symbol2 = _interopRequireDefault(_symbol); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (obj) { - return obj && typeof _symbol2.default !== "undefined" && obj.constructor === _symbol2.default ? "symbol" : typeof obj === "undefined" ? "undefined" : (0, _typeof3.default)(obj); -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/async-to-generator.js b/js/node_modules/babel-runtime/helpers/async-to-generator.js deleted file mode 100644 index e20c18a..0000000 --- a/js/node_modules/babel-runtime/helpers/async-to-generator.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; - -var _Promise = require("babel-runtime/core-js/promise")["default"]; - -exports["default"] = function (fn) { - return function () { - var gen = fn.apply(this, arguments); - return new _Promise(function (resolve, reject) { - var callNext = step.bind(null, "next"); - var callThrow = step.bind(null, "throw"); - - function step(key, arg) { - try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - - if (info.done) { - resolve(value); - } else { - _Promise.resolve(value).then(callNext, callThrow); - } - } - - callNext(); - }); - }; -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/asyncToGenerator.js b/js/node_modules/babel-runtime/helpers/asyncToGenerator.js deleted file mode 100644 index ba1b110..0000000 --- a/js/node_modules/babel-runtime/helpers/asyncToGenerator.js +++ /dev/null @@ -1,37 +0,0 @@ -"use strict"; - -var _promise = require("babel-runtime/core-js/promise"); - -var _promise2 = _interopRequireDefault(_promise); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (fn) { - return function () { - var gen = fn.apply(this, arguments); - return new _promise2.default(function (resolve, reject) { - var callNext = step.bind(null, "next"); - var callThrow = step.bind(null, "throw"); - - function step(key, arg) { - try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - - if (info.done) { - resolve(value); - } else { - _promise2.default.resolve(value).then(callNext, callThrow); - } - } - - callNext(); - }); - }; -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/bind.js b/js/node_modules/babel-runtime/helpers/bind.js deleted file mode 100644 index af8b878..0000000 --- a/js/node_modules/babel-runtime/helpers/bind.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; - -exports["default"] = Function.prototype.bind; -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/class-call-check.js b/js/node_modules/babel-runtime/helpers/class-call-check.js deleted file mode 100644 index 2018c20..0000000 --- a/js/node_modules/babel-runtime/helpers/class-call-check.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; - -exports["default"] = function (instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/classCallCheck.js b/js/node_modules/babel-runtime/helpers/classCallCheck.js deleted file mode 100644 index 0dabf57..0000000 --- a/js/node_modules/babel-runtime/helpers/classCallCheck.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; - -exports.default = function (instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/create-class.js b/js/node_modules/babel-runtime/helpers/create-class.js deleted file mode 100644 index 235cbac..0000000 --- a/js/node_modules/babel-runtime/helpers/create-class.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict"; - -var _Object$defineProperty = require("babel-runtime/core-js/object/define-property")["default"]; - -exports["default"] = (function () { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - - _Object$defineProperty(target, descriptor.key, descriptor); - } - } - - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; - }; -})(); - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/create-decorated-class.js b/js/node_modules/babel-runtime/helpers/create-decorated-class.js deleted file mode 100644 index 301951c..0000000 --- a/js/node_modules/babel-runtime/helpers/create-decorated-class.js +++ /dev/null @@ -1,45 +0,0 @@ -"use strict"; - -var _Object$defineProperty = require("babel-runtime/core-js/object/define-property")["default"]; - -exports["default"] = (function () { - function defineProperties(target, descriptors, initializers) { - for (var i = 0; i < descriptors.length; i++) { - var descriptor = descriptors[i]; - var decorators = descriptor.decorators; - var key = descriptor.key; - delete descriptor.key; - delete descriptor.decorators; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor || descriptor.initializer) descriptor.writable = true; - - if (decorators) { - for (var f = 0; f < decorators.length; f++) { - var decorator = decorators[f]; - - if (typeof decorator === "function") { - descriptor = decorator(target, key, descriptor) || descriptor; - } else { - throw new TypeError("The decorator for method " + descriptor.key + " is of the invalid type " + typeof decorator); - } - } - - if (descriptor.initializer !== undefined) { - initializers[key] = descriptor; - continue; - } - } - - _Object$defineProperty(target, key, descriptor); - } - } - - return function (Constructor, protoProps, staticProps, protoInitializers, staticInitializers) { - if (protoProps) defineProperties(Constructor.prototype, protoProps, protoInitializers); - if (staticProps) defineProperties(Constructor, staticProps, staticInitializers); - return Constructor; - }; -})(); - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/create-decorated-object.js b/js/node_modules/babel-runtime/helpers/create-decorated-object.js deleted file mode 100644 index eabf793..0000000 --- a/js/node_modules/babel-runtime/helpers/create-decorated-object.js +++ /dev/null @@ -1,40 +0,0 @@ -"use strict"; - -var _Object$defineProperty = require("babel-runtime/core-js/object/define-property")["default"]; - -exports["default"] = function (descriptors) { - var target = {}; - - for (var i = 0; i < descriptors.length; i++) { - var descriptor = descriptors[i]; - var decorators = descriptor.decorators; - var key = descriptor.key; - delete descriptor.key; - delete descriptor.decorators; - descriptor.enumerable = true; - descriptor.configurable = true; - if ("value" in descriptor || descriptor.initializer) descriptor.writable = true; - - if (decorators) { - for (var f = 0; f < decorators.length; f++) { - var decorator = decorators[f]; - - if (typeof decorator === "function") { - descriptor = decorator(target, key, descriptor) || descriptor; - } else { - throw new TypeError("The decorator for method " + descriptor.key + " is of the invalid type " + typeof decorator); - } - } - } - - if (descriptor.initializer) { - descriptor.value = descriptor.initializer.call(target); - } - - _Object$defineProperty(target, key, descriptor); - } - - return target; -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/createClass.js b/js/node_modules/babel-runtime/helpers/createClass.js deleted file mode 100644 index 7bfdb87..0000000 --- a/js/node_modules/babel-runtime/helpers/createClass.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; - -var _defineProperty = require("babel-runtime/core-js/object/define-property"); - -var _defineProperty2 = _interopRequireDefault(_defineProperty); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = (function () { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - (0, _defineProperty2.default)(target, descriptor.key, descriptor); - } - } - - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; - }; -})(); - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/default-props.js b/js/node_modules/babel-runtime/helpers/default-props.js deleted file mode 100644 index fa4c550..0000000 --- a/js/node_modules/babel-runtime/helpers/default-props.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; - -exports["default"] = function (defaultProps, props) { - if (defaultProps) { - for (var propName in defaultProps) { - if (typeof props[propName] === "undefined") { - props[propName] = defaultProps[propName]; - } - } - } - - return props; -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/defaultProps.js b/js/node_modules/babel-runtime/helpers/defaultProps.js deleted file mode 100644 index 559aadf..0000000 --- a/js/node_modules/babel-runtime/helpers/defaultProps.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; - -exports.default = function (defaultProps, props) { - if (defaultProps) { - for (var propName in defaultProps) { - if (typeof props[propName] === "undefined") { - props[propName] = defaultProps[propName]; - } - } - } - - return props; -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/defaults.js b/js/node_modules/babel-runtime/helpers/defaults.js deleted file mode 100644 index 6350454..0000000 --- a/js/node_modules/babel-runtime/helpers/defaults.js +++ /dev/null @@ -1,25 +0,0 @@ -"use strict"; - -var _Object$getOwnPropertyNames = require("babel-runtime/core-js/object/get-own-property-names")["default"]; - -var _Object$getOwnPropertyDescriptor = require("babel-runtime/core-js/object/get-own-property-descriptor")["default"]; - -var _Object$defineProperty = require("babel-runtime/core-js/object/define-property")["default"]; - -exports["default"] = function (obj, defaults) { - var keys = _Object$getOwnPropertyNames(defaults); - - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - - var value = _Object$getOwnPropertyDescriptor(defaults, key); - - if (value && value.configurable && obj[key] === undefined) { - _Object$defineProperty(obj, key, value); - } - } - - return obj; -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/define-decorated-property-descriptor.js b/js/node_modules/babel-runtime/helpers/define-decorated-property-descriptor.js deleted file mode 100644 index 7889471..0000000 --- a/js/node_modules/babel-runtime/helpers/define-decorated-property-descriptor.js +++ /dev/null @@ -1,17 +0,0 @@ -"use strict"; - -var _Object$defineProperty = require("babel-runtime/core-js/object/define-property")["default"]; - -exports["default"] = function (target, key, descriptors) { - var _descriptor = descriptors[key]; - if (!_descriptor) return; - var descriptor = {}; - - for (var _key in _descriptor) descriptor[_key] = _descriptor[_key]; - - descriptor.value = descriptor.initializer ? descriptor.initializer.call(target) : undefined; - - _Object$defineProperty(target, key, descriptor); -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/define-property.js b/js/node_modules/babel-runtime/helpers/define-property.js deleted file mode 100644 index de039a0..0000000 --- a/js/node_modules/babel-runtime/helpers/define-property.js +++ /dev/null @@ -1,20 +0,0 @@ -"use strict"; - -var _Object$defineProperty = require("babel-runtime/core-js/object/define-property")["default"]; - -exports["default"] = function (obj, key, value) { - if (key in obj) { - _Object$defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/defineEnumerableProperties.js b/js/node_modules/babel-runtime/helpers/defineEnumerableProperties.js deleted file mode 100644 index 400feb8..0000000 --- a/js/node_modules/babel-runtime/helpers/defineEnumerableProperties.js +++ /dev/null @@ -1,20 +0,0 @@ -"use strict"; - -var _defineProperty = require("babel-runtime/core-js/object/define-property"); - -var _defineProperty2 = _interopRequireDefault(_defineProperty); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (obj, descs) { - for (var key in descs) { - var desc = descs[key]; - desc.configurable = desc.enumerable = true; - if ("value" in desc) desc.writable = true; - (0, _defineProperty2.default)(obj, key, desc); - } - - return obj; -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/defineProperty.js b/js/node_modules/babel-runtime/helpers/defineProperty.js deleted file mode 100644 index 6cc6ca4..0000000 --- a/js/node_modules/babel-runtime/helpers/defineProperty.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict"; - -var _defineProperty = require("babel-runtime/core-js/object/define-property"); - -var _defineProperty2 = _interopRequireDefault(_defineProperty); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (obj, key, value) { - if (key in obj) { - (0, _defineProperty2.default)(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/extends.js b/js/node_modules/babel-runtime/helpers/extends.js deleted file mode 100644 index b0e4367..0000000 --- a/js/node_modules/babel-runtime/helpers/extends.js +++ /dev/null @@ -1,19 +0,0 @@ -"use strict"; - -var _Object$assign = require("babel-runtime/core-js/object/assign")["default"]; - -exports["default"] = _Object$assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/get.js b/js/node_modules/babel-runtime/helpers/get.js deleted file mode 100644 index 81d33f7..0000000 --- a/js/node_modules/babel-runtime/helpers/get.js +++ /dev/null @@ -1,44 +0,0 @@ -"use strict"; - -var _Object$getOwnPropertyDescriptor = require("babel-runtime/core-js/object/get-own-property-descriptor")["default"]; - -exports["default"] = function get(_x, _x2, _x3) { - var _again = true; - - _function: while (_again) { - var object = _x, - property = _x2, - receiver = _x3; - _again = false; - if (object === null) object = Function.prototype; - - var desc = _Object$getOwnPropertyDescriptor(object, property); - - if (desc === undefined) { - var parent = Object.getPrototypeOf(object); - - if (parent === null) { - return undefined; - } else { - _x = parent; - _x2 = property; - _x3 = receiver; - _again = true; - desc = parent = undefined; - continue _function; - } - } else if ("value" in desc) { - return desc.value; - } else { - var getter = desc.get; - - if (getter === undefined) { - return undefined; - } - - return getter.call(receiver); - } - } -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/has-own.js b/js/node_modules/babel-runtime/helpers/has-own.js deleted file mode 100644 index c97e0b7..0000000 --- a/js/node_modules/babel-runtime/helpers/has-own.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; - -exports["default"] = Object.prototype.hasOwnProperty; -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/inherits.js b/js/node_modules/babel-runtime/helpers/inherits.js deleted file mode 100644 index 3413303..0000000 --- a/js/node_modules/babel-runtime/helpers/inherits.js +++ /dev/null @@ -1,23 +0,0 @@ -"use strict"; - -var _Object$create = require("babel-runtime/core-js/object/create")["default"]; - -var _Object$setPrototypeOf = require("babel-runtime/core-js/object/set-prototype-of")["default"]; - -exports["default"] = function (subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); - } - - subClass.prototype = _Object$create(superClass && superClass.prototype, { - constructor: { - value: subClass, - enumerable: false, - writable: true, - configurable: true - } - }); - if (superClass) _Object$setPrototypeOf ? _Object$setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/instanceof.js b/js/node_modules/babel-runtime/helpers/instanceof.js deleted file mode 100644 index ad56106..0000000 --- a/js/node_modules/babel-runtime/helpers/instanceof.js +++ /dev/null @@ -1,13 +0,0 @@ -"use strict"; - -var _Symbol$hasInstance = require("babel-runtime/core-js/symbol/has-instance")["default"]; - -exports["default"] = function (left, right) { - if (right != null && right[_Symbol$hasInstance]) { - return right[_Symbol$hasInstance](left); - } else { - return left instanceof right; - } -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/interop-export-wildcard.js b/js/node_modules/babel-runtime/helpers/interop-export-wildcard.js deleted file mode 100644 index 67910db..0000000 --- a/js/node_modules/babel-runtime/helpers/interop-export-wildcard.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; - -exports["default"] = function (obj, defaults) { - var newObj = defaults({}, obj); - delete newObj["default"]; - return newObj; -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/interop-require-default.js b/js/node_modules/babel-runtime/helpers/interop-require-default.js deleted file mode 100644 index 7dcd774..0000000 --- a/js/node_modules/babel-runtime/helpers/interop-require-default.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; - -exports["default"] = function (obj) { - return obj && obj.__esModule ? obj : { - "default": obj - }; -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/interop-require-wildcard.js b/js/node_modules/babel-runtime/helpers/interop-require-wildcard.js deleted file mode 100644 index a44a169..0000000 --- a/js/node_modules/babel-runtime/helpers/interop-require-wildcard.js +++ /dev/null @@ -1,20 +0,0 @@ -"use strict"; - -exports["default"] = function (obj) { - if (obj && obj.__esModule) { - return obj; - } else { - var newObj = {}; - - if (obj != null) { - for (var key in obj) { - if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; - } - } - - newObj["default"] = obj; - return newObj; - } -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/interop-require.js b/js/node_modules/babel-runtime/helpers/interop-require.js deleted file mode 100644 index 475bfe8..0000000 --- a/js/node_modules/babel-runtime/helpers/interop-require.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; - -exports["default"] = function (obj) { - return obj && obj.__esModule ? obj["default"] : obj; -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/interopRequireDefault.js b/js/node_modules/babel-runtime/helpers/interopRequireDefault.js deleted file mode 100644 index 420f047..0000000 --- a/js/node_modules/babel-runtime/helpers/interopRequireDefault.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; - -exports.default = function (obj) { - return obj && obj.__esModule ? obj : { - default: obj - }; -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/interopRequireWildcard.js b/js/node_modules/babel-runtime/helpers/interopRequireWildcard.js deleted file mode 100644 index e8cf2b5..0000000 --- a/js/node_modules/babel-runtime/helpers/interopRequireWildcard.js +++ /dev/null @@ -1,20 +0,0 @@ -"use strict"; - -exports.default = function (obj) { - if (obj && obj.__esModule) { - return obj; - } else { - var newObj = {}; - - if (obj != null) { - for (var key in obj) { - if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; - } - } - - newObj.default = obj; - return newObj; - } -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/new-arrow-check.js b/js/node_modules/babel-runtime/helpers/new-arrow-check.js deleted file mode 100644 index e81e0e9..0000000 --- a/js/node_modules/babel-runtime/helpers/new-arrow-check.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; - -exports["default"] = function (innerThis, boundThis) { - if (innerThis !== boundThis) { - throw new TypeError("Cannot instantiate an arrow function"); - } -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/newArrowCheck.js b/js/node_modules/babel-runtime/helpers/newArrowCheck.js deleted file mode 100644 index d4f21ba..0000000 --- a/js/node_modules/babel-runtime/helpers/newArrowCheck.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; - -exports.default = function (innerThis, boundThis) { - if (innerThis !== boundThis) { - throw new TypeError("Cannot instantiate an arrow function"); - } -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/object-destructuring-empty.js b/js/node_modules/babel-runtime/helpers/object-destructuring-empty.js deleted file mode 100644 index 7bd0d95..0000000 --- a/js/node_modules/babel-runtime/helpers/object-destructuring-empty.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; - -exports["default"] = function (obj) { - if (obj == null) throw new TypeError("Cannot destructure undefined"); -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/object-without-properties.js b/js/node_modules/babel-runtime/helpers/object-without-properties.js deleted file mode 100644 index 262126b..0000000 --- a/js/node_modules/babel-runtime/helpers/object-without-properties.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; - -exports["default"] = function (obj, keys) { - var target = {}; - - for (var i in obj) { - if (keys.indexOf(i) >= 0) continue; - if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; - target[i] = obj[i]; - } - - return target; -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/objectDestructuringEmpty.js b/js/node_modules/babel-runtime/helpers/objectDestructuringEmpty.js deleted file mode 100644 index 634f849..0000000 --- a/js/node_modules/babel-runtime/helpers/objectDestructuringEmpty.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; - -exports.default = function (obj) { - if (obj == null) throw new TypeError("Cannot destructure undefined"); -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/objectWithoutProperties.js b/js/node_modules/babel-runtime/helpers/objectWithoutProperties.js deleted file mode 100644 index 7265b49..0000000 --- a/js/node_modules/babel-runtime/helpers/objectWithoutProperties.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; - -exports.default = function (obj, keys) { - var target = {}; - - for (var i in obj) { - if (keys.indexOf(i) >= 0) continue; - if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; - target[i] = obj[i]; - } - - return target; -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/possibleConstructorReturn.js b/js/node_modules/babel-runtime/helpers/possibleConstructorReturn.js deleted file mode 100644 index ff0e120..0000000 --- a/js/node_modules/babel-runtime/helpers/possibleConstructorReturn.js +++ /dev/null @@ -1,17 +0,0 @@ -"use strict"; - -var _typeof2 = require("babel-runtime/helpers/typeof"); - -var _typeof3 = _interopRequireDefault(_typeof2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (self, call) { - if (!self) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self; -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/self-global.js b/js/node_modules/babel-runtime/helpers/self-global.js deleted file mode 100644 index d796bd9..0000000 --- a/js/node_modules/babel-runtime/helpers/self-global.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; - -exports["default"] = typeof global === "undefined" ? self : global; -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/selfGlobal.js b/js/node_modules/babel-runtime/helpers/selfGlobal.js deleted file mode 100644 index a178ca2..0000000 --- a/js/node_modules/babel-runtime/helpers/selfGlobal.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; - -exports.default = typeof global === "undefined" ? self : global; -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/set.js b/js/node_modules/babel-runtime/helpers/set.js deleted file mode 100644 index be264b4..0000000 --- a/js/node_modules/babel-runtime/helpers/set.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; - -var _Object$getOwnPropertyDescriptor = require("babel-runtime/core-js/object/get-own-property-descriptor")["default"]; - -exports["default"] = function set(object, property, value, receiver) { - var desc = _Object$getOwnPropertyDescriptor(object, property); - - if (desc === undefined) { - var parent = Object.getPrototypeOf(object); - - if (parent !== null) { - set(parent, property, value, receiver); - } - } else if ("value" in desc && desc.writable) { - desc.value = value; - } else { - var setter = desc.set; - - if (setter !== undefined) { - setter.call(receiver, value); - } - } - - return value; -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/slice.js b/js/node_modules/babel-runtime/helpers/slice.js deleted file mode 100644 index b00b0e8..0000000 --- a/js/node_modules/babel-runtime/helpers/slice.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; - -exports["default"] = Array.prototype.slice; -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/sliced-to-array-loose.js b/js/node_modules/babel-runtime/helpers/sliced-to-array-loose.js deleted file mode 100644 index 05aff83..0000000 --- a/js/node_modules/babel-runtime/helpers/sliced-to-array-loose.js +++ /dev/null @@ -1,25 +0,0 @@ -"use strict"; - -var _isIterable = require("babel-runtime/core-js/is-iterable")["default"]; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -exports["default"] = function (arr, i) { - if (Array.isArray(arr)) { - return arr; - } else if (_isIterable(Object(arr))) { - var _arr = []; - - for (var _iterator = _getIterator(arr), _step; !(_step = _iterator.next()).done;) { - _arr.push(_step.value); - - if (i && _arr.length === i) break; - } - - return _arr; - } else { - throw new TypeError("Invalid attempt to destructure non-iterable instance"); - } -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/sliced-to-array.js b/js/node_modules/babel-runtime/helpers/sliced-to-array.js deleted file mode 100644 index 3c1d096..0000000 --- a/js/node_modules/babel-runtime/helpers/sliced-to-array.js +++ /dev/null @@ -1,45 +0,0 @@ -"use strict"; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -var _isIterable = require("babel-runtime/core-js/is-iterable")["default"]; - -exports["default"] = (function () { - function sliceIterator(arr, i) { - var _arr = []; - var _n = true; - var _d = false; - var _e = undefined; - - try { - for (var _i = _getIterator(arr), _s; !(_n = (_s = _i.next()).done); _n = true) { - _arr.push(_s.value); - - if (i && _arr.length === i) break; - } - } catch (err) { - _d = true; - _e = err; - } finally { - try { - if (!_n && _i["return"]) _i["return"](); - } finally { - if (_d) throw _e; - } - } - - return _arr; - } - - return function (arr, i) { - if (Array.isArray(arr)) { - return arr; - } else if (_isIterable(Object(arr))) { - return sliceIterator(arr, i); - } else { - throw new TypeError("Invalid attempt to destructure non-iterable instance"); - } - }; -})(); - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/slicedToArray.js b/js/node_modules/babel-runtime/helpers/slicedToArray.js deleted file mode 100644 index e3cafc5..0000000 --- a/js/node_modules/babel-runtime/helpers/slicedToArray.js +++ /dev/null @@ -1,51 +0,0 @@ -"use strict"; - -var _isIterable2 = require("babel-runtime/core-js/is-iterable"); - -var _isIterable3 = _interopRequireDefault(_isIterable2); - -var _getIterator2 = require("babel-runtime/core-js/get-iterator"); - -var _getIterator3 = _interopRequireDefault(_getIterator2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = (function () { - function sliceIterator(arr, i) { - var _arr = []; - var _n = true; - var _d = false; - var _e = undefined; - - try { - for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) { - _arr.push(_s.value); - - if (i && _arr.length === i) break; - } - } catch (err) { - _d = true; - _e = err; - } finally { - try { - if (!_n && _i["return"]) _i["return"](); - } finally { - if (_d) throw _e; - } - } - - return _arr; - } - - return function (arr, i) { - if (Array.isArray(arr)) { - return arr; - } else if ((0, _isIterable3.default)(Object(arr))) { - return sliceIterator(arr, i); - } else { - throw new TypeError("Invalid attempt to destructure non-iterable instance"); - } - }; -})(); - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/slicedToArrayLoose.js b/js/node_modules/babel-runtime/helpers/slicedToArrayLoose.js deleted file mode 100644 index 1dd0bf9..0000000 --- a/js/node_modules/babel-runtime/helpers/slicedToArrayLoose.js +++ /dev/null @@ -1,31 +0,0 @@ -"use strict"; - -var _getIterator2 = require("babel-runtime/core-js/get-iterator"); - -var _getIterator3 = _interopRequireDefault(_getIterator2); - -var _isIterable2 = require("babel-runtime/core-js/is-iterable"); - -var _isIterable3 = _interopRequireDefault(_isIterable2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (arr, i) { - if (Array.isArray(arr)) { - return arr; - } else if ((0, _isIterable3.default)(Object(arr))) { - var _arr = []; - - for (var _iterator = (0, _getIterator3.default)(arr), _step; !(_step = _iterator.next()).done;) { - _arr.push(_step.value); - - if (i && _arr.length === i) break; - } - - return _arr; - } else { - throw new TypeError("Invalid attempt to destructure non-iterable instance"); - } -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/tagged-template-literal-loose.js b/js/node_modules/babel-runtime/helpers/tagged-template-literal-loose.js deleted file mode 100644 index 5695aba..0000000 --- a/js/node_modules/babel-runtime/helpers/tagged-template-literal-loose.js +++ /dev/null @@ -1,8 +0,0 @@ -"use strict"; - -exports["default"] = function (strings, raw) { - strings.raw = raw; - return strings; -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/tagged-template-literal.js b/js/node_modules/babel-runtime/helpers/tagged-template-literal.js deleted file mode 100644 index fdbed21..0000000 --- a/js/node_modules/babel-runtime/helpers/tagged-template-literal.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; - -var _Object$freeze = require("babel-runtime/core-js/object/freeze")["default"]; - -var _Object$defineProperties = require("babel-runtime/core-js/object/define-properties")["default"]; - -exports["default"] = function (strings, raw) { - return _Object$freeze(_Object$defineProperties(strings, { - raw: { - value: _Object$freeze(raw) - } - })); -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/taggedTemplateLiteral.js b/js/node_modules/babel-runtime/helpers/taggedTemplateLiteral.js deleted file mode 100644 index eb22648..0000000 --- a/js/node_modules/babel-runtime/helpers/taggedTemplateLiteral.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; - -var _defineProperties = require("babel-runtime/core-js/object/define-properties"); - -var _defineProperties2 = _interopRequireDefault(_defineProperties); - -var _freeze = require("babel-runtime/core-js/object/freeze"); - -var _freeze2 = _interopRequireDefault(_freeze); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (strings, raw) { - return (0, _freeze2.default)((0, _defineProperties2.default)(strings, { - raw: { - value: (0, _freeze2.default)(raw) - } - })); -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/taggedTemplateLiteralLoose.js b/js/node_modules/babel-runtime/helpers/taggedTemplateLiteralLoose.js deleted file mode 100644 index bbdcaea..0000000 --- a/js/node_modules/babel-runtime/helpers/taggedTemplateLiteralLoose.js +++ /dev/null @@ -1,8 +0,0 @@ -"use strict"; - -exports.default = function (strings, raw) { - strings.raw = raw; - return strings; -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/temporal-assert-defined.js b/js/node_modules/babel-runtime/helpers/temporal-assert-defined.js deleted file mode 100644 index 4813988..0000000 --- a/js/node_modules/babel-runtime/helpers/temporal-assert-defined.js +++ /dev/null @@ -1,11 +0,0 @@ -"use strict"; - -exports["default"] = function (val, name, undef) { - if (val === undef) { - throw new ReferenceError(name + " is not defined - temporal dead zone"); - } - - return true; -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/temporal-undefined.js b/js/node_modules/babel-runtime/helpers/temporal-undefined.js deleted file mode 100644 index 690f6f6..0000000 --- a/js/node_modules/babel-runtime/helpers/temporal-undefined.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; - -exports["default"] = {}; -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/temporalRef.js b/js/node_modules/babel-runtime/helpers/temporalRef.js deleted file mode 100644 index 69308f4..0000000 --- a/js/node_modules/babel-runtime/helpers/temporalRef.js +++ /dev/null @@ -1,11 +0,0 @@ -"use strict"; - -exports.default = function (val, name, undef) { - if (val === undef) { - throw new ReferenceError(name + " is not defined - temporal dead zone"); - } else { - return val; - } -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/temporalUndefined.js b/js/node_modules/babel-runtime/helpers/temporalUndefined.js deleted file mode 100644 index 2a0a6a9..0000000 --- a/js/node_modules/babel-runtime/helpers/temporalUndefined.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict"; - -exports.default = {}; -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/to-array.js b/js/node_modules/babel-runtime/helpers/to-array.js deleted file mode 100644 index 8122043..0000000 --- a/js/node_modules/babel-runtime/helpers/to-array.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; - -var _Array$from = require("babel-runtime/core-js/array/from")["default"]; - -exports["default"] = function (arr) { - return Array.isArray(arr) ? arr : _Array$from(arr); -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/to-consumable-array.js b/js/node_modules/babel-runtime/helpers/to-consumable-array.js deleted file mode 100644 index a8c3e6e..0000000 --- a/js/node_modules/babel-runtime/helpers/to-consumable-array.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; - -var _Array$from = require("babel-runtime/core-js/array/from")["default"]; - -exports["default"] = function (arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; - - return arr2; - } else { - return _Array$from(arr); - } -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/toArray.js b/js/node_modules/babel-runtime/helpers/toArray.js deleted file mode 100644 index a0ab4b6..0000000 --- a/js/node_modules/babel-runtime/helpers/toArray.js +++ /dev/null @@ -1,13 +0,0 @@ -"use strict"; - -var _from = require("babel-runtime/core-js/array/from"); - -var _from2 = _interopRequireDefault(_from); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (arr) { - return Array.isArray(arr) ? arr : (0, _from2.default)(arr); -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/toConsumableArray.js b/js/node_modules/babel-runtime/helpers/toConsumableArray.js deleted file mode 100644 index e7c0c66..0000000 --- a/js/node_modules/babel-runtime/helpers/toConsumableArray.js +++ /dev/null @@ -1,19 +0,0 @@ -"use strict"; - -var _from = require("babel-runtime/core-js/array/from"); - -var _from2 = _interopRequireDefault(_from); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; - - return arr2; - } else { - return (0, _from2.default)(arr); - } -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/typeof-react-element.js b/js/node_modules/babel-runtime/helpers/typeof-react-element.js deleted file mode 100644 index 744c263..0000000 --- a/js/node_modules/babel-runtime/helpers/typeof-react-element.js +++ /dev/null @@ -1,6 +0,0 @@ -"use strict"; - -var _Symbol = require("babel-runtime/core-js/symbol")["default"]; - -exports["default"] = typeof _Symbol === "function" && _Symbol."for" && _Symbol."for"("react.element") || 60103; -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/typeof.js b/js/node_modules/babel-runtime/helpers/typeof.js deleted file mode 100644 index fa1f5d9..0000000 --- a/js/node_modules/babel-runtime/helpers/typeof.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; - -var _Symbol = require("babel-runtime/core-js/symbol")["default"]; - -exports["default"] = function (obj) { - return obj && obj.constructor === _Symbol ? "symbol" : typeof obj; -}; - -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/helpers/typeofReactElement.js b/js/node_modules/babel-runtime/helpers/typeofReactElement.js deleted file mode 100644 index e295935..0000000 --- a/js/node_modules/babel-runtime/helpers/typeofReactElement.js +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; - -var _for = require("babel-runtime/core-js/symbol/for"); - -var _for2 = _interopRequireDefault(_for); - -var _symbol = require("babel-runtime/core-js/symbol"); - -var _symbol2 = _interopRequireDefault(_symbol); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = typeof _symbol2.default === "function" && _for2.default && (0, _for2.default)("react.element") || 0xeac7; -exports.__esModule = true; \ No newline at end of file diff --git a/js/node_modules/babel-runtime/package.json b/js/node_modules/babel-runtime/package.json deleted file mode 100644 index d5c343d..0000000 --- a/js/node_modules/babel-runtime/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "_args": [ - [ - "babel-runtime@^5.0.0", - "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/babel-plugin-syntax-flow" - ] - ], - "_from": "babel-runtime@>=5.0.0 <6.0.0", - "_id": "babel-runtime@5.8.34", - "_inCache": true, - "_location": "/babel-runtime", - "_nodeVersion": "0.12.7", - "_npmUser": { - "email": "sebmck@gmail.com", - "name": "sebmck" - }, - "_npmVersion": "2.11.3", - "_phantomChildren": {}, - "_requested": { - "name": "babel-runtime", - "raw": "babel-runtime@^5.0.0", - "rawSpec": "^5.0.0", - "scope": null, - "spec": ">=5.0.0 <6.0.0", - "type": "range" - }, - "_requiredBy": [ - "/babel-code-frame", - "/babel-helper-builder-react-jsx", - "/babel-messages", - "/babel-plugin-syntax-flow", - "/babel-plugin-syntax-jsx", - "/babel-plugin-transform-flow-strip-types", - "/babel-plugin-transform-react-display-name", - "/babel-plugin-transform-react-jsx", - "/babel-plugin-transform-react-jsx-source", - "/babel-traverse", - "/babel-types", - "/babylon" - ], - "_resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.34.tgz", - "_shasum": "3fa2f0861b32a6a370d73d1febfe23db43664566", - "_shrinkwrap": null, - "_spec": "babel-runtime@^5.0.0", - "_where": "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/babel-plugin-syntax-flow", - "author": { - "email": "sebmck@gmail.com", - "name": "Sebastian McKenzie" - }, - "bugs": { - "url": "https://github.com/babel/babel/issues" - }, - "dependencies": { - "core-js": "^1.0.0" - }, - "description": "babel selfContained runtime", - "devDependencies": { - "babel-plugin-runtime": "^1.0.7", - "regenerator": "^0.8.34" - }, - "directories": {}, - "dist": { - "shasum": "3fa2f0861b32a6a370d73d1febfe23db43664566", - "tarball": "http://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.34.tgz" - }, - "homepage": "https://github.com/babel/babel#readme", - "installable": true, - "license": "MIT", - "maintainers": [ - { - "name": "sebmck", - "email": "sebmck@gmail.com" - } - ], - "name": "babel-runtime", - "optionalDependencies": {}, - "repository": { - "type": "git", - "url": "git+https://github.com/babel/babel.git" - }, - "scripts": {}, - "version": "5.8.34" -} diff --git a/js/node_modules/babel-runtime/regenerator/index.js b/js/node_modules/babel-runtime/regenerator/index.js deleted file mode 100644 index d61f886..0000000 --- a/js/node_modules/babel-runtime/regenerator/index.js +++ /dev/null @@ -1,33 +0,0 @@ -// This method of obtaining a reference to the global object needs to be -// kept identical to the way it is obtained in runtime.js -var g = - typeof global === "object" ? global : - typeof window === "object" ? window : - typeof self === "object" ? self : this; - -// Use `getOwnPropertyNames` because not all browsers support calling -// `hasOwnProperty` on the global `self` object in a worker. See #183. -var hadRuntime = g.regeneratorRuntime && - Object.getOwnPropertyNames(g).indexOf("regeneratorRuntime") >= 0; - -// Save the old regeneratorRuntime in case it needs to be restored later. -var oldRuntime = hadRuntime && g.regeneratorRuntime; - -// Force reevalutation of runtime.js. -g.regeneratorRuntime = undefined; - -module.exports = require("./runtime"); - -if (hadRuntime) { - // Restore the original runtime. - g.regeneratorRuntime = oldRuntime; -} else { - // Remove the global property added by runtime.js. - try { - delete g.regeneratorRuntime; - } catch(e) { - g.regeneratorRuntime = undefined; - } -} - -module.exports = { "default": module.exports, __esModule: true }; diff --git a/js/node_modules/babel-runtime/regenerator/runtime.js b/js/node_modules/babel-runtime/regenerator/runtime.js deleted file mode 100644 index 90f3221..0000000 --- a/js/node_modules/babel-runtime/regenerator/runtime.js +++ /dev/null @@ -1,647 +0,0 @@ -/** - * Copyright (c) 2014, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * https://raw.github.com/facebook/regenerator/master/LICENSE file. An - * additional grant of patent rights can be found in the PATENTS file in - * the same directory. - */ - -"use strict"; - -var _Symbol = require("babel-runtime/core-js/symbol")["default"]; - -var _Object$create = require("babel-runtime/core-js/object/create")["default"]; - -var _Object$setPrototypeOf = require("babel-runtime/core-js/object/set-prototype-of")["default"]; - -var _Promise = require("babel-runtime/core-js/promise")["default"]; - -!(function (global) { - "use strict"; - - var hasOwn = Object.prototype.hasOwnProperty; - var undefined; // More compressible than void 0. - var $Symbol = typeof _Symbol === "function" ? _Symbol : {}; - var iteratorSymbol = $Symbol.iterator || "@@iterator"; - var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - - var inModule = typeof module === "object"; - var runtime = global.regeneratorRuntime; - if (runtime) { - if (inModule) { - // If regeneratorRuntime is defined globally and we're in a module, - // make the exports object identical to regeneratorRuntime. - module.exports = runtime; - } - // Don't bother evaluating the rest of this file if the runtime was - // already defined globally. - return; - } - - // Define the runtime globally (as expected by generated code) as either - // module.exports (if we're in a module) or a new, empty object. - runtime = global.regeneratorRuntime = inModule ? module.exports : {}; - - function wrap(innerFn, outerFn, self, tryLocsList) { - // If outerFn provided, then outerFn.prototype instanceof Generator. - var generator = _Object$create((outerFn || Generator).prototype); - var context = new Context(tryLocsList || []); - - // The ._invoke method unifies the implementations of the .next, - // .throw, and .return methods. - generator._invoke = makeInvokeMethod(innerFn, self, context); - - return generator; - } - runtime.wrap = wrap; - - // Try/catch helper to minimize deoptimizations. Returns a completion - // record like context.tryEntries[i].completion. This interface could - // have been (and was previously) designed to take a closure to be - // invoked without arguments, but in all the cases we care about we - // already have an existing method we want to call, so there's no need - // to create a new function object. We can even get away with assuming - // the method takes exactly one argument, since that happens to be true - // in every case, so we don't have to touch the arguments object. The - // only additional allocation required is the completion record, which - // has a stable shape and so hopefully should be cheap to allocate. - function tryCatch(fn, obj, arg) { - try { - return { type: "normal", arg: fn.call(obj, arg) }; - } catch (err) { - return { type: "throw", arg: err }; - } - } - - var GenStateSuspendedStart = "suspendedStart"; - var GenStateSuspendedYield = "suspendedYield"; - var GenStateExecuting = "executing"; - var GenStateCompleted = "completed"; - - // Returning this object from the innerFn has the same effect as - // breaking out of the dispatch switch statement. - var ContinueSentinel = {}; - - // Dummy constructor functions that we use as the .constructor and - // .constructor.prototype properties for functions that return Generator - // objects. For full spec compliance, you may wish to configure your - // minifier not to mangle the names of these two functions. - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype; - GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; - GeneratorFunctionPrototype.constructor = GeneratorFunction; - GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction"; - - // Helper for defining the .next, .throw, and .return methods of the - // Iterator interface in terms of a single ._invoke method. - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - prototype[method] = function (arg) { - return this._invoke(method, arg); - }; - }); - } - - runtime.isGeneratorFunction = function (genFun) { - var ctor = typeof genFun === "function" && genFun.constructor; - return ctor ? ctor === GeneratorFunction || - // For the native GeneratorFunction constructor, the best we can - // do is to check its .name property. - (ctor.displayName || ctor.name) === "GeneratorFunction" : false; - }; - - runtime.mark = function (genFun) { - if (_Object$setPrototypeOf) { - _Object$setPrototypeOf(genFun, GeneratorFunctionPrototype); - } else { - genFun.__proto__ = GeneratorFunctionPrototype; - if (!(toStringTagSymbol in genFun)) { - genFun[toStringTagSymbol] = "GeneratorFunction"; - } - } - genFun.prototype = _Object$create(Gp); - return genFun; - }; - - // Within the body of any async function, `await x` is transformed to - // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test - // `value instanceof AwaitArgument` to determine if the yielded value is - // meant to be awaited. Some may consider the name of this method too - // cutesy, but they are curmudgeons. - runtime.awrap = function (arg) { - return new AwaitArgument(arg); - }; - - function AwaitArgument(arg) { - this.arg = arg; - } - - function AsyncIterator(generator) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if (record.type === "throw") { - reject(record.arg); - } else { - var result = record.arg; - var value = result.value; - if (value instanceof AwaitArgument) { - return _Promise.resolve(value.arg).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }); - } - - return _Promise.resolve(value).then(function (unwrapped) { - // When a yielded Promise is resolved, its final value becomes - // the .value of the Promise<{value,done}> result for the - // current iteration. If the Promise is rejected, however, the - // result for this iteration will be rejected with the same - // reason. Note that rejections of yielded Promises are not - // thrown back into the generator function, as is the case - // when an awaited Promise is rejected. This difference in - // behavior between yield and await is important, because it - // allows the consumer to decide what to do with the yielded - // rejection (swallow it and continue, manually .throw it back - // into the generator, abandon iteration, whatever). With - // await, by contrast, there is no opportunity to examine the - // rejection reason outside the generator function, so the - // only option is to throw it from the await expression, and - // let the generator function handle the exception. - result.value = unwrapped; - resolve(result); - }, reject); - } - } - - if (typeof process === "object" && process.domain) { - invoke = process.domain.bind(invoke); - } - - var previousPromise; - - function enqueue(method, arg) { - function callInvokeWithMethodAndArg() { - return new _Promise(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - - return previousPromise = - // If enqueue has been called before, then we want to wait until - // all previous Promises have been resolved before calling invoke, - // so that results are always delivered in the correct order. If - // enqueue has not been called before, then it is important to - // call invoke immediately, without waiting on a callback to fire, - // so that the async generator function has the opportunity to do - // any necessary setup in a predictable way. This predictability - // is why the Promise constructor synchronously invokes its - // executor callback, and why async functions synchronously - // execute code before the first await. Since we implement simple - // async functions in terms of async generators, it is especially - // important to get this right, even though it requires care. - previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, - // Avoid propagating failures to Promises returned by later - // invocations of the iterator. - callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } - - // Define the unified helper method that is used to implement .next, - // .throw, and .return (see defineIteratorMethods). - this._invoke = enqueue; - } - - defineIteratorMethods(AsyncIterator.prototype); - - // Note that simple async functions are implemented on top of - // AsyncIterator objects; they just return a Promise for the value of - // the final result produced by the iterator. - runtime.async = function (innerFn, outerFn, self, tryLocsList) { - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList)); - - return runtime.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator. - : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); - }); - }; - - function makeInvokeMethod(innerFn, self, context) { - var state = GenStateSuspendedStart; - - return function invoke(method, arg) { - if (state === GenStateExecuting) { - throw new Error("Generator is already running"); - } - - if (state === GenStateCompleted) { - if (method === "throw") { - throw arg; - } - - // Be forgiving, per 25.3.3.3.3 of the spec: - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume - return doneResult(); - } - - while (true) { - var delegate = context.delegate; - if (delegate) { - if (method === "return" || method === "throw" && delegate.iterator[method] === undefined) { - // A return or throw (when the delegate iterator has no throw - // method) always terminates the yield* loop. - context.delegate = null; - - // If the delegate iterator has a return method, give it a - // chance to clean up. - var returnMethod = delegate.iterator["return"]; - if (returnMethod) { - var record = tryCatch(returnMethod, delegate.iterator, arg); - if (record.type === "throw") { - // If the return method threw an exception, let that - // exception prevail over the original return or throw. - method = "throw"; - arg = record.arg; - continue; - } - } - - if (method === "return") { - // Continue with the outer return, now that the delegate - // iterator has been terminated. - continue; - } - } - - var record = tryCatch(delegate.iterator[method], delegate.iterator, arg); - - if (record.type === "throw") { - context.delegate = null; - - // Like returning generator.throw(uncaught), but without the - // overhead of an extra function call. - method = "throw"; - arg = record.arg; - continue; - } - - // Delegate generator ran and handled its own exceptions so - // regardless of what the method was, we continue as if it is - // "next" with an undefined arg. - method = "next"; - arg = undefined; - - var info = record.arg; - if (info.done) { - context[delegate.resultName] = info.value; - context.next = delegate.nextLoc; - } else { - state = GenStateSuspendedYield; - return info; - } - - context.delegate = null; - } - - if (method === "next") { - if (state === GenStateSuspendedYield) { - context.sent = arg; - } else { - context.sent = undefined; - } - } else if (method === "throw") { - if (state === GenStateSuspendedStart) { - state = GenStateCompleted; - throw arg; - } - - if (context.dispatchException(arg)) { - // If the dispatched exception was caught by a catch block, - // then let that catch block handle the exception normally. - method = "next"; - arg = undefined; - } - } else if (method === "return") { - context.abrupt("return", arg); - } - - state = GenStateExecuting; - - var record = tryCatch(innerFn, self, context); - if (record.type === "normal") { - // If an exception is thrown from innerFn, we leave state === - // GenStateExecuting and loop back for another invocation. - state = context.done ? GenStateCompleted : GenStateSuspendedYield; - - var info = { - value: record.arg, - done: context.done - }; - - if (record.arg === ContinueSentinel) { - if (context.delegate && method === "next") { - // Deliberately forget the last sent value so that we don't - // accidentally pass it on to the delegate. - arg = undefined; - } - } else { - return info; - } - } else if (record.type === "throw") { - state = GenStateCompleted; - // Dispatch the exception by looping back around to the - // context.dispatchException(arg) call above. - method = "throw"; - arg = record.arg; - } - } - }; - } - - // Define Generator.prototype.{next,throw,return} in terms of the - // unified ._invoke helper method. - defineIteratorMethods(Gp); - - Gp[iteratorSymbol] = function () { - return this; - }; - - Gp[toStringTagSymbol] = "Generator"; - - Gp.toString = function () { - return "[object Generator]"; - }; - - function pushTryEntry(locs) { - var entry = { tryLoc: locs[0] }; - - if (1 in locs) { - entry.catchLoc = locs[1]; - } - - if (2 in locs) { - entry.finallyLoc = locs[2]; - entry.afterLoc = locs[3]; - } - - this.tryEntries.push(entry); - } - - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal"; - delete record.arg; - entry.completion = record; - } - - function Context(tryLocsList) { - // The root entry object (effectively a try statement without a catch - // or a finally block) gives us a place to store values thrown from - // locations where there is no enclosing try statement. - this.tryEntries = [{ tryLoc: "root" }]; - tryLocsList.forEach(pushTryEntry, this); - this.reset(true); - } - - runtime.keys = function (object) { - var keys = []; - for (var key in object) { - keys.push(key); - } - keys.reverse(); - - // Rather than returning an object with a next method, we keep - // things simple and return the next function itself. - return function next() { - while (keys.length) { - var key = keys.pop(); - if (key in object) { - next.value = key; - next.done = false; - return next; - } - } - - // To avoid creating an additional object, we just hang the .value - // and .done properties off the next function object itself. This - // also ensures that the minifier will not anonymize the function. - next.done = true; - return next; - }; - }; - - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - if (iteratorMethod) { - return iteratorMethod.call(iterable); - } - - if (typeof iterable.next === "function") { - return iterable; - } - - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - while (++i < iterable.length) { - if (hasOwn.call(iterable, i)) { - next.value = iterable[i]; - next.done = false; - return next; - } - } - - next.value = undefined; - next.done = true; - - return next; - }; - - return next.next = next; - } - } - - // Return an iterator with no values. - return { next: doneResult }; - } - runtime.values = values; - - function doneResult() { - return { value: undefined, done: true }; - } - - Context.prototype = { - constructor: Context, - - reset: function reset(skipTempReset) { - this.prev = 0; - this.next = 0; - this.sent = undefined; - this.done = false; - this.delegate = null; - - this.tryEntries.forEach(resetTryEntry); - - if (!skipTempReset) { - for (var name in this) { - // Not sure about the optimal order of these conditions: - if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { - this[name] = undefined; - } - } - } - }, - - stop: function stop() { - this.done = true; - - var rootEntry = this.tryEntries[0]; - var rootRecord = rootEntry.completion; - if (rootRecord.type === "throw") { - throw rootRecord.arg; - } - - return this.rval; - }, - - dispatchException: function dispatchException(exception) { - if (this.done) { - throw exception; - } - - var context = this; - function handle(loc, caught) { - record.type = "throw"; - record.arg = exception; - context.next = loc; - return !!caught; - } - - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - var record = entry.completion; - - if (entry.tryLoc === "root") { - // Exception thrown outside of any try block that could handle - // it, so set the completion value of the entire function to - // throw the exception. - return handle("end"); - } - - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"); - var hasFinally = hasOwn.call(entry, "finallyLoc"); - - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } else if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else if (hasCatch) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } - } else if (hasFinally) { - if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else { - throw new Error("try statement without catch or finally"); - } - } - } - }, - - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - - if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { - // Ignore the finally entry if control is not jumping to a - // location outside the try/catch block. - finallyEntry = null; - } - - var record = finallyEntry ? finallyEntry.completion : {}; - record.type = type; - record.arg = arg; - - if (finallyEntry) { - this.next = finallyEntry.finallyLoc; - } else { - this.complete(record); - } - - return ContinueSentinel; - }, - - complete: function complete(record, afterLoc) { - if (record.type === "throw") { - throw record.arg; - } - - if (record.type === "break" || record.type === "continue") { - this.next = record.arg; - } else if (record.type === "return") { - this.rval = record.arg; - this.next = "end"; - } else if (record.type === "normal" && afterLoc) { - this.next = afterLoc; - } - }, - - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) { - this.complete(entry.completion, entry.afterLoc); - resetTryEntry(entry); - return ContinueSentinel; - } - } - }, - - "catch": function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if (record.type === "throw") { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; - } - } - - // The context.catch method must only be called with a location - // argument that corresponds to a known catch block. - throw new Error("illegal catch attempt"); - }, - - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }; - - return ContinueSentinel; - } - }; -})( -// Among the various tricks for obtaining a reference to the global -// object, this seems to be the most reliable technique that does not -// use indirect eval (which violates Content Security Policy). -typeof global === "object" ? global : typeof window === "object" ? window : typeof self === "object" ? self : undefined); \ No newline at end of file diff --git a/js/node_modules/babel-traverse/.npmignore b/js/node_modules/babel-traverse/.npmignore deleted file mode 100644 index a57582c..0000000 --- a/js/node_modules/babel-traverse/.npmignore +++ /dev/null @@ -1 +0,0 @@ -/src diff --git a/js/node_modules/babel-traverse/README.md b/js/node_modules/babel-traverse/README.md deleted file mode 100644 index 6addc10..0000000 --- a/js/node_modules/babel-traverse/README.md +++ /dev/null @@ -1 +0,0 @@ -# babel-traverse diff --git a/js/node_modules/babel-traverse/lib/context.js b/js/node_modules/babel-traverse/lib/context.js deleted file mode 100644 index 6fd2a81..0000000 --- a/js/node_modules/babel-traverse/lib/context.js +++ /dev/null @@ -1,205 +0,0 @@ -"use strict"; - -var _classCallCheck = require("babel-runtime/helpers/class-call-check")["default"]; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -exports.__esModule = true; - -var _path = require("./path"); - -var _path2 = _interopRequireDefault(_path); - -var _babelTypes = require("babel-types"); - -var t = _interopRequireWildcard(_babelTypes); - -var testing = process.env.NODE_ENV === "test"; - -var TraversalContext = (function () { - function TraversalContext(scope, opts, state, parentPath) { - _classCallCheck(this, TraversalContext); - - this.parentPath = parentPath; - this.scope = scope; - this.state = state; - this.opts = opts; - } - - /** - * This method does a simple check to determine whether or not we really need to attempt - * visit a node. This will prevent us from constructing a NodePath. - */ - - TraversalContext.prototype.shouldVisit = function shouldVisit(node) /*: boolean*/ { - var opts = this.opts; - if (opts.enter || opts.exit) return true; - - // check if we have a visitor for this node - if (opts[node.type]) return true; - - // check if we're going to traverse into this node - var keys /*: ?Array*/ = t.VISITOR_KEYS[node.type]; - if (!keys || !keys.length) return false; - - // we need to traverse into this node so ensure that it has children to traverse into! - for (var _iterator = keys, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var key = _ref; - - if (node[key]) return true; - } - - return false; - }; - - TraversalContext.prototype.create = function create(node, obj, key, listKey) /*: NodePath*/ { - return _path2["default"].get({ - parentPath: this.parentPath, - parent: node, - container: obj, - key: key, - listKey: listKey - }); - }; - - TraversalContext.prototype.maybeQueue = function maybeQueue(path, notPriority /*:: ?: boolean*/) { - if (this.trap) { - throw new Error("Infinite cycle detected"); - } - - if (this.queue) { - if (notPriority) { - this.queue.push(path); - } else { - this.priorityQueue.push(path); - } - } - }; - - TraversalContext.prototype.visitMultiple = function visitMultiple(container, parent, listKey) { - // nothing to traverse! - if (container.length === 0) return false; - - var queue = []; - - // build up initial queue - for (var key = 0; key < container.length; key++) { - var node = container[key]; - if (node && this.shouldVisit(node)) { - queue.push(this.create(parent, container, key, listKey)); - } - } - - return this.visitQueue(queue); - }; - - TraversalContext.prototype.visitSingle = function visitSingle(node, key) /*: boolean*/ { - if (this.shouldVisit(node[key])) { - return this.visitQueue([this.create(node, node, key)]); - } else { - return false; - } - }; - - TraversalContext.prototype.visitQueue = function visitQueue(queue /*: Array*/) { - // set queue - this.queue = queue; - this.priorityQueue = []; - - var visited = []; - var stop = false; - - // visit the queue - for (var _iterator2 = queue, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) { - var _ref2; - - if (_isArray2) { - if (_i2 >= _iterator2.length) break; - _ref2 = _iterator2[_i2++]; - } else { - _i2 = _iterator2.next(); - if (_i2.done) break; - _ref2 = _i2.value; - } - - var path = _ref2; - - path.resync(); - path.pushContext(this); - - if (testing && queue.length >= 1000) { - this.trap = true; - } - - // ensure we don't visit the same node twice - if (visited.indexOf(path.node) >= 0) continue; - visited.push(path.node); - - if (path.visit()) { - stop = true; - break; - } - - if (this.priorityQueue.length) { - stop = this.visitQueue(this.priorityQueue); - this.priorityQueue = []; - this.queue = queue; - if (stop) break; - } - } - - // clear queue - for (var _iterator3 = queue, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) { - var _ref3; - - if (_isArray3) { - if (_i3 >= _iterator3.length) break; - _ref3 = _iterator3[_i3++]; - } else { - _i3 = _iterator3.next(); - if (_i3.done) break; - _ref3 = _i3.value; - } - - var path = _ref3; - - path.popContext(); - } - - // clear queue - this.queue = null; - - return stop; - }; - - TraversalContext.prototype.visit = function visit(node, key) { - var nodes = node[key]; - if (!nodes) return false; - - if (Array.isArray(nodes)) { - return this.visitMultiple(nodes, node, key); - } else { - return this.visitSingle(node, key); - } - }; - - return TraversalContext; -})(); - -exports["default"] = TraversalContext; -module.exports = exports["default"]; \ No newline at end of file diff --git a/js/node_modules/babel-traverse/lib/hub.js b/js/node_modules/babel-traverse/lib/hub.js deleted file mode 100644 index b46560c..0000000 --- a/js/node_modules/babel-traverse/lib/hub.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; - -var _classCallCheck = require("babel-runtime/helpers/class-call-check")["default"]; - -exports.__esModule = true; - -var Hub = function Hub(file, options) { - _classCallCheck(this, Hub); - - this.file = file; - this.options = options; -}; - -exports["default"] = Hub; -module.exports = exports["default"]; \ No newline at end of file diff --git a/js/node_modules/babel-traverse/lib/index.js b/js/node_modules/babel-traverse/lib/index.js deleted file mode 100644 index 30e266a..0000000 --- a/js/node_modules/babel-traverse/lib/index.js +++ /dev/null @@ -1,216 +0,0 @@ -"use strict"; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -var _Object$getOwnPropertySymbols = require("babel-runtime/core-js/object/get-own-property-symbols")["default"]; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -var _interopRequire = require("babel-runtime/helpers/interop-require")["default"]; - -exports.__esModule = true; -exports["default"] = traverse; - -var _context = require("./context"); - -var _context2 = _interopRequireDefault(_context); - -var _visitors = require("./visitors"); - -var visitors = _interopRequireWildcard(_visitors); - -var _babelMessages = require("babel-messages"); - -var messages = _interopRequireWildcard(_babelMessages); - -var _lodashCollectionIncludes = require("lodash/collection/includes"); - -var _lodashCollectionIncludes2 = _interopRequireDefault(_lodashCollectionIncludes); - -var _babelTypes = require("babel-types"); - -var t = _interopRequireWildcard(_babelTypes); - -var _path = require("./path"); - -exports.NodePath = _interopRequire(_path); - -var _scope = require("./scope"); - -exports.Scope = _interopRequire(_scope); - -var _hub = require("./hub"); - -exports.Hub = _interopRequire(_hub); -exports.visitors = visitors; - -function traverse(parent /*: Object | Array*/, opts /*:: ?: Object*/, scope /*:: ?: Object*/, state /*: Object*/, parentPath /*: Object*/) { - if (!parent) return; - if (!opts) opts = {}; - - if (!opts.noScope && !scope) { - if (parent.type !== "Program" && parent.type !== "File") { - throw new Error(messages.get("traverseNeedsParent", parent.type)); - } - } - - visitors.explode(opts); - - traverse.node(parent, opts, scope, state, parentPath); -} - -traverse.visitors = visitors; -traverse.verify = visitors.verify; -traverse.explode = visitors.explode; - -traverse.NodePath = require("./path"); -traverse.Scope = require("./scope"); -traverse.Hub = require("./hub"); - -traverse.cheap = function (node, enter) { - if (!node) return; - - var keys = t.VISITOR_KEYS[node.type]; - if (!keys) return; - - enter(node); - - for (var _iterator = keys, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var key = _ref; - - var subNode = node[key]; - - if (Array.isArray(subNode)) { - for (var _iterator2 = subNode, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) { - var _ref2; - - if (_isArray2) { - if (_i2 >= _iterator2.length) break; - _ref2 = _iterator2[_i2++]; - } else { - _i2 = _iterator2.next(); - if (_i2.done) break; - _ref2 = _i2.value; - } - - var _node = _ref2; - - traverse.cheap(_node, enter); - } - } else { - traverse.cheap(subNode, enter); - } - } -}; - -traverse.node = function (node /*: Object*/, opts /*: Object*/, scope /*: Object*/, state /*: Object*/, parentPath /*: Object*/, skipKeys /*:: ?*/) { - var keys /*: Array*/ = t.VISITOR_KEYS[node.type]; - if (!keys) return; - - var context = new _context2["default"](scope, opts, state, parentPath); - for (var _iterator3 = keys, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) { - var _ref3; - - if (_isArray3) { - if (_i3 >= _iterator3.length) break; - _ref3 = _iterator3[_i3++]; - } else { - _i3 = _iterator3.next(); - if (_i3.done) break; - _ref3 = _i3.value; - } - - var key = _ref3; - - if (skipKeys && skipKeys[key]) continue; - if (context.visit(node, key)) return; - } -}; - -var CLEAR_KEYS /*: Array*/ = t.COMMENT_KEYS.concat(["tokens", "comments", "start", "end", "loc", "raw", "rawValue"]); - -traverse.clearNode = function (node) { - for (var _iterator4 = CLEAR_KEYS, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _getIterator(_iterator4);;) { - var _ref4; - - if (_isArray4) { - if (_i4 >= _iterator4.length) break; - _ref4 = _iterator4[_i4++]; - } else { - _i4 = _iterator4.next(); - if (_i4.done) break; - _ref4 = _i4.value; - } - - var key = _ref4; - - if (node[key] != null) node[key] = undefined; - } - - for (var key in node) { - if (key[0] === "_" && node[key] != null) node[key] = undefined; - } - - var syms /*: Array*/ = _Object$getOwnPropertySymbols(node); - for (var _iterator5 = syms, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _getIterator(_iterator5);;) { - var _ref5; - - if (_isArray5) { - if (_i5 >= _iterator5.length) break; - _ref5 = _iterator5[_i5++]; - } else { - _i5 = _iterator5.next(); - if (_i5.done) break; - _ref5 = _i5.value; - } - - var sym = _ref5; - - node[sym] = null; - } -}; - -traverse.removeProperties = function (tree) { - traverse.cheap(tree, traverse.clearNode); - return tree; -}; - -function hasBlacklistedType(path, state) { - if (path.node.type === state.type) { - state.has = true; - path.skip(); - } -} - -traverse.hasType = function (tree /*: Object*/, scope /*: Object*/, type /*: Object*/, blacklistTypes /*: Array*/) /*: boolean*/ { - // the node we're searching in is blacklisted - if (_lodashCollectionIncludes2["default"](blacklistTypes, tree.type)) return false; - - // the type we're looking for is the same as the passed node - if (tree.type === type) return true; - - var state = { - has: false, - type: type - }; - - traverse(tree, { - blacklist: blacklistTypes, - enter: hasBlacklistedType - }, scope, state); - - return state.has; -}; \ No newline at end of file diff --git a/js/node_modules/babel-traverse/lib/path/ancestry.js b/js/node_modules/babel-traverse/lib/path/ancestry.js deleted file mode 100644 index efe3379..0000000 --- a/js/node_modules/babel-traverse/lib/path/ancestry.js +++ /dev/null @@ -1,287 +0,0 @@ -// This file contains that retrieve or validate anything related to the current paths ancestry. - -"use strict"; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -exports.__esModule = true; -exports.findParent = findParent; -exports.find = find; -exports.getFunctionParent = getFunctionParent; -exports.getStatementParent = getStatementParent; -exports.getEarliestCommonAncestorFrom = getEarliestCommonAncestorFrom; -exports.getDeepestCommonAncestorFrom = getDeepestCommonAncestorFrom; -exports.getAncestry = getAncestry; -exports.inType = inType; -exports.inShadow = inShadow; - -var _babelTypes = require("babel-types"); - -var t = _interopRequireWildcard(_babelTypes); - -var _index = require("./index"); - -var _index2 = _interopRequireDefault(_index); - -/** - * Call the provided `callback` with the `NodePath`s of all the parents. - * When the `callback` returns a truthy value, we return that node path. - */ - -function findParent(callback) { - var path = this; - while (path = path.parentPath) { - if (callback(path)) return path; - } - return null; -} - -/** - * Description - */ - -function find(callback) { - var path = this; - do { - if (callback(path)) return path; - } while (path = path.parentPath); - return null; -} - -/** - * Get the parent function of the current path. - */ - -function getFunctionParent() { - return this.findParent(function (path) { - return path.isFunction() || path.isProgram(); - }); -} - -/** - * Walk up the tree until we hit a parent node path in a list. - */ - -function getStatementParent() { - var path = this; - do { - if (Array.isArray(path.container)) { - return path; - } - } while (path = path.parentPath); -} - -/** - * Get the deepest common ancestor and then from it, get the earliest relationship path - * to that ancestor. - * - * Earliest is defined as being "before" all the other nodes in terms of list container - * position and visiting key. - */ - -function getEarliestCommonAncestorFrom(paths /*: Array*/) /*: NodePath*/ { - return this.getDeepestCommonAncestorFrom(paths, function (deepest, i, ancestries) { - var earliest = undefined; - var keys = t.VISITOR_KEYS[deepest.type]; - - for (var _iterator = (ancestries /*: Array*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var ancestry = _ref; - - var path = ancestry[i + 1]; - - // first path - if (!earliest) { - earliest = path; - continue; - } - - // handle containers - if (path.listKey && earliest.listKey === path.listKey) { - // we're in the same container so check if we're earlier - if (path.key < earliest.key) { - earliest = path; - continue; - } - } - - // handle keys - var earliestKeyIndex = keys.indexOf(earliest.parentKey); - var currentKeyIndex = keys.indexOf(path.parentKey); - if (earliestKeyIndex > currentKeyIndex) { - // key appears before so it's earlier - earliest = path; - } - } - - return earliest; - }); -} - -/** - * Get the earliest path in the tree where the provided `paths` intersect. - * - * TODO: Possible optimisation target. - */ - -function getDeepestCommonAncestorFrom(paths /*: Array*/, filter /*:: ?: Function*/) /*: NodePath*/ { - // istanbul ignore next - - var _this = this; - - if (!paths.length) { - return this; - } - - if (paths.length === 1) { - return paths[0]; - } - - // minimum depth of the tree so we know the highest node - var minDepth = Infinity; - - // last common ancestor - var lastCommonIndex = undefined, - lastCommon = undefined; - - // get the ancestors of the path, breaking when the parent exceeds ourselves - var ancestries = paths.map(function (path) { - var ancestry = []; - - do { - ancestry.unshift(path); - } while ((path = path.parentPath) && path !== _this); - - // save min depth to avoid going too far in - if (ancestry.length < minDepth) { - minDepth = ancestry.length; - } - - return ancestry; - }); - - // get the first ancestry so we have a seed to assess all other ancestries with - var first = ancestries[0]; - - // check ancestor equality - depthLoop: for (var i = 0; i < minDepth; i++) { - var shouldMatch = first[i]; - - for (var _iterator2 = (ancestries /*: Array*/), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) { - var _ref2; - - if (_isArray2) { - if (_i2 >= _iterator2.length) break; - _ref2 = _iterator2[_i2++]; - } else { - _i2 = _iterator2.next(); - if (_i2.done) break; - _ref2 = _i2.value; - } - - var ancestry = _ref2; - - if (ancestry[i] !== shouldMatch) { - // we've hit a snag - break depthLoop; - } - } - - // next iteration may break so store these so they can be returned - lastCommonIndex = i; - lastCommon = shouldMatch; - } - - if (lastCommon) { - if (filter) { - return filter(lastCommon, lastCommonIndex, ancestries); - } else { - return lastCommon; - } - } else { - throw new Error("Couldn't find intersection"); - } -} - -/** - * Build an array of node paths containing the entire ancestry of the current node path. - * - * NOTE: The current node path is included in this. - */ - -function getAncestry() { - var path = this; - var paths = []; - do { - paths.push(path); - } while (path = path.parentPath); - return paths; -} - -function inType() { - var path = this; - while (path) { - for (var _iterator3 = (arguments /*: Array*/), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) { - var _ref3; - - if (_isArray3) { - if (_i3 >= _iterator3.length) break; - _ref3 = _iterator3[_i3++]; - } else { - _i3 = _iterator3.next(); - if (_i3.done) break; - _ref3 = _i3.value; - } - - var type = _ref3; - - if (path.node.type === type) return true; - } - path = path.parentPath; - } - - return false; -} - -/** - * Check if we're inside a shadowed function. - */ - -function inShadow(key /*:: ?*/) { - var path = this; - do { - if (path.isFunction()) { - var shadow = path.node.shadow; - if (shadow) { - // this is because sometimes we may have a `shadow` value of: - // - // { this: false } - // - // we need to catch this case if `inShadow` has been passed a `key` - if (!key || shadow[key] !== false) { - return path; - } - } else if (path.isArrowFunctionExpression()) { - return path; - } - - // normal function, we've found our function context - return null; - } - } while (path = path.parentPath); - return null; -} \ No newline at end of file diff --git a/js/node_modules/babel-traverse/lib/path/comments.js b/js/node_modules/babel-traverse/lib/path/comments.js deleted file mode 100644 index 9c02461..0000000 --- a/js/node_modules/babel-traverse/lib/path/comments.js +++ /dev/null @@ -1,56 +0,0 @@ -// This file contains methods responsible for dealing with comments. - -/** - * Share comments amongst siblings. - */ - -"use strict"; - -exports.__esModule = true; -exports.shareCommentsWithSiblings = shareCommentsWithSiblings; -exports.addComment = addComment; -exports.addComments = addComments; - -function shareCommentsWithSiblings() { - var node = this.node; - if (!node) return; - - var trailing = node.trailingComments; - var leading = node.leadingComments; - if (!trailing && !leading) return; - - var prev = this.getSibling(this.key - 1); - var next = this.getSibling(this.key + 1); - - if (!prev.node) prev = next; - if (!next.node) next = prev; - - prev.addComments("trailing", leading); - next.addComments("leading", trailing); -} - -function addComment(type, content, line /*:: ?*/) { - this.addComments(type, [{ - type: line ? "CommentLine" : "CommentBlock", - value: content - }]); -} - -/** - * Give node `comments` of the specified `type`. - */ - -function addComments(type /*: string*/, comments /*: Array*/) { - if (!comments) return; - - var node = this.node; - if (!node) return; - - var key = type + "Comments"; - - if (node[key]) { - node[key] = node[key].concat(comments); - } else { - node[key] = comments; - } -} \ No newline at end of file diff --git a/js/node_modules/babel-traverse/lib/path/constants.js b/js/node_modules/babel-traverse/lib/path/constants.js deleted file mode 100644 index 8e753fa..0000000 --- a/js/node_modules/babel-traverse/lib/path/constants.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; - -exports.__esModule = true; -var PATH_CACHE_KEY = "_paths";exports.PATH_CACHE_KEY = PATH_CACHE_KEY; -//Symbol(); \ No newline at end of file diff --git a/js/node_modules/babel-traverse/lib/path/context.js b/js/node_modules/babel-traverse/lib/path/context.js deleted file mode 100644 index 918a576..0000000 --- a/js/node_modules/babel-traverse/lib/path/context.js +++ /dev/null @@ -1,280 +0,0 @@ -// This file contains methods responsible for maintaining a TraversalContext. - -"use strict"; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -exports.__esModule = true; -exports.call = call; -exports._call = _call; -exports.isBlacklisted = isBlacklisted; -exports.visit = visit; -exports.skip = skip; -exports.skipKey = skipKey; -exports.stop = stop; -exports.setScope = setScope; -exports.setContext = setContext; -exports.resync = resync; -exports._resyncParent = _resyncParent; -exports._resyncKey = _resyncKey; -exports._resyncList = _resyncList; -exports._resyncRemoved = _resyncRemoved; -exports.popContext = popContext; -exports.pushContext = pushContext; -exports.setup = setup; -exports.setKey = setKey; -exports.requeue = requeue; - -var _index = require("../index"); - -var _index2 = _interopRequireDefault(_index); - -function call(key) /*: boolean*/ { - var opts = this.opts; - - this.debug(function () { - return key; - }); - - if (this.node) { - if (this._call(opts[key])) return true; - } - - if (this.node) { - return this._call(opts[this.node.type] && opts[this.node.type][key]); - } - - return false; -} - -function _call(fns /*:: ?: Array*/) /*: boolean*/ { - if (!fns) return false; - - for (var _iterator = fns, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var fn = _ref; - - if (!fn) continue; - - var node = this.node; - if (!node) return true; - - var ret = fn.call(this.state, this, this.state); - if (ret) throw new Error("Unexpected return value from visitor method " + fn); - - // node has been replaced, it will have been requeued - if (this.node !== node) return true; - - if (this.shouldStop || this.shouldSkip || this.removed) return true; - } - - return false; -} - -function isBlacklisted() /*: boolean*/ { - var blacklist = this.opts.blacklist; - return blacklist && blacklist.indexOf(this.node.type) > -1; -} - -function visit() /*: boolean*/ { - if (!this.node) { - return false; - } - - if (this.isBlacklisted()) { - return false; - } - - if (this.opts.shouldSkip && this.opts.shouldSkip(this)) { - return false; - } - - if (this.call("enter") || this.shouldSkip) { - this.debug(function () { - return "Skip..."; - }); - return this.shouldStop; - } - - this.debug(function () { - return "Recursing into..."; - }); - _index2["default"].node(this.node, this.opts, this.scope, this.state, this, this.skipKeys); - - this.call("exit"); - - return this.shouldStop; -} - -function skip() { - this.shouldSkip = true; -} - -function skipKey(key) { - this.skipKeys[key] = true; -} - -function stop() { - this.shouldStop = true; - this.shouldSkip = true; -} - -function setScope() { - if (this.opts && this.opts.noScope) return; - - var target = this.context && this.context.scope; - - if (!target) { - var path = this.parentPath; - while (path && !target) { - if (path.opts && path.opts.noScope) return; - - target = path.scope; - path = path.parentPath; - } - } - - this.scope = this.getScope(target); - if (this.scope) this.scope.init(); -} - -function setContext(context) { - this.shouldSkip = false; - this.shouldStop = false; - this.removed = false; - this.skipKeys = {}; - - if (context) { - this.context = context; - this.state = context.state; - this.opts = context.opts; - } - - this.setScope(); - - return this; -} - -/** - * Here we resync the node paths `key` and `container`. If they've changed according - * to what we have stored internally then we attempt to resync by crawling and looking - * for the new values. - */ - -function resync() { - if (this.removed) return; - - this._resyncParent(); - this._resyncList(); - this._resyncKey(); - //this._resyncRemoved(); -} - -function _resyncParent() { - if (this.parentPath) { - this.parent = this.parentPath.node; - } -} - -function _resyncKey() { - if (!this.container) return; - - if (this.node === this.container[this.key]) return; - - // grrr, path key is out of sync. this is likely due to a modification to the AST - // not done through our path APIs - - if (Array.isArray(this.container)) { - for (var i = 0; i < this.container.length; i++) { - if (this.container[i] === this.node) { - return this.setKey(i); - } - } - } else { - for (var key in this.container) { - if (this.container[key] === this.node) { - return this.setKey(key); - } - } - } - - // ¯\_(ツ)_/¯ who knows where it's gone lol - this.key = null; -} - -function _resyncList() { - if (!this.parent || !this.inList) return; - - var newContainer = this.parent[this.listKey]; - if (this.container === newContainer) return; - - // container is out of sync. this is likely the result of it being reassigned - this.container = newContainer || null; -} - -function _resyncRemoved() { - if (this.key == null || !this.container || this.container[this.key] !== this.node) { - this._markRemoved(); - } -} - -function popContext() { - this.contexts.pop(); - this.setContext(this.contexts[this.contexts.length - 1]); -} - -function pushContext(context) { - this.contexts.push(context); - this.setContext(context); -} - -function setup(parentPath, container, listKey, key) { - this.inList = !!listKey; - this.listKey = listKey; - this.parentKey = listKey || key; - this.container = container; - - this.parentPath = parentPath || this.parentPath; - this.setKey(key); -} - -function setKey(key) { - this.key = key; - this.node = this.container[this.key]; - this.type = this.node && this.node.type; -} - -function requeue() { - var path = arguments.length <= 0 || arguments[0] === undefined ? this : arguments[0]; - - if (path.removed) return; - - for (var _iterator2 = this.contexts, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) { - var _ref2; - - if (_isArray2) { - if (_i2 >= _iterator2.length) break; - _ref2 = _iterator2[_i2++]; - } else { - _i2 = _iterator2.next(); - if (_i2.done) break; - _ref2 = _i2.value; - } - - var context = _ref2; - - context.maybeQueue(path); - } -} \ No newline at end of file diff --git a/js/node_modules/babel-traverse/lib/path/conversion.js b/js/node_modules/babel-traverse/lib/path/conversion.js deleted file mode 100644 index 44cc50b..0000000 --- a/js/node_modules/babel-traverse/lib/path/conversion.js +++ /dev/null @@ -1,50 +0,0 @@ -// This file contains methods that convert the path node into another node or some other type of data. - -"use strict"; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -exports.__esModule = true; -exports.toComputedKey = toComputedKey; -exports.ensureBlock = ensureBlock; -exports.arrowFunctionToShadowed = arrowFunctionToShadowed; - -var _babelTypes = require("babel-types"); - -var t = _interopRequireWildcard(_babelTypes); - -function toComputedKey() /*: Object*/ { - var node = this.node; - - var key = undefined; - if (this.isMemberExpression()) { - key = node.property; - } else if (this.isProperty() || this.isMethod()) { - key = node.key; - } else { - throw new ReferenceError("todo"); - } - - if (!node.computed) { - if (t.isIdentifier(key)) key = t.stringLiteral(key.name); - } - - return key; -} - -function ensureBlock() { - return t.ensureBlock(this.node); -} - -function arrowFunctionToShadowed() { - // todo: maybe error - if (!this.isArrowFunctionExpression()) return; - - this.ensureBlock(); - - var node = this.node; - - node.expression = false; - node.type = "FunctionExpression"; - node.shadow = node.shadow || true; -} \ No newline at end of file diff --git a/js/node_modules/babel-traverse/lib/path/evaluation.js b/js/node_modules/babel-traverse/lib/path/evaluation.js deleted file mode 100644 index 1564037..0000000 --- a/js/node_modules/babel-traverse/lib/path/evaluation.js +++ /dev/null @@ -1,345 +0,0 @@ -"use strict"; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -exports.__esModule = true; -exports.evaluateTruthy = evaluateTruthy; -exports.evaluate = evaluate; - -// This file contains Babels metainterpreter that can evaluate static code. - -/* eslint eqeqeq: 0 */ - -/*:: import type NodePath from "./index";*/var VALID_CALLEES = ["String", "Number", "Math"]; -var INVALID_METHODS = ["random"]; - -/** - * Walk the input `node` and statically evaluate if it's truthy. - * - * Returning `true` when we're sure that the expression will evaluate to a - * truthy value, `false` if we're sure that it will evaluate to a falsy - * value and `undefined` if we aren't sure. Because of this please do not - * rely on coercion when using this method and check with === if it's false. - * - * For example do: - * - * if (t.evaluateTruthy(node) === false) falsyLogic(); - * - * **AND NOT** - * - * if (!t.evaluateTruthy(node)) falsyLogic(); - * - */ - -function evaluateTruthy() /*: boolean*/ { - var res = this.evaluate(); - if (res.confident) return !!res.value; -} - -/** - * Walk the input `node` and statically evaluate it. - * - * Returns an object in the form `{ confident, value }`. `confident` indicates - * whether or not we had to drop out of evaluating the expression because of - * hitting an unknown node that we couldn't confidently find the value of. - * - * Example: - * - * t.evaluate(parse("5 + 5")) // { confident: true, value: 10 } - * t.evaluate(parse("!true")) // { confident: true, value: false } - * t.evaluate(parse("foo + foo")) // { confident: false, value: undefined } - * - */ - -function evaluate() /*: { confident: boolean; value: any }*/ { - var confident = true; - var deoptPath /*: ?NodePath*/ = undefined; - - function deopt(path) { - if (!confident) return; - deoptPath = path; - confident = false; - } - - var value = evaluate(this); - if (!confident) value = undefined; - return { - confident: confident, - deopt: deoptPath, - value: value - }; - - function evaluate(path) { - if (!confident) return; - - var node = path.node; - - if (path.isSequenceExpression()) { - var exprs = path.get("expressions"); - return evaluate(exprs[exprs.length - 1]); - } - - if (path.isStringLiteral() || path.isNumericLiteral() || path.isBooleanLiteral()) { - return node.value; - } - - if (path.isNullLiteral()) { - return null; - } - - if (path.isTemplateLiteral()) { - var str = ""; - - var i = 0; - var exprs = path.get("expressions"); - - for (var _iterator = (node.quasis /*: Array*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var elem = _ref; - - // not confident, evaluated an expression we don't like - if (!confident) break; - - // add on cooked element - str += elem.value.cooked; - - // add on interpolated expression if it's present - var expr = exprs[i++]; - if (expr) str += String(evaluate(expr)); - } - - if (confident) return str; - } - - if (path.isConditionalExpression()) { - if (evaluate(path.get("test"))) { - return evaluate(path.get("consequent")); - } else { - return evaluate(path.get("alternate")); - } - } - - if (path.isExpressionWrapper()) { - // TypeCastExpression, ExpressionStatement etc - return evaluate(path.get("expression")); - } - - // "foo".length - if (path.isMemberExpression() && !path.parentPath.isCallExpression({ callee: node })) { - var property = path.get("property"); - var object = path.get("object"); - - if (object.isLiteral() && property.isIdentifier()) { - var _value = object.node.value; - var type = typeof _value; - if (type === "number" || type === "string") { - return _value[property.node.name]; - } - } - } - - if (path.isReferencedIdentifier()) { - var binding = path.scope.getBinding(node.name); - if (binding && binding.hasValue) { - return binding.value; - } else { - if (node.name === "undefined") { - return undefined; - } else if (node.name === "Infinity") { - return Infinity; - } else if (node.name === "NaN") { - return NaN; - } - - var resolved = path.resolve(); - if (resolved === path) { - return deopt(path); - } else { - return evaluate(resolved); - } - } - } - - if (path.isUnaryExpression({ prefix: true })) { - if (node.operator === "void") { - // we don't need to evaluate the argument to know what this will return - return undefined; - } - - var argument = path.get("argument"); - if (node.operator === "typeof" && (argument.isFunction() || argument.isClass())) { - return "function"; - } - - var arg = evaluate(argument); - switch (node.operator) { - case "!": - return !arg; - case "+": - return +arg; - case "-": - return -arg; - case "~": - return ~arg; - case "typeof": - return typeof arg; - } - } - - if (path.isArrayExpression()) { - var arr = []; - var elems /*: Array*/ = path.get("elements"); - for (var _iterator2 = elems, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) { - var _ref2; - - if (_isArray2) { - if (_i2 >= _iterator2.length) break; - _ref2 = _iterator2[_i2++]; - } else { - _i2 = _iterator2.next(); - if (_i2.done) break; - _ref2 = _i2.value; - } - - var elem = _ref2; - - elem = elem.evaluate(); - - if (elem.confident) { - arr.push(elem.value); - } else { - return deopt(elem); - } - } - return arr; - } - - if (path.isObjectExpression()) { - // todo - } - - if (path.isLogicalExpression()) { - // If we are confident that one side of an && is false, or one side of - // an || is true, we can be confident about the entire expression - var wasConfident = confident; - var left = evaluate(path.get("left")); - var leftConfident = confident; - confident = wasConfident; - var right = evaluate(path.get("right")); - var rightConfident = confident; - var uncertain = leftConfident !== rightConfident; - confident = leftConfident && rightConfident; - - switch (node.operator) { - case "||": - if ((left || right) && uncertain) { - confident = true; - } - return left || right; - case "&&": - if (!left && leftConfident || !right && rightConfident) { - confident = true; - } - return left && right; - } - } - - if (path.isBinaryExpression()) { - var left = evaluate(path.get("left")); - var right = evaluate(path.get("right")); - - switch (node.operator) { - case "-": - return left - right; - case "+": - return left + right; - case "/": - return left / right; - case "*": - return left * right; - case "%": - return left % right; - case "**": - return Math.pow(left, right); - case "<": - return left < right; - case ">": - return left > right; - case "<=": - return left <= right; - case ">=": - return left >= right; - case "==": - return left == right; - case "!=": - return left != right; - case "===": - return left === right; - case "!==": - return left !== right; - case "|": - return left | right; - case "&": - return left & right; - case "^": - return left ^ right; - case "<<": - return left << right; - case ">>": - return left >> right; - case ">>>": - return left >>> right; - } - } - - if (path.isCallExpression()) { - var callee = path.get("callee"); - var context = undefined; - var func = undefined; - - // Number(1); - if (callee.isIdentifier() && !path.scope.getBinding(callee.node.name, true) && VALID_CALLEES.indexOf(callee.node.name) >= 0) { - func = global[node.callee.name]; - } - - if (callee.isMemberExpression()) { - var object = callee.get("object"); - var property = callee.get("property"); - - // Math.min(1, 2) - if (object.isIdentifier() && property.isIdentifier() && VALID_CALLEES.indexOf(object.node.name) >= 0 && INVALID_METHODS.indexOf(property.node.name) < 0) { - context = global[object.node.name]; - func = context[property.node.name]; - } - - // "abc".charCodeAt(4) - if (object.isLiteral() && property.isIdentifier()) { - var type = typeof object.node.value; - if (type === "string" || type === "number") { - context = object.node.value; - func = context[property.node.name]; - } - } - } - - if (func) { - var args = path.get("arguments").map(evaluate); - if (!confident) return; - - return func.apply(context, args); - } - } - - deopt(path); - } -} \ No newline at end of file diff --git a/js/node_modules/babel-traverse/lib/path/family.js b/js/node_modules/babel-traverse/lib/path/family.js deleted file mode 100644 index cac350c..0000000 --- a/js/node_modules/babel-traverse/lib/path/family.js +++ /dev/null @@ -1,170 +0,0 @@ -// This file contains methods responsible for dealing with/retrieving children or siblings. - -"use strict"; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -exports.__esModule = true; -exports.getStatementParent = getStatementParent; -exports.getOpposite = getOpposite; -exports.getCompletionRecords = getCompletionRecords; -exports.getSibling = getSibling; -exports.get = get; -exports._getKey = _getKey; -exports._getPattern = _getPattern; -exports.getBindingIdentifiers = getBindingIdentifiers; -exports.getOuterBindingIdentifiers = getOuterBindingIdentifiers; - -var _index = require("./index"); - -var _index2 = _interopRequireDefault(_index); - -var _babelTypes = require("babel-types"); - -var t = _interopRequireWildcard(_babelTypes); - -/*:: import type TraversalContext from "../index";*/ -function getStatementParent() /*: ?NodePath*/ { - var path = this; - - do { - if (!path.parentPath || Array.isArray(path.container) && path.isStatement()) { - break; - } else { - path = path.parentPath; - } - } while (path); - - if (path && (path.isProgram() || path.isFile())) { - throw new Error("File/Program node, we can't possibly find a statement parent to this"); - } - - return path; -} - -function getOpposite() { - if (this.key === "left") { - return this.getSibling("right"); - } else if (this.key === "right") { - return this.getSibling("left"); - } -} - -function getCompletionRecords() /*: Array*/ { - var paths = []; - - var add = function add(path) { - if (path) paths = paths.concat(path.getCompletionRecords()); - }; - - if (this.isIfStatement()) { - add(this.get("consequent")); - add(this.get("alternate")); - } else if (this.isDoExpression() || this.isFor() || this.isWhile()) { - add(this.get("body")); - } else if (this.isProgram() || this.isBlockStatement()) { - add(this.get("body").pop()); - } else if (this.isFunction()) { - return this.get("body").getCompletionRecords(); - } else if (this.isTryStatement()) { - add(this.get("block")); - add(this.get("handler")); - add(this.get("finalizer")); - } else { - paths.push(this); - } - - return paths; -} - -function getSibling(key) { - return _index2["default"].get({ - parentPath: this.parentPath, - parent: this.parent, - container: this.container, - listKey: this.listKey, - key: key - }); -} - -function get(key /*: string*/, context /*:: ?: boolean | TraversalContext*/) /*: NodePath*/ { - if (context === true) context = this.context; - var parts = key.split("."); - if (parts.length === 1) { - // "foo" - return this._getKey(key, context); - } else { - // "foo.bar" - return this._getPattern(parts, context); - } -} - -function _getKey(key, context /*:: ?*/) { - // istanbul ignore next - - var _this = this; - - var node = this.node; - var container = node[key]; - - if (Array.isArray(container)) { - // requested a container so give them all the paths - return container.map(function (_, i) { - return _index2["default"].get({ - listKey: key, - parentPath: _this, - parent: node, - container: container, - key: i - }).setContext(context); - }); - } else { - return _index2["default"].get({ - parentPath: this, - parent: node, - container: node, - key: key - }).setContext(context); - } -} - -function _getPattern(parts, context) { - var path = this; - for (var _iterator = (parts /*: Array*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var part = _ref; - - if (part === ".") { - path = path.parentPath; - } else { - if (Array.isArray(path)) { - path = path[part]; - } else { - path = path.get(part, context); - } - } - } - return path; -} - -function getBindingIdentifiers(duplicates /*:: ?*/) { - return t.getBindingIdentifiers(this.node, duplicates); -} - -function getOuterBindingIdentifiers(duplicates /*:: ?*/) { - return t.getOuterBindingIdentifiers(this.node, duplicates); -} \ No newline at end of file diff --git a/js/node_modules/babel-traverse/lib/path/index.js b/js/node_modules/babel-traverse/lib/path/index.js deleted file mode 100644 index 187aaf1..0000000 --- a/js/node_modules/babel-traverse/lib/path/index.js +++ /dev/null @@ -1,251 +0,0 @@ -"use strict"; - -var _classCallCheck = require("babel-runtime/helpers/class-call-check")["default"]; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -exports.__esModule = true; - -var _libVirtualTypes = require("./lib/virtual-types"); - -var virtualTypes = _interopRequireWildcard(_libVirtualTypes); - -var _debug2 = require("debug"); - -var _debug3 = _interopRequireDefault(_debug2); - -var _constants = require("./constants"); - -var _invariant = require("invariant"); - -var _invariant2 = _interopRequireDefault(_invariant); - -var _index = require("../index"); - -var _index2 = _interopRequireDefault(_index); - -var _lodashObjectAssign = require("lodash/object/assign"); - -var _lodashObjectAssign2 = _interopRequireDefault(_lodashObjectAssign); - -var _scope = require("../scope"); - -var _scope2 = _interopRequireDefault(_scope); - -var _babelTypes = require("babel-types"); - -var t = _interopRequireWildcard(_babelTypes); - -/*:: import type Hub from "../hub";*/ -/*:: import type TraversalContext from "../context";*/ - -var _debug = _debug3["default"]("babel"); - -var NodePath = (function () { - function NodePath(hub /*: Hub*/, parent /*: Object*/) { - _classCallCheck(this, NodePath); - - this.parent = parent; - this.hub = hub; - this.contexts = []; - this.data = {}; - this.shouldSkip = false; - this.shouldStop = false; - this.removed = false; - this.state = null; - this.opts = null; - this.skipKeys = null; - this.parentPath = null; - this.context = null; - this.container = null; - this.listKey = null; - this.inList = false; - this.parentKey = null; - this.key = null; - this.node = null; - this.scope = null; - this.type = null; - this.typeAnnotation = null; - } - - NodePath.get = function get(_ref2) /*: NodePath*/ { - var hub = _ref2.hub; - var parentPath = _ref2.parentPath; - var parent = _ref2.parent; - var container = _ref2.container; - var listKey = _ref2.listKey; - var key = _ref2.key; - - if (!hub && parentPath) { - hub = parentPath.hub; - } - - _invariant2["default"](parent, "To get a node path the parent needs to exist"); - - var targetNode = container[key]; - - var paths = parent[_constants.PATH_CACHE_KEY] = parent[_constants.PATH_CACHE_KEY] || []; - var path = undefined; - - for (var i = 0; i < paths.length; i++) { - var pathCheck = paths[i]; - if (pathCheck.node === targetNode) { - path = pathCheck; - break; - } - } - - if (path && !(path instanceof NodePath)) { - if (path.constructor.name === "NodePath") { - // we're going to absolutley thrash the tree and allocate way too many node paths - // than is necessary but there's no way around this as the node module resolution - // algorithm is ridiculous - path = null; - } else { - // badly deserialised probably - throw new Error("We found a path that isn't a NodePath instance. Possiblly due to bad serialisation."); - } - } - - if (!path) { - path = new NodePath(hub, parent); - paths.push(path); - } - - path.setup(parentPath, container, listKey, key); - - return path; - }; - - NodePath.prototype.getScope = function getScope(scope /*: Scope*/) { - var ourScope = scope; - - // we're entering a new scope so let's construct it! - if (this.isScope()) { - ourScope = new _scope2["default"](this, scope); - } - - return ourScope; - }; - - NodePath.prototype.setData = function setData(key /*: string*/, val /*: any*/) /*: any*/ { - return this.data[key] = val; - }; - - NodePath.prototype.getData = function getData(key /*: string*/, def /*:: ?: any*/) /*: any*/ { - var val = this.data[key]; - if (!val && def) val = this.data[key] = def; - return val; - }; - - NodePath.prototype.buildCodeFrameError = function buildCodeFrameError(msg /*: string*/) /*: Error*/ { - var Error /*: typeof Error*/ = arguments.length <= 1 || arguments[1] === undefined ? SyntaxError : arguments[1]; - - return this.hub.file.buildCodeFrameError(this.node, msg, Error); - }; - - NodePath.prototype.traverse = function traverse(visitor /*: Object*/, state /*:: ?: any*/) { - _index2["default"](this.node, visitor, this.scope, state, this); - }; - - NodePath.prototype.mark = function mark(type /*: string*/, message /*: string*/) { - this.hub.file.metadata.marked.push({ - type: type, - message: message, - loc: this.node.loc - }); - }; - - NodePath.prototype.set = function set(key /*: string*/, node /*: Object*/) { - t.validate(this.node, key, node); - this.node[key] = node; - }; - - NodePath.prototype.getPathLocation = function getPathLocation() /*: string*/ { - var parts = []; - var path = this; - do { - var key = path.key; - if (path.inList) key = path.listKey + "[" + key + "]"; - parts.unshift(key); - } while (path = path.parentPath); - return parts.join("."); - }; - - NodePath.prototype.debug = function debug(buildMessage /*: Function*/) { - if (!_debug.enabled) return; - _debug(this.getPathLocation() + " " + this.type + ": " + buildMessage()); - }; - - return NodePath; -})(); - -exports["default"] = NodePath; - -_lodashObjectAssign2["default"](NodePath.prototype, require("./ancestry")); -_lodashObjectAssign2["default"](NodePath.prototype, require("./inference")); -_lodashObjectAssign2["default"](NodePath.prototype, require("./replacement")); -_lodashObjectAssign2["default"](NodePath.prototype, require("./evaluation")); -_lodashObjectAssign2["default"](NodePath.prototype, require("./conversion")); -_lodashObjectAssign2["default"](NodePath.prototype, require("./introspection")); -_lodashObjectAssign2["default"](NodePath.prototype, require("./context")); -_lodashObjectAssign2["default"](NodePath.prototype, require("./removal")); -_lodashObjectAssign2["default"](NodePath.prototype, require("./modification")); -_lodashObjectAssign2["default"](NodePath.prototype, require("./family")); -_lodashObjectAssign2["default"](NodePath.prototype, require("./comments")); - -var _loop = function () { - if (_isArray) { - if (_i >= _iterator.length) return "break"; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) return "break"; - _ref = _i.value; - } - - var type = _ref; - - var typeKey = "is" + type; - NodePath.prototype[typeKey] = function (opts) { - return t[typeKey](this.node, opts); - }; - - NodePath.prototype["assert" + type] = function (opts) { - if (!this[typeKey](opts)) { - throw new TypeError("Expected node path of type " + type); - } - }; -}; - -for (var _iterator = (t.TYPES /*: Array*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - var _ret = _loop(); - - // istanbul ignore next - if (_ret === "break") break; -} - -var _loop2 = function (type) { - if (type[0] === "_") return "continue"; - if (t.TYPES.indexOf(type) < 0) t.TYPES.push(type); - - var virtualType = virtualTypes[type]; - - NodePath.prototype["is" + type] = function (opts) { - return virtualType.checkPath(this, opts); - }; -}; - -for (var type in virtualTypes) { - var _ret2 = _loop2(type); - - // istanbul ignore next - if (_ret2 === "continue") continue; -} -module.exports = exports["default"]; \ No newline at end of file diff --git a/js/node_modules/babel-traverse/lib/path/inference/index.js b/js/node_modules/babel-traverse/lib/path/inference/index.js deleted file mode 100644 index 3b29c41..0000000 --- a/js/node_modules/babel-traverse/lib/path/inference/index.js +++ /dev/null @@ -1,147 +0,0 @@ -"use strict"; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -exports.__esModule = true; -exports.getTypeAnnotation = getTypeAnnotation; -exports._getTypeAnnotation = _getTypeAnnotation; -exports.isBaseType = isBaseType; -exports.couldBeBaseType = couldBeBaseType; -exports.baseTypeStrictlyMatches = baseTypeStrictlyMatches; -exports.isGenericType = isGenericType; - -var _inferers = require("./inferers"); - -var inferers = _interopRequireWildcard(_inferers); - -var _babelTypes = require("babel-types"); - -var t = _interopRequireWildcard(_babelTypes); - -/** - * Infer the type of the current `NodePath`. - */ - -/*:: import type NodePath from "./index";*/ -function getTypeAnnotation() /*: Object*/ { - if (this.typeAnnotation) return this.typeAnnotation; - - var type = this._getTypeAnnotation() || t.anyTypeAnnotation(); - if (t.isTypeAnnotation(type)) type = type.typeAnnotation; - return this.typeAnnotation = type; -} - -/** - * todo: split up this method - */ - -function _getTypeAnnotation() /*: ?Object*/ { - var node = this.node; - - if (!node) { - // handle initializerless variables, add in checks for loop initializers too - if (this.key === "init" && this.parentPath.isVariableDeclarator()) { - var declar = this.parentPath.parentPath; - var declarParent = declar.parentPath; - - // for (let NODE in bar) {} - if (declar.key === "left" && declarParent.isForInStatement()) { - return t.stringTypeAnnotation(); - } - - // for (let NODE of bar) {} - if (declar.key === "left" && declarParent.isForOfStatement()) { - return t.anyTypeAnnotation(); - } - - return t.voidTypeAnnotation(); - } else { - return; - } - } - - if (node.typeAnnotation) { - return node.typeAnnotation; - } - - var inferer = inferers[node.type]; - if (inferer) { - return inferer.call(this, node); - } - - inferer = inferers[this.parentPath.type]; - if (inferer && inferer.validParent) { - return this.parentPath.getTypeAnnotation(); - } -} - -function isBaseType(baseName /*: string*/, soft /*:: ?: boolean*/) /*: boolean*/ { - return _isBaseType(baseName, this.getTypeAnnotation(), soft); -} - -function _isBaseType(baseName /*: string*/, type, /*:: ?*/soft /*:: ?*/) /*: boolean*/ { - if (baseName === "string") { - return t.isStringTypeAnnotation(type); - } else if (baseName === "number") { - return t.isNumberTypeAnnotation(type); - } else if (baseName === "boolean") { - return t.isBooleanTypeAnnotation(type); - } else if (baseName === "any") { - return t.isAnyTypeAnnotation(type); - } else if (baseName === "mixed") { - return t.isMixedTypeAnnotation(type); - } else if (baseName === "void") { - return t.isVoidTypeAnnotation(type); - } else { - if (soft) { - return false; - } else { - throw new Error("Unknown base type " + baseName); - } - } -} - -function couldBeBaseType(name /*: string*/) /*: boolean*/ { - var type = this.getTypeAnnotation(); - if (t.isAnyTypeAnnotation(type)) return true; - - if (t.isUnionTypeAnnotation(type)) { - for (var _iterator = (type.types /*: Array*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var type2 = _ref; - - if (t.isAnyTypeAnnotation(type2) || _isBaseType(name, type2, true)) { - return true; - } - } - return false; - } else { - return _isBaseType(name, type, true); - } -} - -function baseTypeStrictlyMatches(right /*: NodePath*/) { - var left = this.getTypeAnnotation(); - right = right.getTypeAnnotation(); - - if (!t.isAnyTypeAnnotation(left) && t.isFlowBaseAnnotation(left)) { - return right.type === left.type; - } -} - -function isGenericType(genericName /*: string*/) /*: boolean*/ { - var type = this.getTypeAnnotation(); - return t.isGenericTypeAnnotation(type) && t.isIdentifier(type.id, { name: genericName }); -} \ No newline at end of file diff --git a/js/node_modules/babel-traverse/lib/path/inference/inferer-reference.js b/js/node_modules/babel-traverse/lib/path/inference/inferer-reference.js deleted file mode 100644 index d6fb2fc..0000000 --- a/js/node_modules/babel-traverse/lib/path/inference/inferer-reference.js +++ /dev/null @@ -1,229 +0,0 @@ -"use strict"; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -exports.__esModule = true; - -var _babelTypes = require("babel-types"); - -var t = _interopRequireWildcard(_babelTypes); - -/*:: import type NodePath from "../index";*/ -exports["default"] = function (node /*: Object*/) { - if (!this.isReferenced()) return; - - // check if a binding exists of this value and if so then return a union type of all - // possible types that the binding could be - var binding = this.scope.getBinding(node.name); - if (binding) { - if (binding.identifier.typeAnnotation) { - return binding.identifier.typeAnnotation; - } else { - return getTypeAnnotationBindingConstantViolations(this, node.name); - } - } - - // built-in values - if (node.name === "undefined") { - return t.voidTypeAnnotation(); - } else if (node.name === "NaN" || node.name === "Infinity") { - return t.numberTypeAnnotation(); - } else if (node.name === "arguments") { - // todo - } -}; - -function getTypeAnnotationBindingConstantViolations(path, name) { - var binding = path.scope.getBinding(name); - - var types = []; - path.typeAnnotation = t.unionTypeAnnotation(types); - - var functionConstantViolations = []; - var constantViolations = getConstantViolationsBefore(binding, path, functionConstantViolations); - - var testType = getConditionalAnnotation(path, name); - if (testType) { - (function () { - var testConstantViolations = getConstantViolationsBefore(binding, testType.ifStatement); - - // remove constant violations observed before the IfStatement - constantViolations = constantViolations.filter(function (path) { - return testConstantViolations.indexOf(path) < 0; - }); - - // clear current types and add in observed test type - types.push(testType.typeAnnotation); - })(); - } - - if (constantViolations.length) { - // pick one constant from each scope which will represent the last possible - // control flow path that it could've taken/been - var rawConstantViolations = constantViolations.reverse(); - var visitedScopes = []; - constantViolations = []; - for (var _iterator = (rawConstantViolations /*: Array*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var violation = _ref; - - var violationScope = violation.scope; - if (visitedScopes.indexOf(violationScope) >= 0) continue; - - visitedScopes.push(violationScope); - constantViolations.push(violation); - - if (violationScope === path.scope) { - constantViolations = [violation]; - break; - } - } - - // add back on function constant violations since we can't track calls - constantViolations = constantViolations.concat(functionConstantViolations); - - // push on inferred types of violated paths - for (var _iterator2 = (constantViolations /*: Array*/), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) { - var _ref2; - - if (_isArray2) { - if (_i2 >= _iterator2.length) break; - _ref2 = _iterator2[_i2++]; - } else { - _i2 = _iterator2.next(); - if (_i2.done) break; - _ref2 = _i2.value; - } - - var violation = _ref2; - - types.push(violation.getTypeAnnotation()); - } - } - - if (types.length) { - return t.createUnionTypeAnnotation(types); - } -} - -function getConstantViolationsBefore(binding, path, functions) { - var violations = binding.constantViolations.slice(); - violations.unshift(binding.path); - return violations.filter(function (violation) { - violation = violation.resolve(); - var status = violation._guessExecutionStatusRelativeTo(path); - if (functions && status === "function") functions.push(violation); - return status === "before"; - }); -} - -function inferAnnotationFromBinaryExpression(name, path) { - var operator = path.node.operator; - - var right = path.get("right").resolve(); - var left = path.get("left").resolve(); - - var target = undefined; - if (left.isIdentifier({ name: name })) { - target = right; - } else if (right.isIdentifier({ name: name })) { - target = left; - } - if (target) { - if (operator === "===") { - return target.getTypeAnnotation(); - } else if (t.BOOLEAN_NUMBER_BINARY_OPERATORS.indexOf(operator) >= 0) { - return t.numberTypeAnnotation(); - } else { - return; - } - } else { - if (operator !== "===") return; - } - - // - var typeofPath = undefined; - var typePath = undefined; - if (left.isUnaryExpression({ operator: "typeof" })) { - typeofPath = left; - typePath = right; - } else if (right.isUnaryExpression({ operator: "typeof" })) { - typeofPath = right; - typePath = left; - } - if (!typePath && !typeofPath) return; - - // ensure that the type path is a Literal - typePath = typePath.resolve(); - if (!typePath.isLiteral()) return; - - // and that it's a string so we can infer it - var typeValue = typePath.node.value; - if (typeof typeValue !== "string") return; - - // and that the argument of the typeof path references us! - if (!typeofPath.get("argument").isIdentifier({ name: name })) return; - - // turn type value into a type annotation - return t.createTypeAnnotationBasedOnTypeof(typePath.node.value); -} - -function getParentConditionalPath(path) { - var parentPath = undefined; - while (parentPath = path.parentPath) { - if (parentPath.isIfStatement() || parentPath.isConditionalExpression()) { - if (path.key === "test") { - return; - } else { - return parentPath; - } - } else { - path = parentPath; - } - } -} - -function getConditionalAnnotation(path, name) { - var ifStatement = getParentConditionalPath(path); - if (!ifStatement) return; - - var test = ifStatement.get("test"); - var paths = [test]; - var types = []; - - do { - var _path = paths.shift().resolve(); - - if (_path.isLogicalExpression()) { - paths.push(_path.get("left")); - paths.push(_path.get("right")); - } - - if (_path.isBinaryExpression()) { - var type = inferAnnotationFromBinaryExpression(name, _path); - if (type) types.push(type); - } - } while (paths.length); - - if (types.length) { - return { - typeAnnotation: t.createUnionTypeAnnotation(types), - ifStatement: ifStatement - }; - } else { - return getConditionalAnnotation(ifStatement, name); - } -} -module.exports = exports["default"]; \ No newline at end of file diff --git a/js/node_modules/babel-traverse/lib/path/inference/inferers.js b/js/node_modules/babel-traverse/lib/path/inference/inferers.js deleted file mode 100644 index a08dd32..0000000 --- a/js/node_modules/babel-traverse/lib/path/inference/inferers.js +++ /dev/null @@ -1,193 +0,0 @@ -"use strict"; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -var _interopRequire = require("babel-runtime/helpers/interop-require")["default"]; - -exports.__esModule = true; -exports.VariableDeclarator = VariableDeclarator; -exports.TypeCastExpression = TypeCastExpression; -exports.NewExpression = NewExpression; -exports.TemplateLiteral = TemplateLiteral; -exports.UnaryExpression = UnaryExpression; -exports.BinaryExpression = BinaryExpression; -exports.LogicalExpression = LogicalExpression; -exports.ConditionalExpression = ConditionalExpression; -exports.SequenceExpression = SequenceExpression; -exports.AssignmentExpression = AssignmentExpression; -exports.UpdateExpression = UpdateExpression; -exports.StringLiteral = StringLiteral; -exports.NumericLiteral = NumericLiteral; -exports.BooleanLiteral = BooleanLiteral; -exports.NullLiteral = NullLiteral; -exports.RegExpLiteral = RegExpLiteral; -exports.ObjectExpression = ObjectExpression; -exports.ArrayExpression = ArrayExpression; -exports.RestElement = RestElement; -exports.CallExpression = CallExpression; -exports.TaggedTemplateExpression = TaggedTemplateExpression; - -var _babelTypes = require("babel-types"); - -var t = _interopRequireWildcard(_babelTypes); - -var _infererReference = require("./inferer-reference"); - -exports.Identifier = _interopRequire(_infererReference); - -function VariableDeclarator() { - var id = this.get("id"); - - if (id.isIdentifier()) { - return this.get("init").getTypeAnnotation(); - } else { - return; - } -} - -function TypeCastExpression(node) { - return node.typeAnnotation; -} - -TypeCastExpression.validParent = true; - -function NewExpression(node) { - if (this.get("callee").isIdentifier()) { - // only resolve identifier callee - return t.genericTypeAnnotation(node.callee); - } -} - -function TemplateLiteral() { - return t.stringTypeAnnotation(); -} - -function UnaryExpression(node) { - var operator = node.operator; - - if (operator === "void") { - return t.voidTypeAnnotation(); - } else if (t.NUMBER_UNARY_OPERATORS.indexOf(operator) >= 0) { - return t.numberTypeAnnotation(); - } else if (t.STRING_UNARY_OPERATORS.indexOf(operator) >= 0) { - return t.stringTypeAnnotation(); - } else if (t.BOOLEAN_UNARY_OPERATORS.indexOf(operator) >= 0) { - return t.booleanTypeAnnotation(); - } -} - -function BinaryExpression(node) { - var operator = node.operator; - - if (t.NUMBER_BINARY_OPERATORS.indexOf(operator) >= 0) { - return t.numberTypeAnnotation(); - } else if (t.BOOLEAN_BINARY_OPERATORS.indexOf(operator) >= 0) { - return t.booleanTypeAnnotation(); - } else if (operator === "+") { - var right = this.get("right"); - var left = this.get("left"); - - if (left.isBaseType("number") && right.isBaseType("number")) { - // both numbers so this will be a number - return t.numberTypeAnnotation(); - } else if (left.isBaseType("string") || right.isBaseType("string")) { - // one is a string so the result will be a string - return t.stringTypeAnnotation(); - } - - // unsure if left and right are strings or numbers so stay on the safe side - return t.unionTypeAnnotation([t.stringTypeAnnotation(), t.numberTypeAnnotation()]); - } -} - -function LogicalExpression() { - return t.createUnionTypeAnnotation([this.get("left").getTypeAnnotation(), this.get("right").getTypeAnnotation()]); -} - -function ConditionalExpression() { - return t.createUnionTypeAnnotation([this.get("consequent").getTypeAnnotation(), this.get("alternate").getTypeAnnotation()]); -} - -function SequenceExpression() { - return this.get("expressions").pop().getTypeAnnotation(); -} - -function AssignmentExpression() { - return this.get("right").getTypeAnnotation(); -} - -function UpdateExpression(node) { - var operator = node.operator; - if (operator === "++" || operator === "--") { - return t.numberTypeAnnotation(); - } -} - -function StringLiteral() { - return t.stringTypeAnnotation(); -} - -function NumericLiteral() { - return t.numberTypeAnnotation(); -} - -function BooleanLiteral() { - return t.booleanTypeAnnotation(); -} - -function NullLiteral() { - return t.voidTypeAnnotation(); -} - -function RegExpLiteral() { - return t.genericTypeAnnotation(t.identifier("RegExp")); -} - -function ObjectExpression() { - return t.genericTypeAnnotation(t.identifier("Object")); -} - -function ArrayExpression() { - return t.genericTypeAnnotation(t.identifier("Array")); -} - -function RestElement() { - return ArrayExpression(); -} - -RestElement.validParent = true; - -function Func() { - return t.genericTypeAnnotation(t.identifier("Function")); -} - -exports.Function = Func; -exports.Class = Func; - -function CallExpression() { - return resolveCall(this.get("callee")); -} - -function TaggedTemplateExpression() { - return resolveCall(this.get("tag")); -} - -function resolveCall(callee) { - callee = callee.resolve(); - - if (callee.isFunction()) { - if (callee.is("async")) { - if (callee.is("generator")) { - return t.genericTypeAnnotation(t.identifier("AsyncIterator")); - } else { - return t.genericTypeAnnotation(t.identifier("Promise")); - } - } else { - if (callee.node.returnType) { - return callee.node.returnType; - } else { - // todo: get union type of all return arguments - } - } - } -} \ No newline at end of file diff --git a/js/node_modules/babel-traverse/lib/path/introspection.js b/js/node_modules/babel-traverse/lib/path/introspection.js deleted file mode 100644 index 15a6e9a..0000000 --- a/js/node_modules/babel-traverse/lib/path/introspection.js +++ /dev/null @@ -1,472 +0,0 @@ -// This file contains methods responsible for introspecting the current path for certain values. - -"use strict"; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -exports.__esModule = true; -exports.matchesPattern = matchesPattern; -exports.has = has; -exports.isStatic = isStatic; -exports.isnt = isnt; -exports.equals = equals; -exports.isNodeType = isNodeType; -exports.canHaveVariableDeclarationOrExpression = canHaveVariableDeclarationOrExpression; -exports.isCompletionRecord = isCompletionRecord; -exports.isStatementOrBlock = isStatementOrBlock; -exports.referencesImport = referencesImport; -exports.getSource = getSource; -exports.willIMaybeExecuteBefore = willIMaybeExecuteBefore; -exports._guessExecutionStatusRelativeTo = _guessExecutionStatusRelativeTo; -exports._guessExecutionStatusRelativeToDifferentFunctions = _guessExecutionStatusRelativeToDifferentFunctions; -exports.resolve = resolve; -exports._resolve = _resolve; - -var _lodashCollectionIncludes = require("lodash/collection/includes"); - -var _lodashCollectionIncludes2 = _interopRequireDefault(_lodashCollectionIncludes); - -var _babelTypes = require("babel-types"); - -var t = _interopRequireWildcard(_babelTypes); - -/** - * Match the current node if it matches the provided `pattern`. - * - * For example, given the match `React.createClass` it would match the - * parsed nodes of `React.createClass` and `React["createClass"]`. - */ - -/*:: import type NodePath from "./index";*/ -function matchesPattern(pattern /*: string*/, allowPartial /*:: ?: boolean*/) /*: boolean*/ { - // not a member expression - if (!this.isMemberExpression()) return false; - - var parts = pattern.split("."); - var search = [this.node]; - var i = 0; - - function matches(name) { - var part = parts[i]; - return part === "*" || name === part; - } - - while (search.length) { - var node = search.shift(); - - if (allowPartial && i === parts.length) { - return true; - } - - if (t.isIdentifier(node)) { - // this part doesn't match - if (!matches(node.name)) return false; - } else if (t.isLiteral(node)) { - // this part doesn't match - if (!matches(node.value)) return false; - } else if (t.isMemberExpression(node)) { - if (node.computed && !t.isLiteral(node.property)) { - // we can't deal with this - return false; - } else { - search.unshift(node.property); - search.unshift(node.object); - continue; - } - } else if (t.isThisExpression(node)) { - if (!matches("this")) return false; - } else { - // we can't deal with this - return false; - } - - // too many parts - if (++i > parts.length) { - return false; - } - } - - return i === parts.length; -} - -/** - * Check whether we have the input `key`. If the `key` references an array then we check - * if the array has any items, otherwise we just check if it's falsy. - */ - -function has(key) /*: boolean*/ { - var val = this.node && this.node[key]; - if (val && Array.isArray(val)) { - return !!val.length; - } else { - return !!val; - } -} - -/** - * Description - */ - -function isStatic() { - return this.scope.isStatic(this.node); -} - -/** - * Alias of `has`. - */ - -var is = has; - -exports.is = is; -/** - * Opposite of `has`. - */ - -function isnt(key) /*: boolean*/ { - return !this.has(key); -} - -/** - * Check whether the path node `key` strict equals `value`. - */ - -function equals(key, value) /*: boolean*/ { - return this.node[key] === value; -} - -/** - * Check the type against our stored internal type of the node. This is handy when a node has - * been removed yet we still internally know the type and need it to calculate node replacement. - */ - -function isNodeType(type /*: string*/) /*: boolean*/ { - return t.isType(this.type, type); -} - -/** - * This checks whether or now we're in one of the following positions: - * - * for (KEY in right); - * for (KEY;;); - * - * This is because these spots allow VariableDeclarations AND normal expressions so we need - * to tell the path replacement that it's ok to replace this with an expression. - */ - -function canHaveVariableDeclarationOrExpression() { - return (this.key === "init" || this.key === "left") && this.parentPath.isFor(); -} - -/** - * Check whether the current path references a completion record - */ - -function isCompletionRecord(allowInsideFunction /*:: ?*/) { - var path = this; - var first = true; - - do { - var container = path.container; - - // we're in a function so can't be a completion record - if (path.isFunction() && !first) { - return !!allowInsideFunction; - } - - first = false; - - // check to see if we're the last item in the container and if we are - // we're a completion record! - if (Array.isArray(container) && path.key !== container.length - 1) { - return false; - } - } while ((path = path.parentPath) && !path.isProgram()); - - return true; -} - -/** - * Check whether or not the current `key` allows either a single statement or block statement - * so we can explode it if necessary. - */ - -function isStatementOrBlock() { - if (this.parentPath.isLabeledStatement() || t.isBlockStatement(this.container)) { - return false; - } else { - return _lodashCollectionIncludes2["default"](t.STATEMENT_OR_BLOCK_KEYS, this.key); - } -} - -/** - * Check if the currently assigned path references the `importName` of `moduleSource`. - */ - -function referencesImport(moduleSource, importName) { - if (!this.isReferencedIdentifier()) return false; - - var binding = this.scope.getBinding(this.node.name); - if (!binding || binding.kind !== "module") return false; - - var path = binding.path; - var parent = path.parentPath; - if (!parent.isImportDeclaration()) return false; - - // check moduleSource - if (parent.node.source.value === moduleSource) { - if (!importName) return true; - } else { - return false; - } - - if (path.isImportDefaultSpecifier() && importName === "default") { - return true; - } - - if (path.isImportNamespaceSpecifier() && importName === "*") { - return true; - } - - if (path.isImportSpecifier() && path.node.imported.name === importName) { - return true; - } - - return false; -} - -/** - * Get the source code associated with this node. - */ - -function getSource() { - var node = this.node; - if (node.end) { - return this.hub.file.code.slice(node.start, node.end); - } else { - return ""; - } -} - -function willIMaybeExecuteBefore(target) { - return this._guessExecutionStatusRelativeTo(target) !== "after"; -} - -/** - * Given a `target` check the execution status of it relative to the current path. - * - * "Execution status" simply refers to where or not we **think** this will execuete - * before or after the input `target` element. - */ - -function _guessExecutionStatusRelativeTo(target) { - // check if the two paths are in different functions, we can't track execution of these - var targetFuncParent = target.scope.getFunctionParent(); - var selfFuncParent = this.scope.getFunctionParent(); - - if (targetFuncParent !== selfFuncParent) { - var _status = this._guessExecutionStatusRelativeToDifferentFunctions(targetFuncParent); - if (_status) { - return _status; - } else { - target = targetFuncParent.path; - } - } - - var targetPaths = target.getAncestry(); - if (targetPaths.indexOf(this) >= 0) return "after"; - - var selfPaths = this.getAncestry(); - - // get ancestor where the branches intersect - var commonPath = undefined; - var targetIndex = undefined; - var selfIndex = undefined; - for (selfIndex = 0; selfIndex < selfPaths.length; selfIndex++) { - var selfPath = selfPaths[selfIndex]; - targetIndex = targetPaths.indexOf(selfPath); - if (targetIndex >= 0) { - commonPath = selfPath; - break; - } - } - if (!commonPath) { - return "before"; - } - - // get the relationship paths that associate these nodes to their common ancestor - var targetRelationship = targetPaths[targetIndex - 1]; - var selfRelationship = selfPaths[selfIndex - 1]; - if (!targetRelationship || !selfRelationship) { - return "before"; - } - - // container list so let's see which one is after the other - if (targetRelationship.listKey && targetRelationship.container === selfRelationship.container) { - return targetRelationship.key > selfRelationship.key ? "before" : "after"; - } - - // otherwise we're associated by a parent node, check which key comes before the other - var targetKeyPosition = t.VISITOR_KEYS[targetRelationship.type].indexOf(targetRelationship.key); - var selfKeyPosition = t.VISITOR_KEYS[selfRelationship.type].indexOf(selfRelationship.key); - return targetKeyPosition > selfKeyPosition ? "before" : "after"; -} - -function _guessExecutionStatusRelativeToDifferentFunctions(targetFuncParent) { - var targetFuncPath = targetFuncParent.path; - if (!targetFuncPath.isFunctionDeclaration()) return; - - // so we're in a completely different function, if this is a function declaration - // then we can be a bit smarter and handle cases where the function is either - // a. not called at all (part of an export) - // b. called directly - var binding = targetFuncPath.scope.getBinding(targetFuncPath.node.id.name); - - // no references! - if (!binding.references) return "before"; - - var referencePaths /*: Array*/ = binding.referencePaths; - - // verify that all of the references are calls - for (var _iterator = referencePaths, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var path = _ref; - - if (path.key !== "callee" || !path.parentPath.isCallExpression()) { - return; - } - } - - var allStatus = undefined; - - // verify that all the calls have the same execution status - for (var _iterator2 = referencePaths, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) { - var _ref2; - - if (_isArray2) { - if (_i2 >= _iterator2.length) break; - _ref2 = _iterator2[_i2++]; - } else { - _i2 = _iterator2.next(); - if (_i2.done) break; - _ref2 = _i2.value; - } - - var path = _ref2; - - // if a reference is a child of the function we're checking against then we can - // safelty ignore it - var childOfFunction = !!path.find(function (path) { - return path.node === targetFuncPath.node; - }); - if (childOfFunction) continue; - - var _status2 = this._guessExecutionStatusRelativeTo(path); - - if (allStatus) { - if (allStatus !== _status2) return; - } else { - allStatus = _status2; - } - } - - return allStatus; -} - -/** - * Resolve a "pointer" `NodePath` to it's absolute path. - */ - -function resolve(dangerous, resolved) { - return this._resolve(dangerous, resolved) || this; -} - -function _resolve(dangerous, /*:: ?*/resolved /*:: ?*/) /*: ?NodePath*/ { - // detect infinite recursion - // todo: possibly have a max length on this just to be safe - if (resolved && resolved.indexOf(this) >= 0) return; - - // we store all the paths we've "resolved" in this array to prevent infinite recursion - resolved = resolved || []; - resolved.push(this); - - if (this.isVariableDeclarator()) { - if (this.get("id").isIdentifier()) { - return this.get("init").resolve(dangerous, resolved); - } else { - // otherwise it's a request for a pattern and that's a bit more tricky - } - } else if (this.isReferencedIdentifier()) { - var binding = this.scope.getBinding(this.node.name); - if (!binding) return; - - // reassigned so we can't really resolve it - if (!binding.constant) return; - - // todo - lookup module in dependency graph - if (binding.kind === "module") return; - - if (binding.path !== this) { - return binding.path.resolve(dangerous, resolved); - } - } else if (this.isTypeCastExpression()) { - return this.get("expression").resolve(dangerous, resolved); - } else if (dangerous && this.isMemberExpression()) { - // this is dangerous, as non-direct target assignments will mutate it's state - // making this resolution inaccurate - - var targetKey = this.toComputedKey(); - if (!t.isLiteral(targetKey)) return; - - var targetName = targetKey.value; - - var target = this.get("object").resolve(dangerous, resolved); - - if (target.isObjectExpression()) { - var props = target.get("properties"); - for (var _iterator3 = (props /*: Array*/), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) { - var _ref3; - - if (_isArray3) { - if (_i3 >= _iterator3.length) break; - _ref3 = _iterator3[_i3++]; - } else { - _i3 = _iterator3.next(); - if (_i3.done) break; - _ref3 = _i3.value; - } - - var prop = _ref3; - - if (!prop.isProperty()) continue; - - var key = prop.get("key"); - - // { foo: obj } - var match = prop.isnt("computed") && key.isIdentifier({ name: targetName }); - - // { "foo": "obj" } or { ["foo"]: "obj" } - match = match || key.isLiteral({ value: targetName }); - - if (match) return prop.get("value").resolve(dangerous, resolved); - } - } else if (target.isArrayExpression() && !isNaN(+targetName)) { - var elems = target.get("elements"); - var elem = elems[targetName]; - if (elem) return elem.resolve(dangerous, resolved); - } - } -} \ No newline at end of file diff --git a/js/node_modules/babel-traverse/lib/path/lib/hoister.js b/js/node_modules/babel-traverse/lib/path/lib/hoister.js deleted file mode 100644 index 23fbefa..0000000 --- a/js/node_modules/babel-traverse/lib/path/lib/hoister.js +++ /dev/null @@ -1,160 +0,0 @@ -"use strict"; - -var _classCallCheck = require("babel-runtime/helpers/class-call-check")["default"]; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -exports.__esModule = true; - -var _babelTypes = require("babel-types"); - -var t = _interopRequireWildcard(_babelTypes); - -var referenceVisitor = { - ReferencedIdentifier: function ReferencedIdentifier(path, state) { - if (path.isJSXIdentifier() && _babelTypes.react.isCompatTag(path.node.name)) { - return; - } - - // direct references that we need to track to hoist this to the highest scope we can - var binding = path.scope.getBinding(path.node.name); - if (!binding) return; - - // this binding isn't accessible from the parent scope so we can safely ignore it - // eg. it's in a closure etc - if (binding !== state.scope.getBinding(path.node.name)) return; - - if (binding.constant) { - state.bindings[path.node.name] = binding; - } else { - for (var _iterator = (binding.constantViolations /*: Array*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var violationPath = _ref; - - state.breakOnScopePaths = state.breakOnScopePaths.concat(violationPath.getAncestry()); - } - } - } -}; - -var PathHoister = (function () { - function PathHoister(path, scope) { - _classCallCheck(this, PathHoister); - - this.breakOnScopePaths = []; - this.bindings = {}; - this.scopes = []; - this.scope = scope; - this.path = path; - } - - PathHoister.prototype.isCompatibleScope = function isCompatibleScope(scope) { - for (var key in this.bindings) { - var binding = this.bindings[key]; - if (!scope.bindingIdentifierEquals(key, binding.identifier)) { - return false; - } - } - - return true; - }; - - PathHoister.prototype.getCompatibleScopes = function getCompatibleScopes() { - var scope = this.path.scope; - do { - if (this.isCompatibleScope(scope)) { - this.scopes.push(scope); - } else { - break; - } - - if (this.breakOnScopePaths.indexOf(scope.path) >= 0) { - break; - } - } while (scope = scope.parent); - }; - - PathHoister.prototype.getAttachmentPath = function getAttachmentPath() { - var scopes = this.scopes; - - var scope = scopes.pop(); - if (!scope) return; - - if (scope.path.isFunction()) { - if (this.hasOwnParamBindings(scope)) { - // should ignore this scope since it's ourselves - if (this.scope === scope) return; - - // needs to be attached to the body - return scope.path.get("body").get("body")[0]; - } else { - // doesn't need to be be attached to this scope - return this.getNextScopeStatementParent(); - } - } else if (scope.path.isProgram()) { - return this.getNextScopeStatementParent(); - } - }; - - PathHoister.prototype.getNextScopeStatementParent = function getNextScopeStatementParent() { - var scope = this.scopes.pop(); - if (scope) return scope.path.getStatementParent(); - }; - - PathHoister.prototype.hasOwnParamBindings = function hasOwnParamBindings(scope) { - for (var _name in this.bindings) { - if (!scope.hasOwnBinding(_name)) continue; - - var binding = this.bindings[_name]; - if (binding.kind === "param") return true; - } - return false; - }; - - PathHoister.prototype.run = function run() { - var node = this.path.node; - if (node._hoisted) return; - node._hoisted = true; - - this.path.traverse(referenceVisitor, this); - - this.getCompatibleScopes(); - - var attachTo = this.getAttachmentPath(); - if (!attachTo) return; - - // don't bother hoisting to the same function as this will cause multiple branches to be evaluated more than once leading to a bad optimisation - if (attachTo.getFunctionParent() === this.path.getFunctionParent()) return; - - var uid = attachTo.scope.generateUidIdentifier("ref"); - - attachTo.insertBefore([t.variableDeclaration("var", [t.variableDeclarator(uid, this.path.node)])]); - - var parent = this.path.parentPath; - - if (parent.isJSXElement() && this.path.container === parent.node.children) { - // turning the `span` in `
` to an expression so we need to wrap it with - // an expression container - uid = t.JSXExpressionContainer(uid); - } - - this.path.replaceWith(uid); - }; - - return PathHoister; -})(); - -exports["default"] = PathHoister; -module.exports = exports["default"]; \ No newline at end of file diff --git a/js/node_modules/babel-traverse/lib/path/lib/removal-hooks.js b/js/node_modules/babel-traverse/lib/path/lib/removal-hooks.js deleted file mode 100644 index 8e7752d..0000000 --- a/js/node_modules/babel-traverse/lib/path/lib/removal-hooks.js +++ /dev/null @@ -1,65 +0,0 @@ -// this file contains hooks that handle ancestry cleanup of parent nodes when removing children - -/** - * Pre hooks should be used for either rejecting removal or delegating removal - */ - -"use strict"; - -exports.__esModule = true; -var hooks = [function (self, parent) { - if (self.key === "body" && parent.isArrowFunctionExpression()) { - self.replaceWith(self.scope.buildUndefinedNode()); - return true; - } -}, function (self, parent) { - var removeParent = false; - - // while (NODE); - // removing the test of a while/switch, we can either just remove it entirely *or* turn the `test` into `true` - // unlikely that the latter will ever be what's wanted so we just remove the loop to avoid infinite recursion - removeParent = removeParent || self.key === "test" && (parent.isWhile() || parent.isSwitchCase()); - - // export NODE; - // just remove a declaration for an export as this is no longer valid - removeParent = removeParent || self.key === "declaration" && parent.isExportDeclaration(); - - // label: NODE - // stray labeled statement with no body - removeParent = removeParent || self.key === "body" && parent.isLabeledStatement(); - - // let NODE; - // remove an entire declaration if there are no declarators left - removeParent = removeParent || self.listKey === "declarations" && parent.isVariableDeclaration() && parent.node.declarations.length === 1; - - // NODE; - // remove the entire expression statement if there's no expression - removeParent = removeParent || self.key === "expression" && parent.isExpressionStatement(); - - if (removeParent) { - parent.remove(); - return true; - } -}, function (self, parent) { - if (parent.isSequenceExpression() && parent.node.expressions.length === 1) { - // (node, NODE); - // we've just removed the second element of a sequence expression so let's turn that sequence - // expression into a regular expression - parent.replaceWith(parent.node.expressions[0]); - return true; - } -}, function (self, parent) { - if (parent.isBinary()) { - // left + NODE; - // NODE + right; - // we're in a binary expression, better remove it and replace it with the last expression - if (self.key === "left") { - parent.replaceWith(parent.node.right); - } else { - // key === "right" - parent.replaceWith(parent.node.left); - } - return true; - } -}]; -exports.hooks = hooks; \ No newline at end of file diff --git a/js/node_modules/babel-traverse/lib/path/lib/virtual-types.js b/js/node_modules/babel-traverse/lib/path/lib/virtual-types.js deleted file mode 100644 index 09e4699..0000000 --- a/js/node_modules/babel-traverse/lib/path/lib/virtual-types.js +++ /dev/null @@ -1,153 +0,0 @@ -"use strict"; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -exports.__esModule = true; - -var _babelTypes = require("babel-types"); - -var t = _interopRequireWildcard(_babelTypes); - -/*:: import type NodePath from "../index";*/var ReferencedIdentifier = { - types: ["Identifier", "JSXIdentifier"], - checkPath: function checkPath(_ref /*: NodePath*/, opts /*:: ?: Object*/) /*: boolean*/ { - var node = _ref.node; - var parent = _ref.parent; - - if (!t.isIdentifier(node, opts)) { - if (t.isJSXIdentifier(node, opts)) { - if (_babelTypes.react.isCompatTag(node.name)) return false; - } else { - // not a JSXIdentifier or an Identifier - return false; - } - } - - // check if node is referenced - return t.isReferenced(node, parent); - } -}; - -exports.ReferencedIdentifier = ReferencedIdentifier; -var ReferencedMemberExpression = { - types: ["MemberExpression"], - checkPath: function checkPath(_ref2) { - var node = _ref2.node; - var parent = _ref2.parent; - - return t.isMemberExpression(node) && t.isReferenced(node, parent); - } -}; - -exports.ReferencedMemberExpression = ReferencedMemberExpression; -var BindingIdentifier = { - types: ["Identifier"], - checkPath: function checkPath(_ref3 /*: NodePath*/) /*: boolean*/ { - var node = _ref3.node; - var parent = _ref3.parent; - - return t.isIdentifier(node) && t.isBinding(node, parent); - } -}; - -exports.BindingIdentifier = BindingIdentifier; -var Statement = { - types: ["Statement"], - checkPath: function checkPath(_ref4 /*: NodePath*/) /*: boolean*/ { - var node = _ref4.node; - var parent = _ref4.parent; - - if (t.isStatement(node)) { - if (t.isVariableDeclaration(node)) { - if (t.isForXStatement(parent, { left: node })) return false; - if (t.isForStatement(parent, { init: node })) return false; - } - - return true; - } else { - return false; - } - } -}; - -exports.Statement = Statement; -var Expression = { - types: ["Expression"], - checkPath: function checkPath(path /*: NodePath*/) /*: boolean*/ { - if (path.isIdentifier()) { - return path.isReferencedIdentifier(); - } else { - return t.isExpression(path.node); - } - } -}; - -exports.Expression = Expression; -var Scope = { - types: ["Scopable"], - checkPath: function checkPath(path) { - return t.isScope(path.node, path.parent); - } -}; - -exports.Scope = Scope; -var Referenced = { - checkPath: function checkPath(path /*: NodePath*/) /*: boolean*/ { - return t.isReferenced(path.node, path.parent); - } -}; - -exports.Referenced = Referenced; -var BlockScoped = { - checkPath: function checkPath(path /*: NodePath*/) /*: boolean*/ { - return t.isBlockScoped(path.node); - } -}; - -exports.BlockScoped = BlockScoped; -var Var = { - types: ["VariableDeclaration"], - checkPath: function checkPath(path /*: NodePath*/) /*: boolean*/ { - return t.isVar(path.node); - } -}; - -exports.Var = Var; -var User = { - checkPath: function checkPath(path /*: NodePath*/) /*: boolean*/ { - return path.node && !!path.node.loc; - } -}; - -exports.User = User; -var Generated = { - checkPath: function checkPath(path /*: NodePath*/) /*: boolean*/ { - return !path.isUser(); - } -}; - -exports.Generated = Generated; -var Pure = { - checkPath: function checkPath(path /*: NodePath*/, opts /*:: ?*/) /*: boolean*/ { - return path.scope.isPure(path.node, opts); - } -}; - -exports.Pure = Pure; -var Flow = { - types: ["Flow", "ImportDeclaration", "ExportDeclaration"], - checkPath: function checkPath(_ref5 /*: NodePath*/) /*: boolean*/ { - var node = _ref5.node; - - if (t.isFlow(node)) { - return true; - } else if (t.isImportDeclaration(node)) { - return node.importKind === "type" || node.importKind === "typeof"; - } else if (t.isExportDeclaration(node)) { - return node.exportKind === "type"; - } else { - return false; - } - } -}; -exports.Flow = Flow; \ No newline at end of file diff --git a/js/node_modules/babel-traverse/lib/path/modification.js b/js/node_modules/babel-traverse/lib/path/modification.js deleted file mode 100644 index e920d64..0000000 --- a/js/node_modules/babel-traverse/lib/path/modification.js +++ /dev/null @@ -1,285 +0,0 @@ -// This file contains methods that modify the path/node in some ways. - -"use strict"; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -exports.__esModule = true; -exports.insertBefore = insertBefore; -exports._containerInsert = _containerInsert; -exports._containerInsertBefore = _containerInsertBefore; -exports._containerInsertAfter = _containerInsertAfter; -exports._maybePopFromStatements = _maybePopFromStatements; -exports.insertAfter = insertAfter; -exports.updateSiblingKeys = updateSiblingKeys; -exports._verifyNodeList = _verifyNodeList; -exports.unshiftContainer = unshiftContainer; -exports.pushContainer = pushContainer; -exports.hoist = hoist; - -var _constants = require("./constants"); - -var _libHoister = require("./lib/hoister"); - -var _libHoister2 = _interopRequireDefault(_libHoister); - -var _index = require("./index"); - -var _index2 = _interopRequireDefault(_index); - -var _babelTypes = require("babel-types"); - -var t = _interopRequireWildcard(_babelTypes); - -/** - * Insert the provided nodes before the current one. - */ - -function insertBefore(nodes) { - this._assertUnremoved(); - - nodes = this._verifyNodeList(nodes); - - if (this.parentPath.isExpressionStatement() || this.parentPath.isLabeledStatement()) { - return this.parentPath.insertBefore(nodes); - } else if (this.isNodeType("Expression") || this.parentPath.isForStatement() && this.key === "init") { - if (this.node) nodes.push(this.node); - this.replaceExpressionWithStatements(nodes); - } else { - this._maybePopFromStatements(nodes); - if (Array.isArray(this.container)) { - return this._containerInsertBefore(nodes); - } else if (this.isStatementOrBlock()) { - if (this.node) nodes.push(this.node); - this._replaceWith(t.blockStatement(nodes)); - } else { - throw new Error("We don't know what to do with this node type. We were previously a Statement but we can't fit in here?"); - } - } - - return [this]; -} - -function _containerInsert(from, nodes) { - this.updateSiblingKeys(from, nodes.length); - - var paths = []; - - for (var i = 0; i < nodes.length; i++) { - var to = from + i; - var node = nodes[i]; - this.container.splice(to, 0, node); - - if (this.context) { - var _path = this.context.create(this.parent, this.container, to, this.listKey); - paths.push(_path); - } else { - paths.push(_index2["default"].get({ - parentPath: this, - parent: node, - container: this.container, - listKey: this.listKey, - key: to - })); - } - } - - var contexts = this.contexts; - var path = this; - while (!contexts.length) { - path = path.parentPath; - contexts = path.contexts; - } - - for (var _iterator = paths, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var _path2 = _ref; - - _path2.setScope(); - _path2.debug(function () { - return "Inserted."; - }); - - for (var _iterator2 = contexts, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) { - var _ref2; - - if (_isArray2) { - if (_i2 >= _iterator2.length) break; - _ref2 = _iterator2[_i2++]; - } else { - _i2 = _iterator2.next(); - if (_i2.done) break; - _ref2 = _i2.value; - } - - var context = _ref2; - - context.maybeQueue(_path2, true); - } - } - - return paths; -} - -function _containerInsertBefore(nodes) { - return this._containerInsert(this.key, nodes); -} - -function _containerInsertAfter(nodes) { - return this._containerInsert(this.key + 1, nodes); -} - -function _maybePopFromStatements(nodes) { - var last = nodes[nodes.length - 1]; - var isIdentifier = t.isIdentifier(last) || t.isExpressionStatement(last) && t.isIdentifier(last.expression); - - if (isIdentifier && !this.isCompletionRecord()) { - nodes.pop(); - } -} - -/** - * Insert the provided nodes after the current one. When inserting nodes after an - * expression, ensure that the completion record is correct by pushing the current node. - */ - -function insertAfter(nodes) { - this._assertUnremoved(); - - nodes = this._verifyNodeList(nodes); - - if (this.parentPath.isExpressionStatement() || this.parentPath.isLabeledStatement()) { - return this.parentPath.insertAfter(nodes); - } else if (this.isNodeType("Expression") || this.parentPath.isForStatement() && this.key === "init") { - if (this.node) { - var temp = this.scope.generateDeclaredUidIdentifier(); - nodes.unshift(t.expressionStatement(t.assignmentExpression("=", temp, this.node))); - nodes.push(t.expressionStatement(temp)); - } - this.replaceExpressionWithStatements(nodes); - } else { - this._maybePopFromStatements(nodes); - if (Array.isArray(this.container)) { - return this._containerInsertAfter(nodes); - } else if (this.isStatementOrBlock()) { - if (this.node) nodes.unshift(this.node); - this._replaceWith(t.blockStatement(nodes)); - } else { - throw new Error("We don't know what to do with this node type. We were previously a Statement but we can't fit in here?"); - } - } - - return [this]; -} - -/** - * Update all sibling node paths after `fromIndex` by `incrementBy`. - */ - -function updateSiblingKeys(fromIndex, incrementBy) { - if (!this.parent) return; - - var paths = this.parent[_constants.PATH_CACHE_KEY]; - for (var i = 0; i < paths.length; i++) { - var path = paths[i]; - if (path.key >= fromIndex) { - path.key += incrementBy; - } - } -} - -function _verifyNodeList(nodes) { - if (!nodes) { - return []; - } - - if (nodes.constructor !== Array) { - nodes = [nodes]; - } - - for (var i = 0; i < nodes.length; i++) { - var node = nodes[i]; - var msg = undefined; - - if (!node) { - msg = "has falsy node"; - } else if (typeof node !== "object") { - msg = "contains a non-object node"; - } else if (!node.type) { - msg = "without a type"; - } else if (node instanceof _index2["default"]) { - msg = "has a NodePath when it expected a raw object"; - } - - if (msg) { - var type = Array.isArray(node) ? "array" : typeof node; - throw new Error("Node list " + msg + " with the index of " + i + " and type of " + type); - } - } - - return nodes; -} - -function unshiftContainer(listKey, nodes) { - this._assertUnremoved(); - - nodes = this._verifyNodeList(nodes); - - // get the first path and insert our nodes before it, if it doesn't exist then it - // doesn't matter, our nodes will be inserted anyway - var path = _index2["default"].get({ - parentPath: this, - parent: this.node, - container: this.node[listKey], - listKey: listKey, - key: 0 - }); - - return path.insertBefore(nodes); -} - -function pushContainer(listKey, nodes) { - this._assertUnremoved(); - - nodes = this._verifyNodeList(nodes); - - // get an invisible path that represents the last node + 1 and replace it with our - // nodes, effectively inlining it - - var container = this.node[listKey]; - var path = _index2["default"].get({ - parentPath: this, - parent: this.node, - container: container, - listKey: listKey, - key: container.length - }); - - return path.replaceWithMultiple(nodes); -} - -/** - * Hoist the current node to the highest scope possible and return a UID - * referencing it. - */ - -function hoist() { - var scope = arguments.length <= 0 || arguments[0] === undefined ? this.scope : arguments[0]; - - var hoister = new _libHoister2["default"](this, scope); - return hoister.run(); -} \ No newline at end of file diff --git a/js/node_modules/babel-traverse/lib/path/removal.js b/js/node_modules/babel-traverse/lib/path/removal.js deleted file mode 100644 index 90d6b44..0000000 --- a/js/node_modules/babel-traverse/lib/path/removal.js +++ /dev/null @@ -1,69 +0,0 @@ -// This file contains methods responsible for removing a node. - -"use strict"; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -exports.__esModule = true; -exports.remove = remove; -exports._callRemovalHooks = _callRemovalHooks; -exports._remove = _remove; -exports._markRemoved = _markRemoved; -exports._assertUnremoved = _assertUnremoved; - -var _libRemovalHooks = require("./lib/removal-hooks"); - -function remove() { - this._assertUnremoved(); - - this.resync(); - - if (this._callRemovalHooks()) { - this._markRemoved(); - return; - } - - this.shareCommentsWithSiblings(); - this._remove(); - this._markRemoved(); -} - -function _callRemovalHooks() { - for (var _iterator = (_libRemovalHooks.hooks /*: Array*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var fn = _ref; - - if (fn(this, this.parentPath)) return true; - } -} - -function _remove() { - if (Array.isArray(this.container)) { - this.container.splice(this.key, 1); - this.updateSiblingKeys(this.key, -1); - } else { - this._replaceWith(null); - } -} - -function _markRemoved() { - this.shouldSkip = true; - this.removed = true; - this.node = null; -} - -function _assertUnremoved() { - if (this.removed) { - throw this.buildCodeFrameError("NodePath has been removed so is read-only."); - } -} \ No newline at end of file diff --git a/js/node_modules/babel-traverse/lib/path/replacement.js b/js/node_modules/babel-traverse/lib/path/replacement.js deleted file mode 100644 index a4e2e8a..0000000 --- a/js/node_modules/babel-traverse/lib/path/replacement.js +++ /dev/null @@ -1,295 +0,0 @@ -// This file contains methods responsible for replacing a node with another. - -"use strict"; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -exports.__esModule = true; -exports.replaceWithMultiple = replaceWithMultiple; -exports.replaceWithSourceString = replaceWithSourceString; -exports.replaceWith = replaceWith; -exports._replaceWith = _replaceWith; -exports.replaceExpressionWithStatements = replaceExpressionWithStatements; -exports.replaceInline = replaceInline; - -var _babelCodeFrame = require("babel-code-frame"); - -var _babelCodeFrame2 = _interopRequireDefault(_babelCodeFrame); - -var _index = require("../index"); - -var _index2 = _interopRequireDefault(_index); - -var _index3 = require("./index"); - -var _index4 = _interopRequireDefault(_index3); - -var _babylon = require("babylon"); - -var _babelTypes = require("babel-types"); - -var t = _interopRequireWildcard(_babelTypes); - -var hoistVariablesVisitor = { - Function: function Function(path) { - path.skip(); - }, - - VariableDeclaration: function VariableDeclaration(path) { - if (path.node.kind !== "var") return; - - var bindings = path.getBindingIdentifiers(); - for (var key in bindings) { - path.scope.push({ id: bindings[key] }); - } - - var exprs = []; - - for (var _iterator = (path.node.declarations /*: Array*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var declar = _ref; - - if (declar.init) { - exprs.push(t.expressionStatement(t.assignmentExpression("=", declar.id, declar.init))); - } - } - - path.replaceWithMultiple(exprs); - } -}; - -/** - * Replace a node with an array of multiple. This method performs the following steps: - * - * - Inherit the comments of first provided node with that of the current node. - * - Insert the provided nodes after the current node. - * - Remove the current node. - */ - -function replaceWithMultiple(nodes /*: Array*/) { - this.resync(); - - nodes = this._verifyNodeList(nodes); - t.inheritLeadingComments(nodes[0], this.node); - t.inheritTrailingComments(nodes[nodes.length - 1], this.node); - this.node = this.container[this.key] = null; - this.insertAfter(nodes); - - if (this.node) { - this.requeue(); - } else { - this.remove(); - } -} - -/** - * Parse a string as an expression and replace the current node with the result. - * - * NOTE: This is typically not a good idea to use. Building source strings when - * transforming ASTs is an antipattern and SHOULD NOT be encouraged. Even if it's - * easier to use, your transforms will be extremely brittle. - */ - -function replaceWithSourceString(replacement) { - this.resync(); - - try { - replacement = "(" + replacement + ")"; - replacement = _babylon.parse(replacement); - } catch (err) { - var loc = err.loc; - if (loc) { - err.message += " - make sure this is an expression."; - err.message += "\n" + _babelCodeFrame2["default"](replacement, loc.line, loc.column + 1); - } - throw err; - } - - replacement = replacement.program.body[0].expression; - _index2["default"].removeProperties(replacement); - return this.replaceWith(replacement); -} - -/** - * Replace the current node with another. - */ - -function replaceWith(replacement) { - this.resync(); - - if (this.removed) { - throw new Error("You can't replace this node, we've already removed it"); - } - - if (replacement instanceof _index4["default"]) { - replacement = replacement.node; - } - - if (!replacement) { - throw new Error("You passed `path.replaceWith()` a falsy node, use `path.remove()` instead"); - } - - if (this.node === replacement) { - return; - } - - if (this.isProgram() && !t.isProgram(replacement)) { - throw new Error("You can only replace a Program root node with another Program node"); - } - - if (Array.isArray(replacement)) { - throw new Error("Don't use `path.replaceWith()` with an array of nodes, use `path.replaceWithMultiple()`"); - } - - if (typeof replacement === "string") { - throw new Error("Don't use `path.replaceWith()` with a source string, use `path.replaceWithSourceString()`"); - } - - // replacing a statement with an expression so wrap it in an expression statement - if (this.isNodeType("Statement") && t.isExpression(replacement) && !this.canHaveVariableDeclarationOrExpression()) { - replacement = t.expressionStatement(replacement); - } - - // replacing an expression with a statement so let's explode it - if (this.isNodeType("Expression") && t.isStatement(replacement)) { - return this.replaceExpressionWithStatements([replacement]); - } - - var oldNode = this.node; - if (oldNode) { - t.inheritsComments(replacement, oldNode); - t.removeComments(oldNode); - } - - // replace the node - this._replaceWith(replacement); - this.type = replacement.type; - - // potentially create new scope - this.setScope(); - - // requeue for visiting - this.requeue(); -} - -/** - * Description - */ - -function _replaceWith(node) { - if (!this.container) { - throw new ReferenceError("Container is falsy"); - } - - if (this.inList) { - t.validate(this.parent, this.key, [node]); - } else { - t.validate(this.parent, this.key, node); - } - - this.debug(function () { - return "Replace with " + (node && node.type); - }); - - this.node = this.container[this.key] = node; -} - -/** - * This method takes an array of statements nodes and then explodes it - * into expressions. This method retains completion records which is - * extremely important to retain original semantics. - */ - -function replaceExpressionWithStatements(nodes /*: Array*/) { - this.resync(); - - var toSequenceExpression = t.toSequenceExpression(nodes, this.scope); - - if (t.isSequenceExpression(toSequenceExpression)) { - var exprs = toSequenceExpression.expressions; - - if (exprs.length >= 2 && this.parentPath.isExpressionStatement()) { - this._maybePopFromStatements(exprs); - } - - // could be just one element due to the previous maybe popping - if (exprs.length === 1) { - this.replaceWith(exprs[0]); - } else { - this.replaceWith(toSequenceExpression); - } - } else if (toSequenceExpression) { - this.replaceWith(toSequenceExpression); - } else { - var container = t.functionExpression(null, [], t.blockStatement(nodes)); - container.shadow = true; - - this.replaceWith(t.callExpression(container, [])); - this.traverse(hoistVariablesVisitor); - - // add implicit returns to all ending expression statements - var completionRecords /*: Array*/ = this.get("callee").getCompletionRecords(); - for (var _iterator2 = completionRecords, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) { - var _ref2; - - if (_isArray2) { - if (_i2 >= _iterator2.length) break; - _ref2 = _iterator2[_i2++]; - } else { - _i2 = _iterator2.next(); - if (_i2.done) break; - _ref2 = _i2.value; - } - - var path = _ref2; - - if (!path.isExpressionStatement()) continue; - - var loop = path.findParent(function (path) { - return path.isLoop(); - }); - if (loop) { - var callee = this.get("callee"); - - var uid = callee.scope.generateDeclaredUidIdentifier("ret"); - callee.get("body").pushContainer("body", t.returnStatement(uid)); - - path.get("expression").replaceWith(t.assignmentExpression("=", uid, path.node.expression)); - } else { - path.replaceWith(t.returnStatement(path.node.expression)); - } - } - - return this.node; - } -} - -function replaceInline(nodes /*: Object | Array*/) { - this.resync(); - - if (Array.isArray(nodes)) { - if (Array.isArray(this.container)) { - nodes = this._verifyNodeList(nodes); - this._containerInsertAfter(nodes); - return this.remove(); - } else { - return this.replaceWithMultiple(nodes); - } - } else { - return this.replaceWith(nodes); - } -} \ No newline at end of file diff --git a/js/node_modules/babel-traverse/lib/scope/binding.js b/js/node_modules/babel-traverse/lib/scope/binding.js deleted file mode 100644 index b434a21..0000000 --- a/js/node_modules/babel-traverse/lib/scope/binding.js +++ /dev/null @@ -1,97 +0,0 @@ -"use strict"; - -var _classCallCheck = require("babel-runtime/helpers/class-call-check")["default"]; - -exports.__esModule = true; - -/** - * This class is responsible for a binding inside of a scope. - * - * It tracks the following: - * - * * Node path. - * * Amount of times referenced by other nodes. - * * Paths to nodes that reassign or modify this binding. - * * The kind of binding. (Is it a parameter, declaration etc) - */ - -/*:: import type NodePath from "../path";*/ -var Binding = (function () { - function Binding(_ref) { - var existing = _ref.existing; - var identifier = _ref.identifier; - var scope = _ref.scope; - var path = _ref.path; - var kind = _ref.kind; - - _classCallCheck(this, Binding); - - this.identifier = identifier; - this.scope = scope; - this.path = path; - this.kind = kind; - - this.constantViolations = []; - this.constant = true; - - this.referencePaths = []; - this.referenced = false; - this.references = 0; - - this.clearValue(); - - if (existing) { - this.constantViolations = [].concat(existing.path, existing.constantViolations, this.constantViolations); - } - } - - Binding.prototype.deoptValue = function deoptValue() { - this.clearValue(); - this.hasDeoptedValue = true; - }; - - Binding.prototype.setValue = function setValue(value /*: any*/) { - if (this.hasDeoptedValue) return; - this.hasValue = true; - this.value = value; - }; - - Binding.prototype.clearValue = function clearValue() { - this.hasDeoptedValue = false; - this.hasValue = false; - this.value = null; - }; - - /** - * Register a constant violation with the provided `path`. - */ - - Binding.prototype.reassign = function reassign(path /*: Object*/) { - this.constant = false; - this.constantViolations.push(path); - }; - - /** - * Increment the amount of references to this binding. - */ - - Binding.prototype.reference = function reference(path /*: NodePath*/) { - this.referenced = true; - this.references++; - this.referencePaths.push(path); - }; - - /** - * Decrement the amount of references to this binding. - */ - - Binding.prototype.dereference = function dereference() { - this.references--; - this.referenced = !!this.references; - }; - - return Binding; -})(); - -exports["default"] = Binding; -module.exports = exports["default"]; \ No newline at end of file diff --git a/js/node_modules/babel-traverse/lib/scope/index.js b/js/node_modules/babel-traverse/lib/scope/index.js deleted file mode 100644 index 47b921a..0000000 --- a/js/node_modules/babel-traverse/lib/scope/index.js +++ /dev/null @@ -1,1221 +0,0 @@ -"use strict"; - -var _classCallCheck = require("babel-runtime/helpers/class-call-check")["default"]; - -var _Symbol = require("babel-runtime/core-js/symbol")["default"]; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -var _Object$create = require("babel-runtime/core-js/object/create")["default"]; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -exports.__esModule = true; - -var _lodashCollectionIncludes = require("lodash/collection/includes"); - -var _lodashCollectionIncludes2 = _interopRequireDefault(_lodashCollectionIncludes); - -var _repeating = require("repeating"); - -var _repeating2 = _interopRequireDefault(_repeating); - -var _libRenamer = require("./lib/renamer"); - -var _libRenamer2 = _interopRequireDefault(_libRenamer); - -var _index = require("../index"); - -var _index2 = _interopRequireDefault(_index); - -var _lodashObjectDefaults = require("lodash/object/defaults"); - -var _lodashObjectDefaults2 = _interopRequireDefault(_lodashObjectDefaults); - -var _babelMessages = require("babel-messages"); - -var messages = _interopRequireWildcard(_babelMessages); - -var _binding = require("./binding"); - -var _binding2 = _interopRequireDefault(_binding); - -var _globals = require("globals"); - -var _globals2 = _interopRequireDefault(_globals); - -var _babelTypes = require("babel-types"); - -var t = _interopRequireWildcard(_babelTypes); - -// - -/*:: import type NodePath from "../path";*/var CACHE_SINGLE_KEY = _Symbol(); -var CACHE_MULTIPLE_KEY = _Symbol(); - -/** - * To avoid creating a new Scope instance for each traversal, we maintain a cache on the - * node itself containing all scopes it has been associated with. - * - * We also optimise for the case of there being only a single scope associated with a node. - */ - -function getCache(node, parentScope, self) { - var singleCache = node[CACHE_SINGLE_KEY]; - - if (singleCache) { - // we've only ever associated one scope with this node so let's check it - if (matchesParent(singleCache, parentScope)) { - return singleCache; - } - } else if (!node[CACHE_MULTIPLE_KEY]) { - // no scope has ever been associated with this node - node[CACHE_SINGLE_KEY] = self; - return; - } - - // looks like we have either a single scope association that was never matched or - // multiple assocations, let's find the right one! - return getCacheMultiple(node, parentScope, self, singleCache); -} - -function matchesParent(scope, parentScope) { - if (scope.parent === parentScope) { - return true; - } -} - -function getCacheMultiple(node, parentScope, self, singleCache) { - var scopes /*: Array*/ = node[CACHE_MULTIPLE_KEY] = node[CACHE_MULTIPLE_KEY] || []; - - if (singleCache) { - // we have a scope assocation miss so push it onto our scopes - scopes.push(singleCache); - node[CACHE_SINGLE_KEY] = null; - } - - // loop through and check each scope to see if it matches our parent - for (var _iterator = scopes, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var scope = _ref; - - if (matchesParent(scope, parentScope)) return scope; - } - - scopes.push(self); -} - -// - -var collectorVisitor = { - For: function For(path) { - for (var _iterator2 = (t.FOR_INIT_KEYS /*: Array*/), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) { - var _ref2; - - if (_isArray2) { - if (_i2 >= _iterator2.length) break; - _ref2 = _iterator2[_i2++]; - } else { - _i2 = _iterator2.next(); - if (_i2.done) break; - _ref2 = _i2.value; - } - - var key = _ref2; - - var declar = path.get(key); - if (declar.isVar()) path.scope.getFunctionParent().registerBinding("var", declar); - } - }, - - Declaration: function Declaration(path) { - // delegate block scope handling to the `blockVariableVisitor` - if (path.isBlockScoped()) return; - - // this will be hit again once we traverse into it after this iteration - if (path.isExportDeclaration() && path.get("declaration").isDeclaration()) return; - - // we've ran into a declaration! - path.scope.getFunctionParent().registerDeclaration(path); - }, - - ReferencedIdentifier: function ReferencedIdentifier(path, state) { - state.references.push(path); - }, - - ForXStatement: function ForXStatement(path, state) { - var left = path.get("left"); - if (left.isPattern() || left.isIdentifier()) { - state.constantViolations.push(left); - } - }, - - ExportDeclaration: { - exit: function exit(_ref20) { - var node = _ref20.node; - var scope = _ref20.scope; - - var declar = node.declaration; - if (t.isClassDeclaration(declar) || t.isFunctionDeclaration(declar)) { - var _id = declar.id; - if (!_id) return; - - var binding = scope.getBinding(_id.name); - if (binding) binding.reference(); - } else if (t.isVariableDeclaration(declar)) { - for (var _iterator3 = (declar.declarations /*: Array*/), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) { - var _ref3; - - if (_isArray3) { - if (_i3 >= _iterator3.length) break; - _ref3 = _iterator3[_i3++]; - } else { - _i3 = _iterator3.next(); - if (_i3.done) break; - _ref3 = _i3.value; - } - - var decl = _ref3; - - var ids = t.getBindingIdentifiers(decl); - for (var _name in ids) { - var binding = scope.getBinding(_name); - if (binding) binding.reference(); - } - } - } - } - }, - - LabeledStatement: function LabeledStatement(path) { - path.scope.getProgramParent().addGlobal(path.node); - path.scope.getBlockParent().registerDeclaration(path); - }, - - AssignmentExpression: function AssignmentExpression(path, state) { - state.assignments.push(path); - }, - - UpdateExpression: function UpdateExpression(path, state) { - state.constantViolations.push(path.get("argument")); - }, - - UnaryExpression: function UnaryExpression(path, state) { - if (path.node.operator === "delete") { - state.constantViolations.push(path.get("argument")); - } - }, - - BlockScoped: function BlockScoped(path) { - var scope = path.scope; - if (scope.path === path) scope = scope.parent; - scope.getBlockParent().registerDeclaration(path); - }, - - ClassDeclaration: function ClassDeclaration(path) { - var id = path.node.id; - if (!id) return; - - var name = id.name; - path.scope.bindings[name] = path.scope.getBinding(name); - }, - - Block: function Block(path) { - var paths = path.get("body"); - for (var _iterator4 = (paths /*: Array*/), _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _getIterator(_iterator4);;) { - var _ref4; - - if (_isArray4) { - if (_i4 >= _iterator4.length) break; - _ref4 = _iterator4[_i4++]; - } else { - _i4 = _iterator4.next(); - if (_i4.done) break; - _ref4 = _i4.value; - } - - var bodyPath = _ref4; - - if (bodyPath.isFunctionDeclaration()) { - path.scope.getBlockParent().registerDeclaration(bodyPath); - } - } - } -}; - -var uid = 0; - -var Scope = (function () { - - /** - * This searches the current "scope" and collects all references/bindings - * within. - */ - - function Scope(path /*: NodePath*/, parentScope /*:: ?: Scope*/) { - _classCallCheck(this, Scope); - - if (parentScope && parentScope.block === path.node) { - return parentScope; - } - - var cached = getCache(path.node, parentScope, this); - if (cached) return cached; - - this.uid = uid++; - this.parent = parentScope; - this.hub = path.hub; - - this.parentBlock = path.parent; - this.block = path.node; - this.path = path; - } - - /** - * Globals. - */ - - /** - * Traverse node with current scope and path. - */ - - Scope.prototype.traverse = function traverse(node /*: Object*/, opts /*: Object*/, state /*:: ?*/) { - _index2["default"](node, opts, this, state, this.path); - }; - - /** - * Generate a unique identifier and add it to the current scope. - */ - - Scope.prototype.generateDeclaredUidIdentifier = function generateDeclaredUidIdentifier() { - var name /*: string*/ = arguments.length <= 0 || arguments[0] === undefined ? "temp" : arguments[0]; - - var id = this.generateUidIdentifier(name); - this.push({ id: id }); - return id; - }; - - /** - * Generate a unique identifier. - */ - - Scope.prototype.generateUidIdentifier = function generateUidIdentifier(name /*: string*/) { - return t.identifier(this.generateUid(name)); - }; - - /** - * Generate a unique `_id1` binding. - */ - - Scope.prototype.generateUid = function generateUid(name /*: string*/) { - name = t.toIdentifier(name).replace(/^_+/, "").replace(/[0-9]+$/g, ""); - - var uid = undefined; - var i = 0; - do { - uid = this._generateUid(name, i); - i++; - } while (this.hasBinding(uid) || this.hasGlobal(uid) || this.hasReference(uid)); - - var program = this.getProgramParent(); - program.references[uid] = true; - program.uids[uid] = true; - - return uid; - }; - - /** - * Generate an `_id1`. - */ - - Scope.prototype._generateUid = function _generateUid(name, i) { - var id = name; - if (i > 1) id += i; - return "_" + id; - }; - - /** - * Generate a unique identifier based on a node. - */ - - Scope.prototype.generateUidIdentifierBasedOnNode = function generateUidIdentifierBasedOnNode(parent /*: Object*/, defaultName /*:: ?: String*/) /*: Object*/ { - var node = parent; - - if (t.isAssignmentExpression(parent)) { - node = parent.left; - } else if (t.isVariableDeclarator(parent)) { - node = parent.id; - } else if (t.isObjectProperty(node) || t.isObjectMethod(node)) { - node = node.key; - } - - var parts = []; - - var add = function add(node) { - if (t.isModuleDeclaration(node)) { - if (node.source) { - add(node.source); - } else if (node.specifiers && node.specifiers.length) { - for (var _iterator5 = (node.specifiers /*: Array*/), _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _getIterator(_iterator5);;) { - var _ref5; - - if (_isArray5) { - if (_i5 >= _iterator5.length) break; - _ref5 = _iterator5[_i5++]; - } else { - _i5 = _iterator5.next(); - if (_i5.done) break; - _ref5 = _i5.value; - } - - var specifier = _ref5; - - add(specifier); - } - } else if (node.declaration) { - add(node.declaration); - } - } else if (t.isModuleSpecifier(node)) { - add(node.local); - } else if (t.isMemberExpression(node)) { - add(node.object); - add(node.property); - } else if (t.isIdentifier(node)) { - parts.push(node.name); - } else if (t.isLiteral(node)) { - parts.push(node.value); - } else if (t.isCallExpression(node)) { - add(node.callee); - } else if (t.isObjectExpression(node) || t.isObjectPattern(node)) { - for (var _iterator6 = (node.properties /*: Array*/), _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _getIterator(_iterator6);;) { - var _ref6; - - if (_isArray6) { - if (_i6 >= _iterator6.length) break; - _ref6 = _iterator6[_i6++]; - } else { - _i6 = _iterator6.next(); - if (_i6.done) break; - _ref6 = _i6.value; - } - - var prop = _ref6; - - add(prop.key || prop.argument); - } - } - }; - - add(node); - - var id = parts.join("$"); - id = id.replace(/^_/, "") || defaultName || "ref"; - - return this.generateUidIdentifier(id.slice(0, 20)); - }; - - /** - * Determine whether evaluating the specific input `node` is a consequenceless reference. ie. - * evaluating it wont result in potentially arbitrary code from being ran. The following are - * whitelisted and determined not to cause side effects: - * - * - `this` expressions - * - `super` expressions - * - Bound identifiers - */ - - Scope.prototype.isStatic = function isStatic(node /*: Object*/) /*: boolean*/ { - if (t.isThisExpression(node) || t.isSuper(node)) { - return true; - } - - if (t.isIdentifier(node)) { - var binding = this.getBinding(node.name); - if (binding) { - return binding.constant; - } else { - return this.hasBinding(node.name); - } - } - - return false; - }; - - /** - * Possibly generate a memoised identifier if it is not static and has consequences. - */ - - Scope.prototype.maybeGenerateMemoised = function maybeGenerateMemoised(node /*: Object*/, dontPush /*:: ?: boolean*/) /*: ?Object*/ { - if (this.isStatic(node)) { - return null; - } else { - var _id2 = this.generateUidIdentifierBasedOnNode(node); - if (!dontPush) this.push({ id: _id2 }); - return _id2; - } - }; - - Scope.prototype.checkBlockScopedCollisions = function checkBlockScopedCollisions(local, kind /*: string*/, name /*: string*/, id /*: Object*/) { - // ignore parameters - if (kind === "param") return; - - // ignore hoisted functions if there's also a local let - if (kind === "hoisted" && local.kind === "let") return; - - var duplicate = false; - - // don't allow duplicate bindings to exist alongside - if (!duplicate) duplicate = kind === "let" || local.kind === "let" || local.kind === "const" || local.kind === "module"; - - // don't allow a local of param with a kind of let - if (!duplicate) duplicate = local.kind === "param" && (kind === "let" || kind === "const"); - - if (duplicate) { - throw this.hub.file.buildCodeFrameError(id, messages.get("scopeDuplicateDeclaration", name), TypeError); - } - }; - - Scope.prototype.rename = function rename(oldName /*: string*/, newName /*: string*/, block /*:: ?*/) { - var binding = this.getBinding(oldName); - if (binding) { - newName = newName || this.generateUidIdentifier(oldName).name; - return new _libRenamer2["default"](binding, oldName, newName).rename(block); - } - }; - - Scope.prototype._renameFromMap = function _renameFromMap(map, oldName, newName, value) { - if (map[oldName]) { - map[newName] = value; - map[oldName] = null; - } - }; - - Scope.prototype.dump = function dump() { - var sep = _repeating2["default"]("-", 60); - console.log(sep); - var scope = this; - do { - console.log("#", scope.block.type); - for (var _name2 in scope.bindings) { - var binding = scope.bindings[_name2]; - console.log(" -", _name2, { - constant: binding.constant, - references: binding.references, - violations: binding.constantViolations.length, - kind: binding.kind - }); - } - } while (scope = scope.parent); - console.log(sep); - }; - - Scope.prototype.toArray = function toArray(node /*: Object*/, i /*:: ?: number*/) { - var file = this.hub.file; - - if (t.isIdentifier(node)) { - var binding = this.getBinding(node.name); - if (binding && binding.constant && binding.path.isGenericType("Array")) return node; - } - - if (t.isArrayExpression(node)) { - return node; - } - - if (t.isIdentifier(node, { name: "arguments" })) { - return t.callExpression(t.memberExpression(t.memberExpression(t.memberExpression(t.identifier("Array"), t.identifier("prototype")), t.identifier("slice")), t.identifier("call")), [node]); - } - - var helperName = "toArray"; - var args = [node]; - if (i === true) { - helperName = "toConsumableArray"; - } else if (i) { - args.push(t.numericLiteral(i)); - helperName = "slicedToArray"; - // TODO if (this.hub.file.isLoose("es6.forOf")) helperName += "-loose"; - } - return t.callExpression(file.addHelper(helperName), args); - }; - - Scope.prototype.registerDeclaration = function registerDeclaration(path /*: NodePath*/) { - if (path.isLabeledStatement()) { - this.registerBinding("label", path); - } else if (path.isFunctionDeclaration()) { - this.registerBinding("hoisted", path.get("id"), path); - } else if (path.isVariableDeclaration()) { - var declarations = path.get("declarations"); - for (var _iterator7 = (declarations /*: Array*/), _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _getIterator(_iterator7);;) { - var _ref7; - - if (_isArray7) { - if (_i7 >= _iterator7.length) break; - _ref7 = _iterator7[_i7++]; - } else { - _i7 = _iterator7.next(); - if (_i7.done) break; - _ref7 = _i7.value; - } - - var declar = _ref7; - - this.registerBinding(path.node.kind, declar); - } - } else if (path.isClassDeclaration()) { - this.registerBinding("let", path); - } else if (path.isImportDeclaration()) { - var specifiers = path.get("specifiers"); - for (var _iterator8 = (specifiers /*: Array*/), _isArray8 = Array.isArray(_iterator8), _i8 = 0, _iterator8 = _isArray8 ? _iterator8 : _getIterator(_iterator8);;) { - var _ref8; - - if (_isArray8) { - if (_i8 >= _iterator8.length) break; - _ref8 = _iterator8[_i8++]; - } else { - _i8 = _iterator8.next(); - if (_i8.done) break; - _ref8 = _i8.value; - } - - var specifier = _ref8; - - this.registerBinding("module", specifier); - } - } else if (path.isExportDeclaration()) { - var declar = path.get("declaration"); - if (declar.isClassDeclaration() || declar.isFunctionDeclaration() || declar.isVariableDeclaration()) { - this.registerDeclaration(declar); - } - } else { - this.registerBinding("unknown", path); - } - }; - - Scope.prototype.buildUndefinedNode = function buildUndefinedNode() { - if (this.hasBinding("undefined")) { - return t.unaryExpression("void", t.numericLiteral(0), true); - } else { - return t.identifier("undefined"); - } - }; - - Scope.prototype.registerConstantViolation = function registerConstantViolation(path /*: NodePath*/) { - var ids = path.getBindingIdentifiers(); - for (var _name3 in ids) { - var binding = this.getBinding(_name3); - if (binding) binding.reassign(path); - } - }; - - Scope.prototype.registerBinding = function registerBinding(kind /*: string*/, path /*: NodePath*/) { - var bindingPath = arguments.length <= 2 || arguments[2] === undefined ? path : arguments[2]; - return (function () { - if (!kind) throw new ReferenceError("no `kind`"); - - if (path.isVariableDeclaration()) { - var declarators /*: Array*/ = path.get("declarations"); - for (var _iterator9 = declarators, _isArray9 = Array.isArray(_iterator9), _i9 = 0, _iterator9 = _isArray9 ? _iterator9 : _getIterator(_iterator9);;) { - var _ref9; - - if (_isArray9) { - if (_i9 >= _iterator9.length) break; - _ref9 = _iterator9[_i9++]; - } else { - _i9 = _iterator9.next(); - if (_i9.done) break; - _ref9 = _i9.value; - } - - var declar = _ref9; - - this.registerBinding(kind, declar); - } - return; - } - - var parent = this.getProgramParent(); - var ids = path.getBindingIdentifiers(true); - - for (var _name4 in ids) { - for (var _iterator10 = (ids[_name4] /*: Array*/), _isArray10 = Array.isArray(_iterator10), _i10 = 0, _iterator10 = _isArray10 ? _iterator10 : _getIterator(_iterator10);;) { - var _ref10; - - if (_isArray10) { - if (_i10 >= _iterator10.length) break; - _ref10 = _iterator10[_i10++]; - } else { - _i10 = _iterator10.next(); - if (_i10.done) break; - _ref10 = _i10.value; - } - - var _id3 = _ref10; - - var local = this.getOwnBinding(_name4); - if (local) { - // same identifier so continue safely as we're likely trying to register it - // multiple times - if (local.identifier === _id3) continue; - - this.checkBlockScopedCollisions(local, kind, _name4, _id3); - } - - parent.references[_name4] = true; - - this.bindings[_name4] = new _binding2["default"]({ - identifier: _id3, - existing: local, - scope: this, - path: bindingPath, - kind: kind - }); - } - } - }).apply(this, arguments); - }; - - Scope.prototype.addGlobal = function addGlobal(node /*: Object*/) { - this.globals[node.name] = node; - }; - - Scope.prototype.hasUid = function hasUid(name) /*: boolean*/ { - var scope = this; - - do { - if (scope.uids[name]) return true; - } while (scope = scope.parent); - - return false; - }; - - Scope.prototype.hasGlobal = function hasGlobal(name /*: string*/) /*: boolean*/ { - var scope = this; - - do { - if (scope.globals[name]) return true; - } while (scope = scope.parent); - - return false; - }; - - Scope.prototype.hasReference = function hasReference(name /*: string*/) /*: boolean*/ { - var scope = this; - - do { - if (scope.references[name]) return true; - } while (scope = scope.parent); - - return false; - }; - - Scope.prototype.isPure = function isPure(node, constantsOnly /*:: ?: boolean*/) { - if (t.isIdentifier(node)) { - var binding = this.getBinding(node.name); - if (!binding) return false; - if (constantsOnly) return binding.constant; - return true; - } else if (t.isClass(node)) { - if (node.superClass && !this.isPure(node.superClass, constantsOnly)) return false; - return this.isPure(node.body, constantsOnly); - } else if (t.isClassBody(node)) { - for (var _iterator11 = node.body, _isArray11 = Array.isArray(_iterator11), _i11 = 0, _iterator11 = _isArray11 ? _iterator11 : _getIterator(_iterator11);;) { - var _ref11; - - if (_isArray11) { - if (_i11 >= _iterator11.length) break; - _ref11 = _iterator11[_i11++]; - } else { - _i11 = _iterator11.next(); - if (_i11.done) break; - _ref11 = _i11.value; - } - - var method = _ref11; - - if (!this.isPure(method, constantsOnly)) return false; - } - return true; - } else if (t.isBinary(node)) { - return this.isPure(node.left, constantsOnly) && this.isPure(node.right, constantsOnly); - } else if (t.isArrayExpression(node)) { - for (var _iterator12 = (node.elements /*: Array*/), _isArray12 = Array.isArray(_iterator12), _i12 = 0, _iterator12 = _isArray12 ? _iterator12 : _getIterator(_iterator12);;) { - var _ref12; - - if (_isArray12) { - if (_i12 >= _iterator12.length) break; - _ref12 = _iterator12[_i12++]; - } else { - _i12 = _iterator12.next(); - if (_i12.done) break; - _ref12 = _i12.value; - } - - var elem = _ref12; - - if (!this.isPure(elem, constantsOnly)) return false; - } - return true; - } else if (t.isObjectExpression(node)) { - for (var _iterator13 = (node.properties /*: Array*/), _isArray13 = Array.isArray(_iterator13), _i13 = 0, _iterator13 = _isArray13 ? _iterator13 : _getIterator(_iterator13);;) { - var _ref13; - - if (_isArray13) { - if (_i13 >= _iterator13.length) break; - _ref13 = _iterator13[_i13++]; - } else { - _i13 = _iterator13.next(); - if (_i13.done) break; - _ref13 = _i13.value; - } - - var prop = _ref13; - - if (!this.isPure(prop, constantsOnly)) return false; - } - return true; - } else if (t.isClassMethod(node)) { - if (node.computed && !this.isPure(node.key, constantsOnly)) return false; - if (node.kind === "get" || node.kind === "set") return false; - return true; - } else if (t.isClassProperty(node)) { - if (node.computed && !this.isPure(node.key, constantsOnly)) return false; - return this.isPure(node.value, constantsOnly); - } else { - return t.isPureish(node); - } - }; - - /** - * Set some arbitrary data on the current scope. - */ - - Scope.prototype.setData = function setData(key, val) { - return this.data[key] = val; - }; - - /** - * Recursively walk up scope tree looking for the data `key`. - */ - - Scope.prototype.getData = function getData(key) { - var scope = this; - do { - var data = scope.data[key]; - if (data != null) return data; - } while (scope = scope.parent); - }; - - /** - * Recursively walk up scope tree looking for the data `key` and if it exists, - * remove it. - */ - - Scope.prototype.removeData = function removeData(key) { - var scope = this; - do { - var data = scope.data[key]; - if (data != null) scope.data[key] = null; - } while (scope = scope.parent); - }; - - Scope.prototype.init = function init() { - if (!this.references) this.crawl(); - }; - - Scope.prototype.crawl = function crawl() { - var path = this.path; - - // - - this.references = _Object$create(null); - this.bindings = _Object$create(null); - this.globals = _Object$create(null); - this.uids = _Object$create(null); - this.data = _Object$create(null); - - // ForStatement - left, init - - if (path.isLoop()) { - for (var _iterator14 = (t.FOR_INIT_KEYS /*: Array*/), _isArray14 = Array.isArray(_iterator14), _i14 = 0, _iterator14 = _isArray14 ? _iterator14 : _getIterator(_iterator14);;) { - var _ref14; - - if (_isArray14) { - if (_i14 >= _iterator14.length) break; - _ref14 = _iterator14[_i14++]; - } else { - _i14 = _iterator14.next(); - if (_i14.done) break; - _ref14 = _i14.value; - } - - var key = _ref14; - - var node = path.get(key); - if (node.isBlockScoped()) this.registerBinding(node.node.kind, node); - } - } - - // FunctionExpression - id - - if (path.isFunctionExpression() && path.has("id")) { - this.registerBinding("local", path.get("id"), path); - } - - // Class - - if (path.isClassExpression() && path.has("id")) { - this.registerBinding("local", path); - } - - // Function - params, rest - - if (path.isFunction()) { - var params /*: Array*/ = path.get("params"); - for (var _iterator15 = params, _isArray15 = Array.isArray(_iterator15), _i15 = 0, _iterator15 = _isArray15 ? _iterator15 : _getIterator(_iterator15);;) { - var _ref15; - - if (_isArray15) { - if (_i15 >= _iterator15.length) break; - _ref15 = _iterator15[_i15++]; - } else { - _i15 = _iterator15.next(); - if (_i15.done) break; - _ref15 = _i15.value; - } - - var param = _ref15; - - this.registerBinding("param", param); - } - } - - // CatchClause - param - - if (path.isCatchClause()) { - this.registerBinding("let", path); - } - - // Program - - var parent = this.getProgramParent(); - if (parent.crawling) return; - - var state = { - references: [], - constantViolations: [], - assignments: [] - }; - - this.crawling = true; - path.traverse(collectorVisitor, state); - this.crawling = false; - - // register assignments - for (var _iterator16 = state.assignments, _isArray16 = Array.isArray(_iterator16), _i16 = 0, _iterator16 = _isArray16 ? _iterator16 : _getIterator(_iterator16);;) { - var _ref16; - - if (_isArray16) { - if (_i16 >= _iterator16.length) break; - _ref16 = _iterator16[_i16++]; - } else { - _i16 = _iterator16.next(); - if (_i16.done) break; - _ref16 = _i16.value; - } - - var _path = _ref16; - - // register undeclared bindings as globals - var ids = _path.getBindingIdentifiers(); - var programParent = undefined; - for (var _name5 in ids) { - if (_path.scope.getBinding(_name5)) continue; - - programParent = programParent || _path.scope.getProgramParent(); - programParent.addGlobal(ids[_name5]); - } - - // register as constant violation - _path.scope.registerConstantViolation(_path); - } - - // register references - for (var _iterator17 = state.references, _isArray17 = Array.isArray(_iterator17), _i17 = 0, _iterator17 = _isArray17 ? _iterator17 : _getIterator(_iterator17);;) { - var _ref17; - - if (_isArray17) { - if (_i17 >= _iterator17.length) break; - _ref17 = _iterator17[_i17++]; - } else { - _i17 = _iterator17.next(); - if (_i17.done) break; - _ref17 = _i17.value; - } - - var ref = _ref17; - - var binding = ref.scope.getBinding(ref.node.name); - if (binding) { - binding.reference(ref); - } else { - ref.scope.getProgramParent().addGlobal(ref.node); - } - } - - // register constant violations - for (var _iterator18 = state.constantViolations, _isArray18 = Array.isArray(_iterator18), _i18 = 0, _iterator18 = _isArray18 ? _iterator18 : _getIterator(_iterator18);;) { - var _ref18; - - if (_isArray18) { - if (_i18 >= _iterator18.length) break; - _ref18 = _iterator18[_i18++]; - } else { - _i18 = _iterator18.next(); - if (_i18.done) break; - _ref18 = _i18.value; - } - - var _path2 = _ref18; - - _path2.scope.registerConstantViolation(_path2); - } - }; - - Scope.prototype.push = function push(opts /*: { - id: Object; - init: ?Object; - unique: ?boolean; - _blockHoist: ?number; - kind: "var" | "let"; - }*/) { - var path = this.path; - - if (path.isSwitchStatement()) { - path = this.getFunctionParent().path; - } - - if (path.isLoop() || path.isCatchClause() || path.isFunction()) { - t.ensureBlock(path.node); - path = path.get("body"); - } - - if (!path.isBlockStatement() && !path.isProgram()) { - path = this.getBlockParent().path; - } - - var unique = opts.unique; - var kind = opts.kind || "var"; - var blockHoist = opts._blockHoist == null ? 2 : opts._blockHoist; - - var dataKey = "declaration:" + kind + ":" + blockHoist; - var declarPath = !unique && path.getData(dataKey); - - if (!declarPath) { - var declar = t.variableDeclaration(kind, []); - declar._generated = true; - declar._blockHoist = blockHoist; - - var _path$unshiftContainer = path.unshiftContainer("body", [declar]); - - declarPath = _path$unshiftContainer[0]; - - if (!unique) path.setData(dataKey, declarPath); - } - - var declarator = t.variableDeclarator(opts.id, opts.init); - declarPath.node.declarations.push(declarator); - this.registerBinding(kind, declarPath.get("declarations").pop()); - }; - - /** - * Walk up to the top of the scope tree and get the `Program`. - */ - - Scope.prototype.getProgramParent = function getProgramParent() { - var scope = this; - do { - if (scope.path.isProgram()) { - return scope; - } - } while (scope = scope.parent); - throw new Error("We couldn't find a Function or Program..."); - }; - - /** - * Walk up the scope tree until we hit either a Function or reach the - * very top and hit Program. - */ - - Scope.prototype.getFunctionParent = function getFunctionParent() { - var scope = this; - do { - if (scope.path.isFunctionParent()) { - return scope; - } - } while (scope = scope.parent); - throw new Error("We couldn't find a Function or Program..."); - }; - - /** - * Walk up the scope tree until we hit either a BlockStatement/Loop/Program/Function/Switch or reach the - * very top and hit Program. - */ - - Scope.prototype.getBlockParent = function getBlockParent() { - var scope = this; - do { - if (scope.path.isBlockParent()) { - return scope; - } - } while (scope = scope.parent); - throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program..."); - }; - - /** - * Walks the scope tree and gathers **all** bindings. - */ - - Scope.prototype.getAllBindings = function getAllBindings() /*: Object*/ { - var ids = _Object$create(null); - - var scope = this; - do { - _lodashObjectDefaults2["default"](ids, scope.bindings); - scope = scope.parent; - } while (scope); - - return ids; - }; - - /** - * Walks the scope tree and gathers all declarations of `kind`. - */ - - Scope.prototype.getAllBindingsOfKind = function getAllBindingsOfKind() /*: Object*/ { - var ids = _Object$create(null); - - for (var _iterator19 = (arguments /*: Array*/), _isArray19 = Array.isArray(_iterator19), _i19 = 0, _iterator19 = _isArray19 ? _iterator19 : _getIterator(_iterator19);;) { - var _ref19; - - if (_isArray19) { - if (_i19 >= _iterator19.length) break; - _ref19 = _iterator19[_i19++]; - } else { - _i19 = _iterator19.next(); - if (_i19.done) break; - _ref19 = _i19.value; - } - - var kind = _ref19; - - var scope = this; - do { - for (var _name6 in scope.bindings) { - var binding = scope.bindings[_name6]; - if (binding.kind === kind) ids[_name6] = binding; - } - scope = scope.parent; - } while (scope); - } - - return ids; - }; - - Scope.prototype.bindingIdentifierEquals = function bindingIdentifierEquals(name /*: string*/, node /*: Object*/) /*: boolean*/ { - return this.getBindingIdentifier(name) === node; - }; - - Scope.prototype.getBinding = function getBinding(name /*: string*/) { - var scope = this; - - do { - var binding = scope.getOwnBinding(name); - if (binding) return binding; - } while (scope = scope.parent); - }; - - Scope.prototype.getOwnBinding = function getOwnBinding(name /*: string*/) { - return this.bindings[name]; - }; - - Scope.prototype.getBindingIdentifier = function getBindingIdentifier(name /*: string*/) { - var info = this.getBinding(name); - return info && info.identifier; - }; - - Scope.prototype.getOwnBindingIdentifier = function getOwnBindingIdentifier(name /*: string*/) { - var binding = this.bindings[name]; - return binding && binding.identifier; - }; - - Scope.prototype.hasOwnBinding = function hasOwnBinding(name /*: string*/) { - return !!this.getOwnBinding(name); - }; - - Scope.prototype.hasBinding = function hasBinding(name /*: string*/, noGlobals /*:: ?*/) { - if (!name) return false; - if (this.hasOwnBinding(name)) return true; - if (this.parentHasBinding(name, noGlobals)) return true; - if (this.hasUid(name)) return true; - if (!noGlobals && _lodashCollectionIncludes2["default"](Scope.globals, name)) return true; - if (!noGlobals && _lodashCollectionIncludes2["default"](Scope.contextVariables, name)) return true; - return false; - }; - - Scope.prototype.parentHasBinding = function parentHasBinding(name /*: string*/, noGlobals /*:: ?*/) { - return this.parent && this.parent.hasBinding(name, noGlobals); - }; - - /** - * Move a binding of `name` to another `scope`. - */ - - Scope.prototype.moveBindingTo = function moveBindingTo(name, scope) { - var info = this.getBinding(name); - if (info) { - info.scope.removeOwnBinding(name); - info.scope = scope; - scope.bindings[name] = info; - } - }; - - Scope.prototype.removeOwnBinding = function removeOwnBinding(name /*: string*/) { - delete this.bindings[name]; - }; - - Scope.prototype.removeBinding = function removeBinding(name /*: string*/) { - // clear literal binding - var info = this.getBinding(name); - if (info) { - info.scope.removeOwnBinding(name); - } - - // clear uids with this name - https://github.com/babel/babel/issues/2101 - var scope = this; - do { - if (scope.uids[name]) { - scope.uids[name] = false; - } - } while (scope = scope.parent); - }; - - return Scope; -})(); - -exports["default"] = Scope; -module.exports = exports["default"]; - -/** - * Variables available in current context. - */ \ No newline at end of file diff --git a/js/node_modules/babel-traverse/lib/scope/lib/renamer.js b/js/node_modules/babel-traverse/lib/scope/lib/renamer.js deleted file mode 100644 index b966a6a..0000000 --- a/js/node_modules/babel-traverse/lib/scope/lib/renamer.js +++ /dev/null @@ -1,146 +0,0 @@ -"use strict"; - -var _classCallCheck = require("babel-runtime/helpers/class-call-check")["default"]; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -exports.__esModule = true; - -var _binding = require("../binding"); - -var _binding2 = _interopRequireDefault(_binding); - -var _babelTypes = require("babel-types"); - -var t = _interopRequireWildcard(_babelTypes); - -var renameVisitor = { - ReferencedIdentifier: function ReferencedIdentifier(_ref, state) { - var node = _ref.node; - - if (node.name === state.oldName) { - node.name = state.newName; - } - }, - - Scope: function Scope(path, state) { - if (!path.scope.bindingIdentifierEquals(state.oldName, state.binding.identifier)) { - path.skip(); - } - }, - - "AssignmentExpression|Declaration": function AssignmentExpressionDeclaration(path, state) { - var ids = path.getBindingIdentifiers(); - - for (var _name in ids) { - if (_name === state.oldName) ids[_name].name = state.newName; - } - } -}; - -var Renamer = (function () { - function Renamer(binding /*: Binding*/, oldName /*: string*/, newName /*: string*/) { - _classCallCheck(this, Renamer); - - this.newName = newName; - this.oldName = oldName; - this.binding = binding; - } - - Renamer.prototype.maybeConvertFromExportDeclaration = function maybeConvertFromExportDeclaration(parentDeclar) { - var exportDeclar = parentDeclar.parentPath.isExportDeclaration() && parentDeclar.parentPath; - if (!exportDeclar) return; - - // build specifiers that point back to this export declaration - var isDefault = exportDeclar.isExportDefaultDeclaration(); - var bindingIdentifiers = parentDeclar.getOuterBindingIdentifiers(); - var specifiers = []; - - for (var _name2 in bindingIdentifiers) { - var localName = _name2 === this.oldName ? this.newName : _name2; - var exportedName = isDefault ? "default" : _name2; - specifiers.push(t.exportSpecifier(t.identifier(localName), t.identifier(exportedName))); - } - - var aliasDeclar = t.exportNamedDeclaration(null, specifiers); - - // hoist to the top if it's a function - if (parentDeclar.isFunctionDeclaration()) { - aliasDeclar._blockHoist = 3; - } - - exportDeclar.insertAfter(aliasDeclar); - exportDeclar.replaceWith(parentDeclar.node); - }; - - Renamer.prototype.maybeConvertFromClassFunctionDeclaration = function maybeConvertFromClassFunctionDeclaration(path) { - return; // TODO - - // retain the `name` of a class/function declaration - - if (!path.isFunctionDeclaration() && !path.isClassDeclaration()) return; - if (this.binding.kind !== "hoisted") return; - - path.node.id = t.identifier(this.oldName); - path.node._blockHoist = 3; - - path.replaceWith(t.variableDeclaration("let", [t.variableDeclarator(t.identifier(this.newName), t.toExpression(path.node))])); - }; - - Renamer.prototype.maybeConvertFromClassFunctionExpression = function maybeConvertFromClassFunctionExpression(path) { - return; // TODO - - // retain the `name` of a class/function expression - - if (!path.isFunctionExpression() && !path.isClassExpression()) return; - if (this.binding.kind !== "local") return; - - path.node.id = t.identifier(this.oldName); - - this.binding.scope.parent.push({ - id: t.identifier(this.newName) - }); - - path.replaceWith(t.assignmentExpression("=", t.identifier(this.newName), path.node)); - }; - - Renamer.prototype.rename = function rename(block /*:: ?*/) { - var binding = this.binding; - var oldName = this.oldName; - var newName = this.newName; - var scope = binding.scope; - var path = binding.path; - - var parentDeclar = path.find(function (path) { - return path.isDeclaration() || path.isFunctionExpression(); - }); - if (parentDeclar) { - this.maybeConvertFromExportDeclaration(parentDeclar); - } - - scope.traverse(block || scope.block, renameVisitor, this); - - if (!block) { - scope.removeOwnBinding(oldName); - scope.bindings[newName] = binding; - this.binding.identifier.name = newName; - } - - if (binding.type === "hoisted") { - // https://github.com/babel/babel/issues/2435 - // todo: hoist and convert function to a let - } - - if (parentDeclar) { - this.maybeConvertFromClassFunctionDeclaration(parentDeclar); - this.maybeConvertFromClassFunctionExpression(parentDeclar); - } - }; - - return Renamer; -})(); - -exports["default"] = Renamer; -module.exports = exports["default"]; \ No newline at end of file diff --git a/js/node_modules/babel-traverse/lib/visitors.js b/js/node_modules/babel-traverse/lib/visitors.js deleted file mode 100644 index 88abaa1..0000000 --- a/js/node_modules/babel-traverse/lib/visitors.js +++ /dev/null @@ -1,335 +0,0 @@ -"use strict"; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -var _Object$keys = require("babel-runtime/core-js/object/keys")["default"]; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -exports.__esModule = true; -exports.explode = explode; -exports.verify = verify; -exports.merge = merge; - -var _pathLibVirtualTypes = require("./path/lib/virtual-types"); - -var virtualTypes = _interopRequireWildcard(_pathLibVirtualTypes); - -var _babelMessages = require("babel-messages"); - -var messages = _interopRequireWildcard(_babelMessages); - -var _babelTypes = require("babel-types"); - -var t = _interopRequireWildcard(_babelTypes); - -var _lodashLangClone = require("lodash/lang/clone"); - -var _lodashLangClone2 = _interopRequireDefault(_lodashLangClone); - -function explode(visitor) { - if (visitor._exploded) return visitor; - visitor._exploded = true; - - // normalise pipes - for (var nodeType in visitor) { - if (shouldIgnoreKey(nodeType)) continue; - - var parts /*: Array*/ = nodeType.split("|"); - if (parts.length === 1) continue; - - var fns = visitor[nodeType]; - delete visitor[nodeType]; - - for (var _iterator = parts, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var part = _ref; - - visitor[part] = fns; - } - } - - // verify data structure - verify(visitor); - - // make sure there's no __esModule type since this is because we're using loose mode - // and it sets __esModule to be enumerable on all modules :( - delete visitor.__esModule; - - // ensure visitors are objects - ensureEntranceObjects(visitor); - - // ensure enter/exit callbacks are arrays - ensureCallbackArrays(visitor); - - // add type wrappers - for (var _iterator2 = (_Object$keys(visitor) /*: Array*/), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) { - var _ref2; - - if (_isArray2) { - if (_i2 >= _iterator2.length) break; - _ref2 = _iterator2[_i2++]; - } else { - _i2 = _iterator2.next(); - if (_i2.done) break; - _ref2 = _i2.value; - } - - var nodeType = _ref2; - - if (shouldIgnoreKey(nodeType)) continue; - - var wrapper = virtualTypes[nodeType]; - if (!wrapper) continue; - - // wrap all the functions - var fns = visitor[nodeType]; - for (var type in fns) { - fns[type] = wrapCheck(wrapper, fns[type]); - } - - // clear it from the visitor - delete visitor[nodeType]; - - if (wrapper.types) { - for (var _iterator3 = (wrapper.types /*: Array*/), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) { - var _ref3; - - if (_isArray3) { - if (_i3 >= _iterator3.length) break; - _ref3 = _iterator3[_i3++]; - } else { - _i3 = _iterator3.next(); - if (_i3.done) break; - _ref3 = _i3.value; - } - - var type = _ref3; - - // merge the visitor if necessary or just put it back in - if (visitor[type]) { - mergePair(visitor[type], fns); - } else { - visitor[type] = fns; - } - } - } else { - mergePair(visitor, fns); - } - } - - // add aliases - for (var nodeType in visitor) { - if (shouldIgnoreKey(nodeType)) continue; - - var fns = visitor[nodeType]; - - var aliases /*: ?Array*/ = t.FLIPPED_ALIAS_KEYS[nodeType]; - - var deprecratedKey = t.DEPRECATED_KEYS[nodeType]; - if (deprecratedKey) { - console.trace("Visitor defined for " + nodeType + " but it has been renamed to " + deprecratedKey); - aliases = [deprecratedKey]; - } - - if (!aliases) continue; - - // clear it from the visitor - delete visitor[nodeType]; - - for (var _iterator4 = aliases, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _getIterator(_iterator4);;) { - var _ref4; - - if (_isArray4) { - if (_i4 >= _iterator4.length) break; - _ref4 = _iterator4[_i4++]; - } else { - _i4 = _iterator4.next(); - if (_i4.done) break; - _ref4 = _i4.value; - } - - var alias = _ref4; - - var existing = visitor[alias]; - if (existing) { - mergePair(existing, fns); - } else { - visitor[alias] = _lodashLangClone2["default"](fns); - } - } - } - - for (var nodeType in visitor) { - if (shouldIgnoreKey(nodeType)) continue; - - ensureCallbackArrays(visitor[nodeType]); - } - - return visitor; -} - -function verify(visitor) { - if (visitor._verified) return; - - if (typeof visitor === "function") { - throw new Error(messages.get("traverseVerifyRootFunction")); - } - - for (var nodeType in visitor) { - if (nodeType === "enter" || nodeType === "exit") { - validateVisitorMethods(nodeType, visitor[nodeType]); - } - - if (shouldIgnoreKey(nodeType)) continue; - - if (t.TYPES.indexOf(nodeType) < 0) { - throw new Error(messages.get("traverseVerifyNodeType", nodeType)); - } - - var visitors = visitor[nodeType]; - if (typeof visitors === "object") { - for (var visitorKey in visitors) { - if (visitorKey === "enter" || visitorKey === "exit") { - // verify that it just contains functions - validateVisitorMethods(nodeType + "." + visitorKey, visitors[visitorKey]); - } else { - throw new Error(messages.get("traverseVerifyVisitorProperty", nodeType, visitorKey)); - } - } - } - } - - visitor._verified = true; -} - -function validateVisitorMethods(path, val) { - var fns = [].concat(val); - for (var _iterator5 = fns, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _getIterator(_iterator5);;) { - var _ref5; - - if (_isArray5) { - if (_i5 >= _iterator5.length) break; - _ref5 = _iterator5[_i5++]; - } else { - _i5 = _iterator5.next(); - if (_i5.done) break; - _ref5 = _i5.value; - } - - var fn = _ref5; - - if (typeof fn !== "function") { - throw new TypeError("Non-function found defined in " + path + " with type " + typeof fn); - } - } -} - -function merge(visitors /*: Array*/) { - var states /*: Array*/ = arguments.length <= 1 || arguments[1] === undefined ? [] : arguments[1]; - - var rootVisitor = {}; - - for (var i = 0; i < visitors.length; i++) { - var visitor = visitors[i]; - var state = states[i]; - - explode(visitor); - - for (var type in visitor) { - var visitorType = visitor[type]; - - // if we have state then overload the callbacks to take it - if (state) visitorType = wrapWithState(visitorType, state); - - var nodeVisitor = rootVisitor[type] = rootVisitor[type] || {}; - mergePair(nodeVisitor, visitorType); - } - } - - return rootVisitor; -} - -function wrapWithState(oldVisitor, state) { - var newVisitor = {}; - - for (var key in oldVisitor) { - var fns = oldVisitor[key]; - - // not an enter/exit array of callbacks - if (!Array.isArray(fns)) continue; - - fns = fns.map(function (fn) { - var newFn = function newFn(path) { - return fn.call(state, path, state); - }; - newFn.toString = function () { - return fn.toString(); - }; - return newFn; - }); - - newVisitor[key] = fns; - } - - return newVisitor; -} - -function ensureEntranceObjects(obj) { - for (var key in obj) { - if (shouldIgnoreKey(key)) continue; - - var fns = obj[key]; - if (typeof fns === "function") { - obj[key] = { enter: fns }; - } - } -} - -function ensureCallbackArrays(obj) { - if (obj.enter && !Array.isArray(obj.enter)) obj.enter = [obj.enter]; - if (obj.exit && !Array.isArray(obj.exit)) obj.exit = [obj.exit]; -} - -function wrapCheck(wrapper, fn) { - var newFn = function newFn(path) { - if (wrapper.checkPath(path)) { - return fn.apply(this, arguments); - } - }; - newFn.toString = function () { - return fn.toString(); - }; - return newFn; -} - -function shouldIgnoreKey(key) { - // internal/hidden key - if (key[0] === "_") return true; - - // ignore function keys - if (key === "enter" || key === "exit" || key === "shouldSkip") return true; - - // ignore other options - if (key === "blacklist" || key === "noScope" || key === "skipKeys") return true; - - return false; -} - -function mergePair(dest, src) { - for (var key in src) { - dest[key] = [].concat(dest[key] || [], src[key]); - } -} \ No newline at end of file diff --git a/js/node_modules/babel-traverse/package.json b/js/node_modules/babel-traverse/package.json deleted file mode 100644 index bfc794a..0000000 --- a/js/node_modules/babel-traverse/package.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "_args": [ - [ - "babel-traverse@^6.2.0", - "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/babel-types" - ] - ], - "_from": "babel-traverse@>=6.2.0 <7.0.0", - "_id": "babel-traverse@6.2.0", - "_inCache": true, - "_location": "/babel-traverse", - "_nodeVersion": "4.1.0", - "_npmUser": { - "email": "sebmck@gmail.com", - "name": "sebmck" - }, - "_npmVersion": "3.3.10", - "_phantomChildren": {}, - "_requested": { - "name": "babel-traverse", - "raw": "babel-traverse@^6.2.0", - "rawSpec": "^6.2.0", - "scope": null, - "spec": ">=6.2.0 <7.0.0", - "type": "range" - }, - "_requiredBy": [ - "/babel-types" - ], - "_resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.2.0.tgz", - "_shasum": "0347d4d8f5987ce1d9165938578ee6c51499cddb", - "_shrinkwrap": null, - "_spec": "babel-traverse@^6.2.0", - "_where": "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/babel-types", - "author": { - "email": "sebmck@gmail.com", - "name": "Sebastian McKenzie" - }, - "dependencies": { - "babel-code-frame": "^6.1.18", - "babel-messages": "^6.2.0", - "babel-runtime": "^5.0.0", - "babel-types": "^6.2.0", - "babylon": "^6.2.0", - "debug": "^2.2.0", - "globals": "^8.3.0", - "invariant": "^2.2.0", - "lodash": "^3.10.1", - "repeating": "^1.1.3" - }, - "description": "", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "0347d4d8f5987ce1d9165938578ee6c51499cddb", - "tarball": "http://registry.npmjs.org/babel-traverse/-/babel-traverse-6.2.0.tgz" - }, - "homepage": "https://babeljs.io/", - "installable": true, - "license": "MIT", - "main": "lib/index.js", - "maintainers": [ - { - "name": "amasad", - "email": "amjad.masad@gmail.com" - }, - { - "name": "sebmck", - "email": "sebmck@gmail.com" - }, - { - "name": "thejameskyle", - "email": "me@thejameskyle.com" - } - ], - "name": "babel-traverse", - "optionalDependencies": {}, - "repository": { - "type": "git", - "url": "https://github.com/babel/babel/tree/master/packages/babel-traverse" - }, - "scripts": {}, - "version": "6.2.0" -} diff --git a/js/node_modules/babel-traverse/test/scope.js b/js/node_modules/babel-traverse/test/scope.js deleted file mode 100644 index d58ccc1..0000000 --- a/js/node_modules/babel-traverse/test/scope.js +++ /dev/null @@ -1,38 +0,0 @@ -var traverse = require("../lib").default; -var assert = require("assert"); -var parse = require("babylon").parse; - -function getPath(code) { - var ast = parse(code); - var path; - traverse(ast, { - Program: function (_path) { - path = _path; - _path.stop(); - } - }); - return path; -} - -suite("scope", function () { - suite("binding paths", function () { - test("function declaration id", function () { - assert.ok(getPath("function foo() {}").scope.getBinding("foo").path.type === "FunctionDeclaration"); - }); - - test("function expression id", function () { - assert.ok(getPath("(function foo() {})").get("body")[0].get("expression").scope.getBinding("foo").path.type === "FunctionExpression"); - }); - - test("function param", function () { - assert.ok(getPath("(function (foo) {})").get("body")[0].get("expression").scope.getBinding("foo").path.type === "Identifier"); - }); - - test("variable declaration", function () { - assert.ok(getPath("var foo = null;").scope.getBinding("foo").path.type === "VariableDeclarator"); - assert.ok(getPath("var { foo } = null;").scope.getBinding("foo").path.type === "VariableDeclarator"); - assert.ok(getPath("var [ foo ] = null;").scope.getBinding("foo").path.type === "VariableDeclarator"); - assert.ok(getPath("var { bar: [ foo ] } = null;").scope.getBinding("foo").path.type === "VariableDeclarator"); - }); - }); -}); diff --git a/js/node_modules/babel-traverse/test/traverse.js b/js/node_modules/babel-traverse/test/traverse.js deleted file mode 100644 index b2cc301..0000000 --- a/js/node_modules/babel-traverse/test/traverse.js +++ /dev/null @@ -1,126 +0,0 @@ -var traverse = require("../lib").default; -var assert = require("assert"); -var _ = require("lodash"); - -suite("traverse", function () { - var ast = { - type: "Program", - body: [ - { - "type": "VariableDeclaration", - "declarations": [ - { - "type": "VariableDeclarator", - "id": { - "type": "Identifier", - "name": "foo", - }, - "init": { - "type": "StringLiteral", - "value": "bar", - "raw": "\'bar\'" - } - } - ], - "kind": "var" - }, - { - "type": "ExpressionStatement", - "expression": { - "type": "AssignmentExpression", - "operator": "=", - "left": { - "type": "MemberExpression", - "computed": false, - "object": { - "type": "ThisExpression" - }, - "property": { - "type": "Identifier", - "name": "test" - } - }, - "right": { - "type": "StringLiteral", - "value": "wow", - "raw": "\'wow\'" - } - } - } - ] - }; - - var body = ast.body; - - test("traverse replace", function () { - var replacement = { - type: "StringLiteral", - value: "foo" - }; - var ast2 = _.cloneDeep(ast); - - traverse(ast2, { - enter: function (path) { - if (path.node.type === "ThisExpression") path.replaceWith(replacement); - } - }); - - assert.equal(ast2.body[1].expression.left.object, replacement); - }); - - test("traverse", function () { - var expect = [ - body[0], body[0].declarations[0], body[0].declarations[0].id, body[0].declarations[0].init, - body[1], body[1].expression, body[1].expression.left, body[1].expression.left.object, body[1].expression.left.property, body[1].expression.right - ]; - - var actual = []; - - traverse(ast, { - enter: function (path) { - actual.push(path.node); - } - }); - - assert.deepEqual(actual, expect); - }); - - test("traverse falsy parent", function () { - traverse(null, { - enter: function () { - throw new Error("should not be ran"); - } - }); - }); - - test("traverse blacklistTypes", function () { - var expect = [ - body[0], body[0].declarations[0], body[0].declarations[0].id, body[0].declarations[0].init, - body[1], body[1].expression, body[1].expression.right - ]; - - var actual = []; - - traverse(ast, { - blacklist: ["MemberExpression"], - enter: function (path) { - actual.push(path.node); - } - }); - - assert.deepEqual(actual, expect); - }); - - test("hasType", function () { - assert.ok(traverse.hasType(ast, null, "ThisExpression")); - assert.ok(!traverse.hasType(ast, null, "ThisExpression", ["AssignmentExpression"])); - - assert.ok(traverse.hasType(ast, null, "ThisExpression")); - assert.ok(traverse.hasType(ast, null, "Program")); - - assert.ok(!traverse.hasType(ast, null, "ThisExpression", ["MemberExpression"])); - assert.ok(!traverse.hasType(ast, null, "ThisExpression", ["Program"])); - - assert.ok(!traverse.hasType(ast, null, "ArrowFunctionExpression")); - }); -}); diff --git a/js/node_modules/babel-types/.npmignore b/js/node_modules/babel-types/.npmignore deleted file mode 100644 index a57582c..0000000 --- a/js/node_modules/babel-types/.npmignore +++ /dev/null @@ -1 +0,0 @@ -/src diff --git a/js/node_modules/babel-types/README.md b/js/node_modules/babel-types/README.md deleted file mode 100644 index a71a129..0000000 --- a/js/node_modules/babel-types/README.md +++ /dev/null @@ -1 +0,0 @@ -# babel-types diff --git a/js/node_modules/babel-types/lib/constants.js b/js/node_modules/babel-types/lib/constants.js deleted file mode 100644 index 44a1680..0000000 --- a/js/node_modules/babel-types/lib/constants.js +++ /dev/null @@ -1,49 +0,0 @@ -"use strict"; - -var _Symbol$for = require("babel-runtime/core-js/symbol/for")["default"]; - -exports.__esModule = true; -var STATEMENT_OR_BLOCK_KEYS = ["consequent", "body", "alternate"]; -exports.STATEMENT_OR_BLOCK_KEYS = STATEMENT_OR_BLOCK_KEYS; -var FLATTENABLE_KEYS = ["body", "expressions"]; -exports.FLATTENABLE_KEYS = FLATTENABLE_KEYS; -var FOR_INIT_KEYS = ["left", "init"]; -exports.FOR_INIT_KEYS = FOR_INIT_KEYS; -var COMMENT_KEYS = ["leadingComments", "trailingComments", "innerComments"]; - -exports.COMMENT_KEYS = COMMENT_KEYS; -var LOGICAL_OPERATORS = ["||", "&&"]; -exports.LOGICAL_OPERATORS = LOGICAL_OPERATORS; -var UPDATE_OPERATORS = ["++", "--"]; - -exports.UPDATE_OPERATORS = UPDATE_OPERATORS; -var BOOLEAN_NUMBER_BINARY_OPERATORS = [">", "<", ">=", "<="]; -exports.BOOLEAN_NUMBER_BINARY_OPERATORS = BOOLEAN_NUMBER_BINARY_OPERATORS; -var EQUALITY_BINARY_OPERATORS = ["==", "===", "!=", "!=="]; -exports.EQUALITY_BINARY_OPERATORS = EQUALITY_BINARY_OPERATORS; -var COMPARISON_BINARY_OPERATORS = [].concat(EQUALITY_BINARY_OPERATORS, ["in", "instanceof"]); -exports.COMPARISON_BINARY_OPERATORS = COMPARISON_BINARY_OPERATORS; -var BOOLEAN_BINARY_OPERATORS = [].concat(COMPARISON_BINARY_OPERATORS, BOOLEAN_NUMBER_BINARY_OPERATORS); -exports.BOOLEAN_BINARY_OPERATORS = BOOLEAN_BINARY_OPERATORS; -var NUMBER_BINARY_OPERATORS = ["-", "/", "%", "*", "**", "&", "|", ">>", ">>>", "<<", "^"]; -exports.NUMBER_BINARY_OPERATORS = NUMBER_BINARY_OPERATORS; -var BINARY_OPERATORS = ["+"].concat(NUMBER_BINARY_OPERATORS, BOOLEAN_BINARY_OPERATORS); - -exports.BINARY_OPERATORS = BINARY_OPERATORS; -var BOOLEAN_UNARY_OPERATORS = ["delete", "!"]; -exports.BOOLEAN_UNARY_OPERATORS = BOOLEAN_UNARY_OPERATORS; -var NUMBER_UNARY_OPERATORS = ["+", "-", "++", "--", "~"]; -exports.NUMBER_UNARY_OPERATORS = NUMBER_UNARY_OPERATORS; -var STRING_UNARY_OPERATORS = ["typeof"]; -exports.STRING_UNARY_OPERATORS = STRING_UNARY_OPERATORS; -var UNARY_OPERATORS = ["void"].concat(BOOLEAN_UNARY_OPERATORS, NUMBER_UNARY_OPERATORS, STRING_UNARY_OPERATORS); - -exports.UNARY_OPERATORS = UNARY_OPERATORS; -var INHERIT_KEYS = { - optional: ["typeAnnotation", "typeParameters", "returnType"], - force: ["start", "loc", "end"] -}; - -exports.INHERIT_KEYS = INHERIT_KEYS; -var BLOCK_SCOPED_SYMBOL = _Symbol$for("var used to be block scoped"); -exports.BLOCK_SCOPED_SYMBOL = BLOCK_SCOPED_SYMBOL; \ No newline at end of file diff --git a/js/node_modules/babel-types/lib/converters.js b/js/node_modules/babel-types/lib/converters.js deleted file mode 100644 index f8c7c32..0000000 --- a/js/node_modules/babel-types/lib/converters.js +++ /dev/null @@ -1,369 +0,0 @@ -"use strict"; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -var _Number$MAX_SAFE_INTEGER = require("babel-runtime/core-js/number/max-safe-integer")["default"]; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -exports.__esModule = true; -exports.toComputedKey = toComputedKey; -exports.toSequenceExpression = toSequenceExpression; -exports.toKeyAlias = toKeyAlias; -exports.toIdentifier = toIdentifier; -exports.toBindingIdentifierName = toBindingIdentifierName; -exports.toStatement = toStatement; -exports.toExpression = toExpression; -exports.toBlock = toBlock; -exports.valueToNode = valueToNode; - -var _lodashLangIsPlainObject = require("lodash/lang/isPlainObject"); - -var _lodashLangIsPlainObject2 = _interopRequireDefault(_lodashLangIsPlainObject); - -var _lodashLangIsNumber = require("lodash/lang/isNumber"); - -var _lodashLangIsNumber2 = _interopRequireDefault(_lodashLangIsNumber); - -var _lodashLangIsRegExp = require("lodash/lang/isRegExp"); - -var _lodashLangIsRegExp2 = _interopRequireDefault(_lodashLangIsRegExp); - -var _lodashLangIsString = require("lodash/lang/isString"); - -var _lodashLangIsString2 = _interopRequireDefault(_lodashLangIsString); - -var _babelTraverse = require("babel-traverse"); - -var _babelTraverse2 = _interopRequireDefault(_babelTraverse); - -var _index = require("./index"); - -var t = _interopRequireWildcard(_index); - -/*:: import type { Scope } from "babel-traverse";*/ -function toComputedKey(node /*: Object*/) /*: Object*/ { - var key /*: Object*/ = arguments.length <= 1 || arguments[1] === undefined ? node.key || node.property : arguments[1]; - return (function () { - if (!node.computed) { - if (t.isIdentifier(key)) key = t.stringLiteral(key.name); - } - return key; - })(); -} - -/** - * Turn an array of statement `nodes` into a `SequenceExpression`. - * - * Variable declarations are turned into simple assignments and their - * declarations hoisted to the top of the current scope. - * - * Expression statements are just resolved to their expression. - */ - -function toSequenceExpression(nodes /*: Array*/, scope /*: Scope*/) /*: ?Object*/ { - if (!nodes || !nodes.length) return; - - var declars = []; - var bailed = false; - - var result = convert(nodes); - if (bailed) return; - - for (var i = 0; i < declars.length; i++) { - scope.push(declars[i]); - } - - return result; - - function convert(nodes) { - var ensureLastUndefined = false; - var exprs = []; - - for (var _iterator = (nodes /*: Array*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var node = _ref; - - if (t.isExpression(node)) { - exprs.push(node); - } else if (t.isExpressionStatement(node)) { - exprs.push(node.expression); - } else if (t.isVariableDeclaration(node)) { - if (node.kind !== "var") return bailed = true; // bailed - - for (var _iterator2 = (node.declarations /*: Array*/), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) { - var _ref2; - - if (_isArray2) { - if (_i2 >= _iterator2.length) break; - _ref2 = _iterator2[_i2++]; - } else { - _i2 = _iterator2.next(); - if (_i2.done) break; - _ref2 = _i2.value; - } - - var declar = _ref2; - - var bindings = t.getBindingIdentifiers(declar); - for (var key in bindings) { - declars.push({ - kind: node.kind, - id: bindings[key] - }); - } - - if (declar.init) { - exprs.push(t.assignmentExpression("=", declar.id, declar.init)); - } - } - - ensureLastUndefined = true; - continue; - } else if (t.isIfStatement(node)) { - var consequent = node.consequent ? convert([node.consequent]) : scope.buildUndefinedNode(); - var alternate = node.alternate ? convert([node.alternate]) : scope.buildUndefinedNode(); - if (!consequent || !alternate) return bailed = true; - - exprs.push(t.conditionalExpression(node.test, consequent, alternate)); - } else if (t.isBlockStatement(node)) { - exprs.push(convert(node.body)); - } else if (t.isEmptyStatement(node)) { - // empty statement so ensure the last item is undefined if we're last - ensureLastUndefined = true; - continue; - } else { - // bailed, we can't turn this statement into an expression - return bailed = true; - } - - ensureLastUndefined = false; - } - - if (ensureLastUndefined || exprs.length === 0) { - exprs.push(scope.buildUndefinedNode()); - } - - // - - if (exprs.length === 1) { - return exprs[0]; - } else { - return t.sequenceExpression(exprs); - } - } -} - -function toKeyAlias(node /*: Object*/) /*: string*/ { - var key /*: Object*/ = arguments.length <= 1 || arguments[1] === undefined ? node.key : arguments[1]; - return (function () { - var alias = undefined; - - if (node.kind === "method") { - return toKeyAlias.increment() + ""; - } else if (t.isIdentifier(key)) { - alias = key.name; - } else if (t.isStringLiteral(key)) { - alias = JSON.stringify(key.value); - } else { - alias = JSON.stringify(_babelTraverse2["default"].removeProperties(t.cloneDeep(key))); - } - - if (node.computed) { - alias = "[" + alias + "]"; - } - - if (node["static"]) { - alias = "static:" + alias; - } - - return alias; - })(); -} - -toKeyAlias.uid = 0; - -toKeyAlias.increment = function () { - if (toKeyAlias.uid >= _Number$MAX_SAFE_INTEGER) { - return toKeyAlias.uid = 0; - } else { - return toKeyAlias.uid++; - } -}; - -function toIdentifier(name /*: string*/) /*: string*/ { - name = name + ""; - - // replace all non-valid identifiers with dashes - name = name.replace(/[^a-zA-Z0-9$_]/g, "-"); - - // remove all dashes and numbers from start of name - name = name.replace(/^[-0-9]+/, ""); - - // camel case - name = name.replace(/[-\s]+(.)?/g, function (match, c) { - return c ? c.toUpperCase() : ""; - }); - - if (!t.isValidIdentifier(name)) { - name = "_" + name; - } - - return name || "_"; -} - -function toBindingIdentifierName(name /*: string*/) /*: string*/ { - name = toIdentifier(name); - if (name === "eval" || name === "arguments") name = "_" + name; - return name; -} - -/** - * [Please add a description.] - * @returns {Object|Boolean} - */ - -function toStatement(node /*: Object*/, ignore /*:: ?: boolean*/) { - if (t.isStatement(node)) { - return node; - } - - var mustHaveId = false; - var newType = undefined; - - if (t.isClass(node)) { - mustHaveId = true; - newType = "ClassDeclaration"; - } else if (t.isFunction(node)) { - mustHaveId = true; - newType = "FunctionDeclaration"; - } else if (t.isAssignmentExpression(node)) { - return t.expressionStatement(node); - } - - if (mustHaveId && !node.id) { - newType = false; - } - - if (!newType) { - if (ignore) { - return false; - } else { - throw new Error("cannot turn " + node.type + " to a statement"); - } - } - - node.type = newType; - - return node; -} - -function toExpression(node /*: Object*/) /*: Object*/ { - if (t.isExpressionStatement(node)) { - node = node.expression; - } - - if (t.isClass(node)) { - node.type = "ClassExpression"; - } else if (t.isFunction(node)) { - node.type = "FunctionExpression"; - } - - if (t.isExpression(node)) { - return node; - } else { - throw new Error("cannot turn " + node.type + " to an expression"); - } -} - -function toBlock(node, parent /*: Object*/) /*: Object*/ { - if (t.isBlockStatement(node)) { - return node; - } - - if (t.isEmptyStatement(node)) { - node = []; - } - - if (!Array.isArray(node)) { - if (!t.isStatement(node)) { - if (t.isFunction(parent)) { - node = t.returnStatement(node); - } else { - node = t.expressionStatement(node); - } - } - - node = [node]; - } - - return t.blockStatement(node); -} - -function valueToNode(value /*: any*/) /*: Object*/ { - // undefined - if (value === undefined) { - return t.identifier("undefined"); - } - - // boolean - if (value === true || value === false) { - return t.booleanLiteral(value); - } - - // null - if (value === null) { - return t.nullLiteral(); - } - - // strings - if (_lodashLangIsString2["default"](value)) { - return t.stringLiteral(value); - } - - // numbers - if (_lodashLangIsNumber2["default"](value)) { - return t.numericLiteral(value); - } - - // regexes - if (_lodashLangIsRegExp2["default"](value)) { - var pattern = value.source; - var flags = value.toString().match(/\/([a-z]+|)$/)[1]; - return t.regExpLiteral(pattern, flags); - } - - // array - if (Array.isArray(value)) { - return t.arrayExpression(value.map(t.valueToNode)); - } - - // object - if (_lodashLangIsPlainObject2["default"](value)) { - var props = []; - for (var key in value) { - var nodeKey = undefined; - if (t.isValidIdentifier(key)) { - nodeKey = t.identifier(key); - } else { - nodeKey = t.literal(key); - } - props.push(t.objectProperty(nodeKey, t.valueToNode(value[key]))); - } - return t.objectExpression(props); - } - - throw new Error("don't know how to turn this value into a node"); -} \ No newline at end of file diff --git a/js/node_modules/babel-types/lib/definitions/core.js b/js/node_modules/babel-types/lib/definitions/core.js deleted file mode 100644 index 73b3010..0000000 --- a/js/node_modules/babel-types/lib/definitions/core.js +++ /dev/null @@ -1,697 +0,0 @@ -/* @flow */ - -"use strict"; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _index = require("../index"); - -var t = _interopRequireWildcard(_index); - -var _constants = require("../constants"); - -var _index2 = require("./index"); - -var _index3 = _interopRequireDefault(_index2); - -_index3["default"]("ArrayExpression", { - fields: { - elements: { - validate: _index2.assertValueType("array") - } - }, - visitor: ["elements"], - aliases: ["Expression"] -}); - -_index3["default"]("AssignmentExpression", { - fields: { - operator: { - validate: _index2.assertValueType("string") - }, - left: { - validate: _index2.assertNodeType("LVal") - }, - right: { - validate: _index2.assertNodeType("Expression") - } - }, - builder: ["operator", "left", "right"], - visitor: ["left", "right"], - aliases: ["Expression"] -}); - -_index3["default"]("BinaryExpression", { - builder: ["operator", "left", "right"], - fields: { - operator: { - validate: _index2.assertOneOf.apply(undefined, _constants.BINARY_OPERATORS) - }, - left: { - validate: _index2.assertNodeType("Expression") - }, - right: { - validate: _index2.assertNodeType("Expression") - } - }, - visitor: ["left", "right"], - aliases: ["Binary", "Expression"] -}); - -_index3["default"]("Directive", { - visitor: ["value"], - fields: { - value: { - validate: _index2.assertNodeType("DirectiveLiteral") - } - } -}); - -_index3["default"]("DirectiveLiteral", { - builder: ["value"], - fields: { - value: { - validate: _index2.assertValueType("string") - } - } -}); - -_index3["default"]("BlockStatement", { - builder: ["body", "directives"], - visitor: ["directives", "body"], - fields: { - directives: { - validate: _index2.chain(_index2.assertValueType("array"), _index2.assertEach(_index2.assertNodeType("Directive"))), - "default": [] - }, - body: { - validate: _index2.chain(_index2.assertValueType("array"), _index2.assertEach(_index2.assertNodeType("Statement"))) - } - }, - aliases: ["Scopable", "BlockParent", "Block", "Statement"] -}); - -_index3["default"]("BreakStatement", { - visitor: ["label"], - fields: { - label: { - validate: _index2.assertNodeType("Identifier"), - optional: true - } - }, - aliases: ["Statement", "Terminatorless", "CompletionStatement"] -}); - -_index3["default"]("CallExpression", { - visitor: ["callee", "arguments"], - fields: { - callee: { - validate: _index2.assertNodeType("Expression") - }, - arguments: { - validate: _index2.assertValueType("array") - } - }, - aliases: ["Expression"] -}); - -_index3["default"]("CatchClause", { - visitor: ["param", "body"], - fields: { - param: { - validate: _index2.assertNodeType("Identifier") - }, - body: { - validate: _index2.assertNodeType("BlockStatement") - } - }, - aliases: ["Scopable"] -}); - -_index3["default"]("ConditionalExpression", { - visitor: ["test", "consequent", "alternate"], - fields: { - test: { - validate: _index2.assertNodeType("Expression") - }, - consequent: { - validate: _index2.assertNodeType("Expression") - }, - alternate: { - validate: _index2.assertNodeType("Expression") - } - }, - aliases: ["Expression", "Conditional"] -}); - -_index3["default"]("ContinueStatement", { - visitor: ["label"], - fields: { - label: { - validate: _index2.assertNodeType("Identifier"), - optional: true - } - }, - aliases: ["Statement", "Terminatorless", "CompletionStatement"] -}); - -_index3["default"]("DebuggerStatement", { - aliases: ["Statement"] -}); - -_index3["default"]("DoWhileStatement", { - visitor: ["test", "body"], - fields: { - test: { - validate: _index2.assertNodeType("Expression") - }, - body: { - validate: _index2.assertNodeType("BlockStatement") - } - }, - aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"] -}); - -_index3["default"]("EmptyStatement", { - aliases: ["Statement"] -}); - -_index3["default"]("ExpressionStatement", { - visitor: ["expression"], - fields: { - expression: { - validate: _index2.assertNodeType("Expression") - } - }, - aliases: ["Statement", "ExpressionWrapper"] -}); - -_index3["default"]("File", { - builder: ["program", "comments", "tokens"], - visitor: ["program"], - fields: { - program: { - validate: _index2.assertNodeType("Program") - } - } -}); - -_index3["default"]("ForInStatement", { - visitor: ["left", "right", "body"], - aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"], - fields: { - left: { - validate: _index2.assertNodeType("VariableDeclaration", "LVal") - }, - right: { - validate: _index2.assertNodeType("Expression") - }, - body: { - validate: _index2.assertNodeType("Statement") - } - } -}); - -_index3["default"]("ForStatement", { - visitor: ["init", "test", "update", "body"], - aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop"], - fields: { - init: { - validate: _index2.assertNodeType("VariableDeclaration", "Expression"), - optional: true - }, - test: { - validate: _index2.assertNodeType("Expression"), - optional: true - }, - update: { - validate: _index2.assertNodeType("Expression"), - optional: true - }, - body: { - validate: _index2.assertNodeType("Statement") - } - } -}); - -_index3["default"]("FunctionDeclaration", { - builder: ["id", "params", "body", "generator", "async"], - visitor: ["id", "params", "body", "returnType", "typeParameters"], - fields: { - id: { - validate: _index2.assertNodeType("Identifier") - }, - params: { - validate: _index2.chain(_index2.assertValueType("array"), _index2.assertEach(_index2.assertNodeType("LVal"))) - }, - body: { - validate: _index2.assertNodeType("BlockStatement") - }, - generator: { - "default": false, - validate: _index2.assertValueType("boolean") - }, - async: { - "default": false, - validate: _index2.assertValueType("boolean") - } - }, - aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Statement", "Pureish", "Declaration"] -}); - -_index3["default"]("FunctionExpression", { - inherits: "FunctionDeclaration", - aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pureish"], - fields: { - id: { - validate: _index2.assertNodeType("Identifier"), - optional: true - }, - params: { - validate: _index2.chain(_index2.assertValueType("array"), _index2.assertEach(_index2.assertNodeType("LVal"))) - }, - body: { - validate: _index2.assertNodeType("BlockStatement") - }, - generator: { - "default": false, - validate: _index2.assertValueType("boolean") - }, - async: { - "default": false, - validate: _index2.assertValueType("boolean") - } - } -}); - -_index3["default"]("Identifier", { - builder: ["name"], - visitor: ["typeAnnotation"], - aliases: ["Expression", "LVal"], - fields: { - name: { - validate: function validate(node, key, val) { - if (!t.isValidIdentifier(val)) { - // todo - } - } - } - } -}); - -_index3["default"]("IfStatement", { - visitor: ["test", "consequent", "alternate"], - aliases: ["Statement", "Conditional"], - fields: { - test: { - validate: _index2.assertNodeType("Expression") - }, - consequent: { - validate: _index2.assertNodeType("Statement") - }, - alternate: { - optional: true, - validate: _index2.assertNodeType("Statement") - } - } -}); - -_index3["default"]("LabeledStatement", { - visitor: ["label", "body"], - aliases: ["Statement"], - fields: { - label: { - validate: _index2.assertNodeType("Identifier") - }, - body: { - validate: _index2.assertNodeType("Statement") - } - } -}); - -_index3["default"]("StringLiteral", { - builder: ["value"], - fields: { - value: { - validate: _index2.assertValueType("string") - } - }, - aliases: ["Expression", "Pureish", "Literal", "Immutable"] -}); - -_index3["default"]("NumericLiteral", { - builder: ["value"], - deprecatedAlias: "NumberLiteral", - fields: { - value: { - validate: _index2.assertValueType("number") - } - }, - aliases: ["Expression", "Pureish", "Literal", "Immutable"] -}); - -_index3["default"]("NullLiteral", { - aliases: ["Expression", "Pureish", "Literal", "Immutable"] -}); - -_index3["default"]("BooleanLiteral", { - builder: ["value"], - fields: { - value: { - validate: _index2.assertValueType("boolean") - } - }, - aliases: ["Expression", "Pureish", "Literal", "Immutable"] -}); - -_index3["default"]("RegExpLiteral", { - builder: ["pattern", "flags"], - deprecatedAlias: "RegexLiteral", - aliases: ["Expression", "Literal"], - fields: { - pattern: { - validate: _index2.assertValueType("string") - }, - flags: { - validate: _index2.assertValueType("string"), - "default": "" - } - } -}); - -_index3["default"]("LogicalExpression", { - builder: ["operator", "left", "right"], - visitor: ["left", "right"], - aliases: ["Binary", "Expression"], - fields: { - operator: { - validate: _index2.assertOneOf.apply(undefined, _constants.LOGICAL_OPERATORS) - }, - left: { - validate: _index2.assertNodeType("Expression") - }, - right: { - validate: _index2.assertNodeType("Expression") - } - } -}); - -_index3["default"]("MemberExpression", { - builder: ["object", "property", "computed"], - visitor: ["object", "property"], - aliases: ["Expression", "LVal"], - fields: { - object: { - validate: _index2.assertNodeType("Expression") - }, - property: { - validate: function validate(node, key, val) { - var expectedType = node.computed ? "Expression" : "Identifier"; - _index2.assertNodeType(expectedType)(node, key, val); - } - }, - computed: { - "default": false - } - } -}); - -_index3["default"]("NewExpression", { - visitor: ["callee", "arguments"], - aliases: ["Expression"], - fields: { - callee: { - validate: _index2.assertNodeType("Expression") - }, - arguments: { - validate: _index2.chain(_index2.assertValueType("array"), _index2.assertEach(_index2.assertNodeType("Expression"))) - } - } -}); - -_index3["default"]("Program", { - visitor: ["directives", "body"], - builder: ["body", "directives"], - fields: { - directives: { - validate: _index2.chain(_index2.assertValueType("array"), _index2.assertEach(_index2.assertNodeType("Directive"))), - "default": [] - }, - body: { - validate: _index2.chain(_index2.assertValueType("array"), _index2.assertEach(_index2.assertNodeType("Statement"))) - } - }, - aliases: ["Scopable", "BlockParent", "Block", "FunctionParent"] -}); - -_index3["default"]("ObjectExpression", { - visitor: ["properties"], - aliases: ["Expression"], - fields: { - properties: { - validate: _index2.chain(_index2.assertValueType("array"), _index2.assertEach(_index2.assertNodeType("ObjectMethod", "ObjectProperty", "SpreadProperty"))) - } - } -}); - -_index3["default"]("ObjectMethod", { - builder: ["kind", "key", "params", "body", "computed"], - fields: { - kind: { - validate: _index2.chain(_index2.assertValueType("string"), _index2.assertOneOf("method", "get", "set")), - "default": "method" - }, - computed: { - validate: _index2.assertValueType("boolean"), - "default": false - }, - key: { - validate: function validate(node, key, val) { - var expectedTypes = node.computed ? ["Expression"] : ["Identifier", "Literal"]; - _index2.assertNodeType.apply(undefined, expectedTypes)(node, key, val); - } - }, - decorators: { - validate: _index2.chain(_index2.assertValueType("array"), _index2.assertEach(_index2.assertNodeType("Decorator"))) - }, - body: { - validate: _index2.assertNodeType("BlockStatement") - }, - generator: { - "default": false, - validate: _index2.assertValueType("boolean") - }, - async: { - "default": false, - validate: _index2.assertValueType("boolean") - } - }, - visitor: ["key", "params", "body", "decorators", "returnType", "typeParameters"], - aliases: ["UserWhitespacable", "Function", "Scopable", "BlockParent", "FunctionParent", "Method"] -}); - -_index3["default"]("ObjectProperty", { - builder: ["key", "value", "computed", "shorthand", "decorators"], - fields: { - computed: { - validate: _index2.assertValueType("boolean"), - "default": false - }, - key: { - validate: function validate(node, key, val) { - var expectedTypes = node.computed ? ["Expression"] : ["Identifier", "Literal"]; - _index2.assertNodeType.apply(undefined, expectedTypes)(node, key, val); - } - }, - value: { - validate: _index2.assertNodeType("Expression") - }, - shorthand: { - validate: _index2.assertValueType("boolean"), - "default": false - }, - decorators: { - validate: _index2.chain(_index2.assertValueType("array"), _index2.assertEach(_index2.assertNodeType("Decorator"))), - optional: true - } - }, - visitor: ["key", "value", "decorators"], - aliases: ["UserWhitespacable", "Property"] -}); - -_index3["default"]("RestElement", { - visitor: ["argument", "typeAnnotation"], - aliases: ["LVal"], - fields: { - argument: { - validate: _index2.assertNodeType("LVal") - } - } -}); - -_index3["default"]("ReturnStatement", { - visitor: ["argument"], - aliases: ["Statement", "Terminatorless", "CompletionStatement"], - fields: { - argument: { - validate: _index2.assertNodeType("Expression"), - optional: true - } - } -}); - -_index3["default"]("SequenceExpression", { - visitor: ["expressions"], - fields: { - expressions: { validate: _index2.assertValueType("array") } - }, - aliases: ["Expression"] -}); - -_index3["default"]("SwitchCase", { - visitor: ["test", "consequent"], - fields: { - test: { - validate: _index2.assertNodeType("Expression"), - optional: true - }, - consequent: { - validate: _index2.chain(_index2.assertValueType("array"), _index2.assertEach(_index2.assertNodeType("Statement"))) - } - } -}); - -_index3["default"]("SwitchStatement", { - visitor: ["discriminant", "cases"], - aliases: ["Statement", "BlockParent", "Scopable"], - fields: { - discriminant: { - validate: _index2.assertNodeType("Expression") - }, - cases: { - validate: _index2.chain(_index2.assertValueType("array"), _index2.assertEach(_index2.assertNodeType("SwitchCase"))) - } - } -}); - -_index3["default"]("ThisExpression", { - aliases: ["Expression"] -}); - -_index3["default"]("ThrowStatement", { - visitor: ["argument"], - aliases: ["Statement", "Terminatorless", "CompletionStatement"], - fields: { - argument: { - validate: _index2.assertNodeType("Expression") - } - } -}); - -// todo: at least handler or finalizer should be set to be valid -_index3["default"]("TryStatement", { - visitor: ["block", "handler", "finalizer"], - aliases: ["Statement"], - fields: { - body: { - validate: _index2.assertNodeType("BlockStatement") - }, - handler: { - optional: true, - handler: _index2.assertNodeType("BlockStatement") - }, - finalizer: { - optional: true, - validate: _index2.assertNodeType("BlockStatement") - } - } -}); - -_index3["default"]("UnaryExpression", { - builder: ["operator", "argument", "prefix"], - fields: { - prefix: { - "default": false - }, - argument: { - validate: _index2.assertNodeType("Expression") - }, - operator: { - validate: _index2.assertOneOf.apply(undefined, _constants.UNARY_OPERATORS) - } - }, - visitor: ["argument"], - aliases: ["UnaryLike", "Expression"] -}); - -_index3["default"]("UpdateExpression", { - builder: ["operator", "argument", "prefix"], - fields: { - prefix: { - "default": false - }, - argument: { - validate: _index2.assertNodeType("Expression") - }, - operator: { - validate: _index2.assertOneOf.apply(undefined, _constants.UPDATE_OPERATORS) - } - }, - visitor: ["argument"], - aliases: ["Expression"] -}); - -_index3["default"]("VariableDeclaration", { - builder: ["kind", "declarations"], - visitor: ["declarations"], - aliases: ["Statement", "Declaration"], - fields: { - kind: { - validate: _index2.chain(_index2.assertValueType("string"), _index2.assertOneOf("var", "let", "const")) - }, - declarations: { - validate: _index2.chain(_index2.assertValueType("array"), _index2.assertEach(_index2.assertNodeType("VariableDeclarator"))) - } - } -}); - -_index3["default"]("VariableDeclarator", { - visitor: ["id", "init"], - fields: { - id: { - validate: _index2.assertNodeType("LVal") - }, - init: { - optional: true, - validate: _index2.assertNodeType("Expression") - } - } -}); - -_index3["default"]("WhileStatement", { - visitor: ["test", "body"], - aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"], - fields: { - test: { - validate: _index2.assertNodeType("Expression") - }, - body: { - validate: _index2.assertNodeType("BlockStatement", "Statement") - } - } -}); - -_index3["default"]("WithStatement", { - visitor: ["object", "body"], - aliases: ["Statement"], - fields: { - object: { - object: _index2.assertNodeType("Expression") - }, - body: { - validate: _index2.assertNodeType("BlockStatement") - } - } -}); \ No newline at end of file diff --git a/js/node_modules/babel-types/lib/definitions/es2015.js b/js/node_modules/babel-types/lib/definitions/es2015.js deleted file mode 100644 index 32a4c20..0000000 --- a/js/node_modules/babel-types/lib/definitions/es2015.js +++ /dev/null @@ -1,342 +0,0 @@ -/* @flow */ - -"use strict"; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _index = require("./index"); - -var _index2 = _interopRequireDefault(_index); - -_index2["default"]("AssignmentPattern", { - visitor: ["left", "right"], - aliases: ["Pattern", "LVal"], - fields: { - left: { - validate: _index.assertNodeType("Identifier") - }, - right: { - validate: _index.assertNodeType("Expression") - } - } -}); - -_index2["default"]("ArrayPattern", { - visitor: ["elements", "typeAnnotation"], - aliases: ["Pattern", "LVal"], - fields: { - elements: { - validate: _index.chain(_index.assertValueType("array"), _index.assertEach(_index.assertNodeType("Expression"))) - } - } -}); - -_index2["default"]("ArrowFunctionExpression", { - builder: ["params", "body", "async"], - visitor: ["params", "body", "returnType"], - aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pureish"], - fields: { - params: { - validate: _index.chain(_index.assertValueType("array"), _index.assertEach(_index.assertNodeType("LVal"))) - }, - body: { - validate: _index.assertNodeType("BlockStatement", "Expression") - }, - async: { - validate: _index.assertValueType("boolean"), - "default": false - } - } -}); - -_index2["default"]("ClassBody", { - visitor: ["body"], - fields: { - body: { - validate: _index.chain(_index.assertValueType("array"), _index.assertEach(_index.assertNodeType("ClassMethod", "ClassProperty"))) - } - } -}); - -_index2["default"]("ClassDeclaration", { - builder: ["id", "superClass", "body", "decorators"], - visitor: ["id", "body", "superClass", "typeParameters", "superTypeParameters", "implements", "decorators"], - aliases: ["Scopable", "Class", "Statement", "Declaration", "Pureish"], - fields: { - id: { - validate: _index.assertNodeType("Identifier") - }, - body: { - validate: _index.assertNodeType("ClassBody") - }, - superClass: { - optional: true, - validate: _index.assertNodeType("Expression") - }, - decorators: { - validate: _index.chain(_index.assertValueType("array"), _index.assertEach(_index.assertNodeType("Decorator"))) - } - } -}); - -_index2["default"]("ClassExpression", { - inherits: "ClassDeclaration", - aliases: ["Scopable", "Class", "Expression", "Pureish"], - fields: { - id: { - optional: true, - validate: _index.assertNodeType("Identifier") - }, - body: { - validate: _index.assertNodeType("ClassBody") - }, - superClass: { - optional: true, - validate: _index.assertNodeType("Expression") - }, - decorators: { - validate: _index.chain(_index.assertValueType("array"), _index.assertEach(_index.assertNodeType("Decorator"))) - } - } -}); - -_index2["default"]("ExportAllDeclaration", { - visitor: ["source"], - aliases: ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"], - fields: { - source: { - validate: _index.assertNodeType("StringLiteral") - } - } -}); - -_index2["default"]("ExportDefaultDeclaration", { - visitor: ["declaration"], - aliases: ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"], - fields: { - declaration: { - validate: _index.assertNodeType("FunctionDeclaration", "ClassDeclaration", "Expression") - } - } -}); - -_index2["default"]("ExportNamedDeclaration", { - visitor: ["declaration", "specifiers", "source"], - aliases: ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"], - fields: { - declaration: { - validate: _index.assertNodeType("Declaration"), - optional: true - }, - specifiers: { - validate: _index.chain(_index.assertValueType("array"), _index.assertEach(_index.assertNodeType("ExportSpecifier"))) - }, - source: { - validate: _index.assertNodeType("StringLiteral"), - optional: true - } - } -}); - -_index2["default"]("ExportSpecifier", { - visitor: ["local", "exported"], - aliases: ["ModuleSpecifier"], - fields: { - local: { - validate: _index.assertNodeType("Identifier") - }, - imported: { - validate: _index.assertNodeType("Identifier") - } - } -}); - -_index2["default"]("ForOfStatement", { - visitor: ["left", "right", "body"], - aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"], - fields: { - left: { - validate: _index.assertNodeType("VariableDeclaration", "LVal") - }, - right: { - validate: _index.assertNodeType("Expression") - }, - body: { - validate: _index.assertNodeType("Statement") - } - } -}); - -_index2["default"]("ImportDeclaration", { - visitor: ["specifiers", "source"], - aliases: ["Statement", "Declaration", "ModuleDeclaration"], - fields: { - specifiers: { - validate: _index.chain(_index.assertValueType("array"), _index.assertEach(_index.assertNodeType("ImportSpecifier", "ImportDefaultSpecifier", "ImportNamespaceSpecifier"))) - }, - source: { - validate: _index.assertNodeType("StringLiteral") - } - } -}); - -_index2["default"]("ImportDefaultSpecifier", { - visitor: ["local"], - aliases: ["ModuleSpecifier"], - fields: { - local: { - validate: _index.assertNodeType("Identifier") - } - } -}); - -_index2["default"]("ImportNamespaceSpecifier", { - visitor: ["local"], - aliases: ["ModuleSpecifier"], - fields: { - local: { - validate: _index.assertNodeType("Identifier") - } - } -}); - -_index2["default"]("ImportSpecifier", { - visitor: ["local", "imported"], - aliases: ["ModuleSpecifier"], - fields: { - local: { - validate: _index.assertNodeType("Identifier") - }, - imported: { - validate: _index.assertNodeType("Identifier") - } - } -}); - -_index2["default"]("MetaProperty", { - visitor: ["meta", "property"], - aliases: ["Expression"], - fields: { - // todo: limit to new.target - meta: { - validate: _index.assertValueType("string") - }, - property: { - validate: _index.assertValueType("string") - } - } -}); - -_index2["default"]("ClassMethod", { - aliases: ["Function", "Scopable", "BlockParent", "FunctionParent", "Method"], - builder: ["kind", "key", "params", "body", "computed", "static"], - visitor: ["key", "params", "body", "decorators", "returnType", "typeParameters"], - fields: { - kind: { - validate: _index.chain(_index.assertValueType("string"), _index.assertOneOf("get", "set", "method", "constructor")), - "default": "method" - }, - computed: { - "default": false, - validate: _index.assertValueType("boolean") - }, - "static": { - "default": false, - validate: _index.assertValueType("boolean") - }, - key: { - validate: function validate(node, key, val) { - var expectedTypes = node.computed ? ["Expression"] : ["Identifier", "Literal"]; - _index.assertNodeType.apply(undefined, expectedTypes)(node, key, val); - } - }, - params: { - validate: _index.chain(_index.assertValueType("array"), _index.assertEach(_index.assertNodeType("LVal"))) - }, - body: { - validate: _index.assertNodeType("BlockStatement") - }, - generator: { - "default": false, - validate: _index.assertValueType("boolean") - }, - async: { - "default": false, - validate: _index.assertValueType("boolean") - } - } -}); - -_index2["default"]("ObjectPattern", { - visitor: ["properties", "typeAnnotation"], - aliases: ["Pattern", "LVal"], - fields: { - properties: { - validate: _index.chain(_index.assertValueType("array"), _index.assertEach(_index.assertNodeType("RestProperty", "Property"))) - } - } -}); - -_index2["default"]("SpreadElement", { - visitor: ["argument"], - aliases: ["UnaryLike"], - fields: { - argument: { - validate: _index.assertNodeType("Expression") - } - } -}); - -_index2["default"]("Super", { - aliases: ["Expression"] -}); - -_index2["default"]("TaggedTemplateExpression", { - visitor: ["tag", "quasi"], - aliases: ["Expression"], - fields: { - tag: { - validate: _index.assertNodeType("Expression") - }, - quasi: { - validate: _index.assertNodeType("TemplateLiteral") - } - } -}); - -_index2["default"]("TemplateElement", { - builder: ["value", "tail"], - fields: { - value: { - // todo: flatten `raw` into main node - }, - tail: { - validate: _index.assertValueType("boolean"), - "default": false - } - } -}); - -_index2["default"]("TemplateLiteral", { - visitor: ["quasis", "expressions"], - aliases: ["Expression", "Literal"], - fields: { - // todo - } -}); - -_index2["default"]("YieldExpression", { - builder: ["argument", "delegate"], - visitor: ["argument"], - aliases: ["Expression", "Terminatorless"], - fields: { - delegate: { - validate: _index.assertValueType("boolean"), - "default": false - }, - argument: { - optional: true, - validate: _index.assertNodeType("Expression") - } - } -}); \ No newline at end of file diff --git a/js/node_modules/babel-types/lib/definitions/experimental.js b/js/node_modules/babel-types/lib/definitions/experimental.js deleted file mode 100644 index e3949ba..0000000 --- a/js/node_modules/babel-types/lib/definitions/experimental.js +++ /dev/null @@ -1,86 +0,0 @@ -/* @flow */ - -"use strict"; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _index = require("./index"); - -var _index2 = _interopRequireDefault(_index); - -_index2["default"]("AwaitExpression", { - builder: ["argument"], - visitor: ["argument"], - aliases: ["Expression", "Terminatorless"], - fields: { - argument: { - validate: _index.assertNodeType("Expression") - } - } -}); - -_index2["default"]("BindExpression", { - visitor: ["object", "callee"], - fields: { - // todo - } -}); - -_index2["default"]("Decorator", { - visitor: ["expression"], - fields: { - expression: { - validate: _index.assertNodeType("Expression") - } - } -}); - -_index2["default"]("DoExpression", { - visitor: ["body"], - aliases: ["Expression"], - fields: { - body: { - validate: _index.assertNodeType("BlockStatement") - } - } -}); - -_index2["default"]("ExportDefaultSpecifier", { - visitor: ["exported"], - aliases: ["ModuleSpecifier"], - fields: { - exported: { - validate: _index.assertNodeType("Identifier") - } - } -}); - -_index2["default"]("ExportNamespaceSpecifier", { - visitor: ["exported"], - aliases: ["ModuleSpecifier"], - fields: { - exported: { - validate: _index.assertNodeType("Identifier") - } - } -}); - -_index2["default"]("RestProperty", { - visitor: ["argument"], - aliases: ["UnaryLike"], - fields: { - argument: { - validate: _index.assertNodeType("LVal") - } - } -}); - -_index2["default"]("SpreadProperty", { - visitor: ["argument"], - aliases: ["UnaryLike"], - fields: { - argument: { - validate: _index.assertNodeType("Expression") - } - } -}); \ No newline at end of file diff --git a/js/node_modules/babel-types/lib/definitions/flow.js b/js/node_modules/babel-types/lib/definitions/flow.js deleted file mode 100644 index 0a3a30e..0000000 --- a/js/node_modules/babel-types/lib/definitions/flow.js +++ /dev/null @@ -1,289 +0,0 @@ -/* @flow */ - -"use strict"; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _index = require("./index"); - -var _index2 = _interopRequireDefault(_index); - -_index2["default"]("AnyTypeAnnotation", { - aliases: ["Flow", "FlowBaseAnnotation"], - fields: { - // todo - } -}); - -_index2["default"]("ArrayTypeAnnotation", { - visitor: ["elementType"], - aliases: ["Flow"], - fields: { - // todo - } -}); - -_index2["default"]("BooleanTypeAnnotation", { - aliases: ["Flow", "FlowBaseAnnotation"], - fields: { - // todo - } -}); - -_index2["default"]("BooleanLiteralTypeAnnotation", { - aliases: ["Flow"], - fields: { - // todo - } -}); - -_index2["default"]("ClassImplements", { - visitor: ["id", "typeParameters"], - aliases: ["Flow"], - fields: { - // todo - } -}); - -_index2["default"]("ClassProperty", { - visitor: ["key", "value", "typeAnnotation", "decorators"], - aliases: ["Flow", "Property"], - fields: { - // todo - } -}); - -_index2["default"]("DeclareClass", { - visitor: ["id", "typeParameters", "extends", "body"], - aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], - fields: { - // todo - } -}); - -_index2["default"]("DeclareFunction", { - visitor: ["id"], - aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], - fields: { - // todo - } -}); - -_index2["default"]("DeclareModule", { - visitor: ["id", "body"], - aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], - fields: { - // todo - } -}); - -_index2["default"]("DeclareVariable", { - visitor: ["id"], - aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], - fields: { - // todo - } -}); - -_index2["default"]("ExistentialTypeParam", { - aliases: ["Flow"] -}); - -_index2["default"]("FunctionTypeAnnotation", { - visitor: ["typeParameters", "params", "rest", "returnType"], - aliases: ["Flow"], - fields: { - // todo - } -}); - -_index2["default"]("FunctionTypeParam", { - visitor: ["name", "typeAnnotation"], - aliases: ["Flow"], - fields: { - // todo - } -}); - -_index2["default"]("GenericTypeAnnotation", { - visitor: ["id", "typeParameters"], - aliases: ["Flow"], - fields: { - // todo - } -}); - -_index2["default"]("InterfaceExtends", { - visitor: ["id", "typeParameters"], - aliases: ["Flow"], - fields: { - // todo - } -}); - -_index2["default"]("InterfaceDeclaration", { - visitor: ["id", "typeParameters", "extends", "body"], - aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], - fields: { - // todo - } -}); - -_index2["default"]("IntersectionTypeAnnotation", { - visitor: ["types"], - aliases: ["Flow"], - fields: { - // todo - } -}); - -_index2["default"]("MixedTypeAnnotation", { - aliases: ["Flow", "FlowBaseAnnotation"] -}); - -_index2["default"]("NullableTypeAnnotation", { - visitor: ["typeAnnotation"], - aliases: ["Flow"], - fields: { - // todo - } -}); - -_index2["default"]("NumericLiteralTypeAnnotation", { - aliases: ["Flow"], - fields: { - // todo - } -}); - -_index2["default"]("NumberTypeAnnotation", { - aliases: ["Flow", "FlowBaseAnnotation"], - fields: { - // todo - } -}); - -_index2["default"]("StringLiteralTypeAnnotation", { - aliases: ["Flow"], - fields: { - // todo - } -}); - -_index2["default"]("StringTypeAnnotation", { - aliases: ["Flow", "FlowBaseAnnotation"], - fields: { - // todo - } -}); - -_index2["default"]("TupleTypeAnnotation", { - visitor: ["types"], - aliases: ["Flow"], - fields: { - // todo - } -}); - -_index2["default"]("TypeofTypeAnnotation", { - visitor: ["argument"], - aliases: ["Flow"], - fields: { - // todo - } -}); - -_index2["default"]("TypeAlias", { - visitor: ["id", "typeParameters", "right"], - aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], - fields: { - // todo - } -}); - -_index2["default"]("TypeAnnotation", { - visitor: ["typeAnnotation"], - aliases: ["Flow"], - fields: { - // todo - } -}); - -_index2["default"]("TypeCastExpression", { - visitor: ["expression", "typeAnnotation"], - aliases: ["Flow", "ExpressionWrapper", "Expression"], - fields: { - // todo - } -}); - -_index2["default"]("TypeParameterDeclaration", { - visitor: ["params"], - aliases: ["Flow"], - fields: { - // todo - } -}); - -_index2["default"]("TypeParameterInstantiation", { - visitor: ["params"], - aliases: ["Flow"], - fields: { - // todo - } -}); - -_index2["default"]("ObjectTypeAnnotation", { - visitor: ["properties", "indexers", "callProperties"], - aliases: ["Flow"], - fields: { - // todo - } -}); - -_index2["default"]("ObjectTypeCallProperty", { - visitor: ["value"], - aliases: ["Flow", "UserWhitespacable"], - fields: { - // todo - } -}); - -_index2["default"]("ObjectTypeIndexer", { - visitor: ["id", "key", "value"], - aliases: ["Flow", "UserWhitespacable"], - fields: { - // todo - } -}); - -_index2["default"]("ObjectTypeProperty", { - visitor: ["key", "value"], - aliases: ["Flow", "UserWhitespacable"], - fields: { - // todo - } -}); - -_index2["default"]("QualifiedTypeIdentifier", { - visitor: ["id", "qualification"], - aliases: ["Flow"], - fields: { - // todo - } -}); - -_index2["default"]("UnionTypeAnnotation", { - visitor: ["types"], - aliases: ["Flow"], - fields: { - // todo - } -}); - -_index2["default"]("VoidTypeAnnotation", { - aliases: ["Flow", "FlowBaseAnnotation"], - fields: { - // todo - } -}); \ No newline at end of file diff --git a/js/node_modules/babel-types/lib/definitions/index.js b/js/node_modules/babel-types/lib/definitions/index.js deleted file mode 100644 index 92e8ce9..0000000 --- a/js/node_modules/babel-types/lib/definitions/index.js +++ /dev/null @@ -1,201 +0,0 @@ -"use strict"; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -exports.__esModule = true; -exports.assertEach = assertEach; -exports.assertOneOf = assertOneOf; -exports.assertNodeType = assertNodeType; -exports.assertValueType = assertValueType; -exports.chain = chain; -exports["default"] = defineType; - -var _index = require("../index"); - -var t = _interopRequireWildcard(_index); - -var VISITOR_KEYS = {}; -exports.VISITOR_KEYS = VISITOR_KEYS; -var ALIAS_KEYS = {}; -exports.ALIAS_KEYS = ALIAS_KEYS; -var NODE_FIELDS = {}; -exports.NODE_FIELDS = NODE_FIELDS; -var BUILDER_KEYS = {}; -exports.BUILDER_KEYS = BUILDER_KEYS; -var DEPRECATED_KEYS = {}; - -exports.DEPRECATED_KEYS = DEPRECATED_KEYS; -function getType(val) { - if (Array.isArray(val)) { - return "array"; - } else if (val === null) { - return "null"; - } else if (val === undefined) { - return "undefined"; - } else { - return typeof val; - } -} - -function assertEach(callback /*: Function*/) /*: Function*/ { - return function (node, key, val) { - if (!Array.isArray(val)) return; - - for (var i = 0; i < val.length; i++) { - callback(node, key + "[" + i + "]", val[i]); - } - }; -} - -function assertOneOf() /*: Function*/ { - for (var _len = arguments.length, vals = Array(_len), _key = 0; _key < _len; _key++) { - vals[_key] = arguments[_key]; - } - - function validate(node, key, val) { - if (vals.indexOf(val) < 0) { - throw new TypeError("Property " + key + " expected value to be one of " + JSON.stringify(vals) + " but got " + JSON.stringify(val)); - } - } - - validate.oneOf = vals; - - return validate; -} - -function assertNodeType() /*: Function*/ { - for (var _len2 = arguments.length, types = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - types[_key2] = arguments[_key2]; - } - - function validate(node, key, val) { - var valid = false; - - for (var _iterator = types, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var type = _ref; - - if (t.is(type, val)) { - valid = true; - break; - } - } - - if (!valid) { - throw new TypeError("Property " + key + " of " + node.type + " expected node to be of a type " + JSON.stringify(types) + " but instead got " + JSON.stringify(val && val.type)); - } - } - - validate.oneOfNodeTypes = types; - - return validate; -} - -function assertValueType(type /*: string*/) /*: Function*/ { - function validate(node, key, val) { - var valid = getType(val) === type; - - if (!valid) { - throw new TypeError("Property " + key + " expected type of " + type + " but got " + getType(val)); - } - } - - validate.type = type; - - return validate; -} - -function chain() /*: Function*/ { - for (var _len3 = arguments.length, fns = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { - fns[_key3] = arguments[_key3]; - } - - return function () { - for (var _iterator2 = fns, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) { - var _ref2; - - if (_isArray2) { - if (_i2 >= _iterator2.length) break; - _ref2 = _iterator2[_i2++]; - } else { - _i2 = _iterator2.next(); - if (_i2.done) break; - _ref2 = _i2.value; - } - - var fn = _ref2; - - fn.apply(undefined, arguments); - } - }; -} - -function defineType(type /*: string*/) { - var opts /*: { - fields?: Object; - visitor?: Array; - aliases?: Array; - builder?: Array; - inherits?: string; - }*/ = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; - - var inherits = opts.inherits && store[opts.inherits] || {}; - - opts.fields = opts.fields || inherits.fields || {}; - opts.visitor = opts.visitor || inherits.visitor || []; - opts.aliases = opts.aliases || inherits.aliases || []; - opts.builder = opts.builder || inherits.builder || opts.visitor || []; - - if (opts.deprecatedAlias) { - DEPRECATED_KEYS[opts.deprecatedAlias] = type; - } - - // ensure all field keys are represented in `fields` - for (var _iterator3 = (opts.visitor.concat(opts.builder) /*: Array*/), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) { - var _ref3; - - if (_isArray3) { - if (_i3 >= _iterator3.length) break; - _ref3 = _iterator3[_i3++]; - } else { - _i3 = _iterator3.next(); - if (_i3.done) break; - _ref3 = _i3.value; - } - - var key = _ref3; - - opts.fields[key] = opts.fields[key] || {}; - } - - for (var key in opts.fields) { - var field = opts.fields[key]; - - if (field["default"] === undefined) { - field["default"] = null; - } else if (!field.validate) { - field.validate = assertValueType(getType(field["default"])); - } - } - - VISITOR_KEYS[type] = opts.visitor; - BUILDER_KEYS[type] = opts.builder; - NODE_FIELDS[type] = opts.fields; - ALIAS_KEYS[type] = opts.aliases; - - store[type] = opts; -} - -var store = {}; \ No newline at end of file diff --git a/js/node_modules/babel-types/lib/definitions/init.js b/js/node_modules/babel-types/lib/definitions/init.js deleted file mode 100644 index a3334fe..0000000 --- a/js/node_modules/babel-types/lib/definitions/init.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; - -require("./index"); - -require("./core"); - -require("./es2015"); - -require("./flow"); - -require("./jsx"); - -require("./misc"); - -require("./experimental"); \ No newline at end of file diff --git a/js/node_modules/babel-types/lib/definitions/jsx.js b/js/node_modules/babel-types/lib/definitions/jsx.js deleted file mode 100644 index 5566bdf..0000000 --- a/js/node_modules/babel-types/lib/definitions/jsx.js +++ /dev/null @@ -1,139 +0,0 @@ -/* @flow */ - -"use strict"; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _index = require("./index"); - -var _index2 = _interopRequireDefault(_index); - -_index2["default"]("JSXAttribute", { - visitor: ["name", "value"], - aliases: ["JSX", "Immutable"], - fields: { - name: { - validate: _index.assertNodeType("JSXIdentifier", "JSXMemberExpression") - }, - value: { - optional: true, - validate: _index.assertNodeType("JSXElement", "StringLiteral", "JSXExpressionContainer") - } - } -}); - -_index2["default"]("JSXClosingElement", { - visitor: ["name"], - aliases: ["JSX", "Immutable"], - fields: { - name: { - validate: _index.assertNodeType("JSXIdentifier", "JSXMemberExpression") - } - } -}); - -_index2["default"]("JSXElement", { - builder: ["openingElement", "closingElement", "children", "selfClosing"], - visitor: ["openingElement", "children", "closingElement"], - aliases: ["JSX", "Immutable", "Expression"], - fields: { - openingElement: { - validate: _index.assertNodeType("JSXOpeningElement") - }, - closingElement: { - optional: true, - validate: _index.assertNodeType("JSXClosingElement") - }, - children: { - // todo - } - } -}); - -_index2["default"]("JSXEmptyExpression", { - aliases: ["JSX", "Expression"] -}); - -_index2["default"]("JSXExpressionContainer", { - visitor: ["expression"], - aliases: ["JSX", "Immutable"], - fields: { - expression: { - validate: _index.assertNodeType("Expression") - } - } -}); - -_index2["default"]("JSXIdentifier", { - builder: ["name"], - aliases: ["JSX", "Expression"], - fields: { - name: { - validate: _index.assertValueType("string") - } - } -}); - -_index2["default"]("JSXMemberExpression", { - visitor: ["object", "property"], - aliases: ["JSX", "Expression"], - fields: { - object: { - validate: _index.assertNodeType("JSXIdentifier") - }, - property: { - validate: _index.assertNodeType("JSXIdentifier") - } - } -}); - -_index2["default"]("JSXNamespacedName", { - visitor: ["namespace", "name"], - aliases: ["JSX"], - fields: { - namespace: { - validate: _index.assertNodeType("JSXIdentifier") - }, - name: { - validate: _index.assertNodeType("JSXIdentifier") - } - } -}); - -_index2["default"]("JSXOpeningElement", { - builder: ["name", "attributes", "selfClosing"], - visitor: ["name", "attributes"], - aliases: ["JSX", "Immutable"], - fields: { - name: { - validate: _index.assertNodeType("JSXIdentifier", "JSXMemberExpression") - }, - selfClosing: { - "default": false, - validate: _index.assertValueType("boolean") - }, - attributes: { - validate: _index.chain(_index.assertValueType("array"), _index.assertEach(_index.assertNodeType("JSXAttribute", "JSXSpreadAttribute"))) - } - } -}); - -_index2["default"]("JSXSpreadAttribute", { - visitor: ["argument"], - aliases: ["JSX"], - fields: { - argument: { - validate: _index.assertNodeType("Expression") - } - } -}); - -_index2["default"]("JSXText", { - aliases: ["JSX"], - builder: ["value"], - fields: { - value: { - validate: _index.assertValueType("string") - } - } -}); \ No newline at end of file diff --git a/js/node_modules/babel-types/lib/definitions/misc.js b/js/node_modules/babel-types/lib/definitions/misc.js deleted file mode 100644 index d025583..0000000 --- a/js/node_modules/babel-types/lib/definitions/misc.js +++ /dev/null @@ -1,23 +0,0 @@ -/* @flow */ - -"use strict"; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _index = require("./index"); - -var _index2 = _interopRequireDefault(_index); - -_index2["default"]("Noop", { - visitor: [] -}); - -_index2["default"]("ParenthesizedExpression", { - visitor: ["expression"], - aliases: ["Expression", "ExpressionWrapper"], - fields: { - expression: { - validate: _index.assertNodeType("Expression") - } - } -}); \ No newline at end of file diff --git a/js/node_modules/babel-types/lib/flow.js b/js/node_modules/babel-types/lib/flow.js deleted file mode 100644 index 5a2fb14..0000000 --- a/js/node_modules/babel-types/lib/flow.js +++ /dev/null @@ -1,129 +0,0 @@ -"use strict"; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -exports.__esModule = true; -exports.createUnionTypeAnnotation = createUnionTypeAnnotation; -exports.removeTypeDuplicates = removeTypeDuplicates; -exports.createTypeAnnotationBasedOnTypeof = createTypeAnnotationBasedOnTypeof; - -var _index = require("./index"); - -var t = _interopRequireWildcard(_index); - -/** - * Takes an array of `types` and flattens them, removing duplicates and - * returns a `UnionTypeAnnotation` node containg them. - */ - -function createUnionTypeAnnotation(types /*: Array*/) { - var flattened = removeTypeDuplicates(types); - - if (flattened.length === 1) { - return flattened[0]; - } else { - return t.unionTypeAnnotation(flattened); - } -} - -/** - * Dedupe type annotations. - */ - -function removeTypeDuplicates(nodes /*: Array*/) { - var generics = {}; - var bases = {}; - - // store union type groups to circular references - var typeGroups = []; - - var types = []; - - for (var i = 0; i < nodes.length; i++) { - var node = nodes[i]; - if (!node) continue; - - // detect duplicates - if (types.indexOf(node) >= 0) { - continue; - } - - // this type matches anything - if (t.isAnyTypeAnnotation(node)) { - return [node]; - } - - // - if (t.isFlowBaseAnnotation(node)) { - bases[node.type] = node; - continue; - } - - // - if (t.isUnionTypeAnnotation(node)) { - if (typeGroups.indexOf(node.types) < 0) { - nodes = nodes.concat(node.types); - typeGroups.push(node.types); - } - continue; - } - - // find a matching generic type and merge and deduplicate the type parameters - if (t.isGenericTypeAnnotation(node)) { - var _name = node.id.name; - - if (generics[_name]) { - var existing = generics[_name]; - if (existing.typeParameters) { - if (node.typeParameters) { - existing.typeParameters.params = removeTypeDuplicates(existing.typeParameters.params.concat(node.typeParameters.params)); - } - } else { - existing = node.typeParameters; - } - } else { - generics[_name] = node; - } - - continue; - } - - types.push(node); - } - - // add back in bases - for (var type in bases) { - types.push(bases[type]); - } - - // add back in generics - for (var _name2 in generics) { - types.push(generics[_name2]); - } - - return types; -} - -/** - * Create a type anotation based on typeof expression. - */ - -function createTypeAnnotationBasedOnTypeof(type /*: string*/) { - if (type === "string") { - return t.stringTypeAnnotation(); - } else if (type === "number") { - return t.numberTypeAnnotation(); - } else if (type === "undefined") { - return t.voidTypeAnnotation(); - } else if (type === "boolean") { - return t.booleanTypeAnnotation(); - } else if (type === "function") { - return t.genericTypeAnnotation(t.identifier("Function")); - } else if (type === "object") { - return t.genericTypeAnnotation(t.identifier("Object")); - } else if (type === "symbol") { - return t.genericTypeAnnotation(t.identifier("Symbol")); - } else { - throw new Error("Invalid typeof value"); - } -} \ No newline at end of file diff --git a/js/node_modules/babel-types/lib/index.js b/js/node_modules/babel-types/lib/index.js deleted file mode 100644 index 8c8a6c8..0000000 --- a/js/node_modules/babel-types/lib/index.js +++ /dev/null @@ -1,570 +0,0 @@ -"use strict"; - -var _Object$keys = require("babel-runtime/core-js/object/keys")["default"]; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -var _defaults = require("babel-runtime/helpers/defaults")["default"]; - -var _interopExportWildcard = require("babel-runtime/helpers/interop-export-wildcard")["default"]; - -exports.__esModule = true; -exports.is = is; -exports.isType = isType; -exports.validate = validate; -exports.shallowEqual = shallowEqual; -exports.appendToMemberExpression = appendToMemberExpression; -exports.prependToMemberExpression = prependToMemberExpression; -exports.ensureBlock = ensureBlock; -exports.clone = clone; -exports.cloneDeep = cloneDeep; -exports.buildMatchMemberExpression = buildMatchMemberExpression; -exports.removeComments = removeComments; -exports.inheritsComments = inheritsComments; -exports.inheritTrailingComments = inheritTrailingComments; -exports.inheritLeadingComments = inheritLeadingComments; -exports.inheritInnerComments = inheritInnerComments; -exports.inherits = inherits; -exports.assertNode = assertNode; -exports.isNode = isNode; - -var _toFastProperties = require("to-fast-properties"); - -var _toFastProperties2 = _interopRequireDefault(_toFastProperties); - -var _lodashArrayCompact = require("lodash/array/compact"); - -var _lodashArrayCompact2 = _interopRequireDefault(_lodashArrayCompact); - -var _lodashLangClone = require("lodash/lang/clone"); - -var _lodashLangClone2 = _interopRequireDefault(_lodashLangClone); - -var _lodashCollectionEach = require("lodash/collection/each"); - -var _lodashCollectionEach2 = _interopRequireDefault(_lodashCollectionEach); - -var _lodashArrayUniq = require("lodash/array/uniq"); - -var _lodashArrayUniq2 = _interopRequireDefault(_lodashArrayUniq); - -require("./definitions/init"); - -var _definitions = require("./definitions"); - -var _react2 = require("./react"); - -var _react = _interopRequireWildcard(_react2); - -var t = exports; - -/** - * Registers `is[Type]` and `assert[Type]` generated functions for a given `type`. - * Pass `skipAliasCheck` to force it to directly compare `node.type` with `type`. - */ - -function registerType(type /*: string*/) { - var is = t["is" + type] = function (node, opts) { - return t.is(type, node, opts); - }; - - t["assert" + type] = function (node, opts) { - opts = opts || {}; - if (!is(node, opts)) { - throw new Error("Expected type " + JSON.stringify(type) + " with option " + JSON.stringify(opts)); - } - }; -} - -// - -var _constants = require("./constants"); - -_defaults(exports, _interopExportWildcard(_constants, _defaults)); - -exports.VISITOR_KEYS = _definitions.VISITOR_KEYS; -exports.ALIAS_KEYS = _definitions.ALIAS_KEYS; -exports.NODE_FIELDS = _definitions.NODE_FIELDS; -exports.BUILDER_KEYS = _definitions.BUILDER_KEYS; -exports.DEPRECATED_KEYS = _definitions.DEPRECATED_KEYS; -exports.react = _react; - -/** - * Registers `is[Type]` and `assert[Type]` for all types. - */ - -for (var type in t.VISITOR_KEYS) { - registerType(type); -} - -/** - * Flip `ALIAS_KEYS` for faster access in the reverse direction. - */ - -t.FLIPPED_ALIAS_KEYS = {}; - -_lodashCollectionEach2["default"](t.ALIAS_KEYS, function (aliases, type) { - _lodashCollectionEach2["default"](aliases, function (alias) { - var types = t.FLIPPED_ALIAS_KEYS[alias] = t.FLIPPED_ALIAS_KEYS[alias] || []; - types.push(type); - }); -}); - -/** - * Registers `is[Alias]` and `assert[Alias]` functions for all aliases. - */ - -_lodashCollectionEach2["default"](t.FLIPPED_ALIAS_KEYS, function (types, type) { - t[type.toUpperCase() + "_TYPES"] = types; - registerType(type); -}); - -var TYPES = _Object$keys(t.VISITOR_KEYS).concat(_Object$keys(t.FLIPPED_ALIAS_KEYS)).concat(_Object$keys(t.DEPRECATED_KEYS)); - -exports.TYPES = TYPES; -/** - * Returns whether `node` is of given `type`. - * - * For better performance, use this instead of `is[Type]` when `type` is unknown. - * Optionally, pass `skipAliasCheck` to directly compare `node.type` with `type`. - */ - -function is(type /*: string*/, node /*: Object*/, opts /*:: ?: Object*/) /*: boolean*/ { - if (!node) return false; - - var matches = isType(node.type, type); - if (!matches) return false; - - if (typeof opts === "undefined") { - return true; - } else { - return t.shallowEqual(node, opts); - } -} - -/** - * Test if a `nodeType` is a `targetType` or if `targetType` is an alias of `nodeType`. - */ - -function isType(nodeType /*: string*/, targetType /*: string*/) /*: boolean*/ { - if (nodeType === targetType) return true; - - var aliases /*: ?Array*/ = t.FLIPPED_ALIAS_KEYS[targetType]; - if (aliases) { - if (aliases[0] === nodeType) return true; - - for (var _iterator = aliases, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var alias = _ref; - - if (nodeType === alias) return true; - } - } - - return false; -} - -/** - * Description - */ - -_lodashCollectionEach2["default"](t.BUILDER_KEYS, function (keys, type) { - function builder() { - if (arguments.length > keys.length) { - throw new Error("t." + type + ": Too many arguments passed. Received " + arguments.length + " but can receive no more than " + keys.length); - } - - var node = {}; - node.type = type; - - var i = 0; - - for (var _iterator2 = (keys /*: Array*/), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) { - var _ref2; - - if (_isArray2) { - if (_i2 >= _iterator2.length) break; - _ref2 = _iterator2[_i2++]; - } else { - _i2 = _iterator2.next(); - if (_i2.done) break; - _ref2 = _i2.value; - } - - var key = _ref2; - - var field = t.NODE_FIELDS[type][key]; - - var arg = arguments[i++]; - if (arg === undefined) arg = _lodashLangClone2["default"](field["default"]); - - node[key] = arg; - } - - for (var key in node) { - validate(node, key, node[key]); - } - - return node; - } - - t[type] = builder; - t[type[0].toLowerCase() + type.slice(1)] = builder; -}); - -/** - * Description - */ - -var _loop = function (type) { - var proxy = function proxy(fn) { - return function () { - console.trace("The node type " + type + " has been renamed to " + newType); - return fn.apply(this, arguments); - }; - }; - - var newType = t.DEPRECATED_KEYS[type]; - - t[type] = t[type[0].toLowerCase() + type.slice(1)] = proxy(t[newType]); - t["is" + type] = proxy(t["is" + newType]); - t["assert" + type] = proxy(t["assert" + newType]); -}; - -for (var type in t.DEPRECATED_KEYS) { - _loop(type); -} - -/** - * Description - */ - -function validate(node /*:: ?: Object*/, key /*: string*/, val /*: any*/) { - if (!node) return; - - var fields = t.NODE_FIELDS[node.type]; - if (!fields) return; - - var field = fields[key]; - if (!field || !field.validate) return; - if (field.optional && val == null) return; - - field.validate(node, key, val); -} - -/** - * Test if an object is shallowly equal. - */ - -function shallowEqual(actual /*: Object*/, expected /*: Object*/) /*: boolean*/ { - var keys = _Object$keys(expected); - - for (var _iterator3 = (keys /*: Array*/), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) { - var _ref3; - - if (_isArray3) { - if (_i3 >= _iterator3.length) break; - _ref3 = _iterator3[_i3++]; - } else { - _i3 = _iterator3.next(); - if (_i3.done) break; - _ref3 = _i3.value; - } - - var key = _ref3; - - if (actual[key] !== expected[key]) { - return false; - } - } - - return true; -} - -/** - * Append a node to a member expression. - */ - -function appendToMemberExpression(member /*: Object*/, append /*: Object*/, computed /*:: ?: boolean*/) /*: Object*/ { - member.object = t.memberExpression(member.object, member.property, member.computed); - member.property = append; - member.computed = !!computed; - return member; -} - -/** - * Prepend a node to a member expression. - */ - -function prependToMemberExpression(member /*: Object*/, prepend /*: Object*/) /*: Object*/ { - member.object = t.memberExpression(prepend, member.object); - return member; -} - -/** - * Ensure the `key` (defaults to "body") of a `node` is a block. - * Casting it to a block if it is not. - */ - -function ensureBlock(node /*: Object*/) /*: Object*/ { - var key /*: string*/ = arguments.length <= 1 || arguments[1] === undefined ? "body" : arguments[1]; - - return node[key] = t.toBlock(node[key], node); -} - -/** - * Create a shallow clone of a `node` excluding `_private` properties. - */ - -function clone(node /*: Object*/) /*: Object*/ { - var newNode = {}; - for (var key in node) { - if (key[0] === "_") continue; - newNode[key] = node[key]; - } - return newNode; -} - -/** - * Create a deep clone of a `node` and all of it's child nodes - * exluding `_private` properties. - */ - -function cloneDeep(node /*: Object*/) /*: Object*/ { - var newNode = {}; - - for (var key in node) { - if (key[0] === "_") continue; - - var val = node[key]; - - if (val) { - if (val.type) { - val = t.cloneDeep(val); - } else if (Array.isArray(val)) { - val = val.map(t.cloneDeep); - } - } - - newNode[key] = val; - } - - return newNode; -} - -/** - * Build a function that when called will return whether or not the - * input `node` `MemberExpression` matches the input `match`. - * - * For example, given the match `React.createClass` it would match the - * parsed nodes of `React.createClass` and `React["createClass"]`. - */ - -function buildMatchMemberExpression(match /*:string*/, allowPartial /*:: ?: boolean*/) /*: Function*/ { - var parts = match.split("."); - - return function (member) { - // not a member expression - if (!t.isMemberExpression(member)) return false; - - var search = [member]; - var i = 0; - - while (search.length) { - var node = search.shift(); - - if (allowPartial && i === parts.length) { - return true; - } - - if (t.isIdentifier(node)) { - // this part doesn't match - if (parts[i] !== node.name) return false; - } else if (t.isStringLiteral(node)) { - // this part doesn't match - if (parts[i] !== node.value) return false; - } else if (t.isMemberExpression(node)) { - if (node.computed && !t.isStringLiteral(node.property)) { - // we can't deal with this - return false; - } else { - search.push(node.object); - search.push(node.property); - continue; - } - } else { - // we can't deal with this - return false; - } - - // too many parts - if (++i > parts.length) { - return false; - } - } - - return true; - }; -} - -/** - * Remove comment properties from a node. - */ - -function removeComments(node /*: Object*/) /*: Object*/ { - for (var _iterator4 = t.COMMENT_KEYS, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _getIterator(_iterator4);;) { - var _ref4; - - if (_isArray4) { - if (_i4 >= _iterator4.length) break; - _ref4 = _iterator4[_i4++]; - } else { - _i4 = _iterator4.next(); - if (_i4.done) break; - _ref4 = _i4.value; - } - - var key = _ref4; - - delete node[key]; - } - return node; -} - -/** - * Inherit all unique comments from `parent` node to `child` node. - */ - -function inheritsComments(child /*: Object*/, parent /*: Object*/) /*: Object*/ { - inheritTrailingComments(child, parent); - inheritLeadingComments(child, parent); - inheritInnerComments(child, parent); - return child; -} - -function inheritTrailingComments(child /*: Object*/, parent /*: Object*/) { - _inheritComments("trailingComments", child, parent); -} - -function inheritLeadingComments(child /*: Object*/, parent /*: Object*/) { - _inheritComments("leadingComments", child, parent); -} - -function inheritInnerComments(child /*: Object*/, parent /*: Object*/) { - _inheritComments("innerComments", child, parent); -} - -function _inheritComments(key, child, parent) { - if (child && parent) { - child[key] = _lodashArrayUniq2["default"](_lodashArrayCompact2["default"]([].concat(child[key], parent[key]))); - } -} - -/** - * Inherit all contextual properties from `parent` node to `child` node. - */ - -function inherits(child /*: Object*/, parent /*: Object*/) /*: Object*/ { - if (!child || !parent) return child; - - // optionally inherit specific properties if not null - for (var _iterator5 = (t.INHERIT_KEYS.optional /*: Array*/), _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _getIterator(_iterator5);;) { - var _ref5; - - if (_isArray5) { - if (_i5 >= _iterator5.length) break; - _ref5 = _iterator5[_i5++]; - } else { - _i5 = _iterator5.next(); - if (_i5.done) break; - _ref5 = _i5.value; - } - - var key = _ref5; - - if (child[key] == null) { - child[key] = parent[key]; - } - } - - // force inherit "private" properties - for (var key in parent) { - if (key[0] === "_") child[key] = parent[key]; - } - - // force inherit select properties - for (var _iterator6 = (t.INHERIT_KEYS.force /*: Array*/), _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _getIterator(_iterator6);;) { - var _ref6; - - if (_isArray6) { - if (_i6 >= _iterator6.length) break; - _ref6 = _iterator6[_i6++]; - } else { - _i6 = _iterator6.next(); - if (_i6.done) break; - _ref6 = _i6.value; - } - - var key = _ref6; - - child[key] = parent[key]; - } - - t.inheritsComments(child, parent); - - return child; -} - -/** - * TODO - */ - -function assertNode(node /*:: ?*/) { - if (!isNode(node)) { - throw new TypeError("Not a valid node " + (node && node.type)); - } -} - -/** - * TODO - */ - -function isNode(node /*:: ?*/) /*: boolean*/ { - return !!(node && _definitions.VISITOR_KEYS[node.type]); -} - -// Optimize property access. -_toFastProperties2["default"](t); -_toFastProperties2["default"](t.VISITOR_KEYS); - -// - -var _retrievers = require("./retrievers"); - -_defaults(exports, _interopExportWildcard(_retrievers, _defaults)); - -var _validators = require("./validators"); - -_defaults(exports, _interopExportWildcard(_validators, _defaults)); - -var _converters = require("./converters"); - -_defaults(exports, _interopExportWildcard(_converters, _defaults)); - -var _flow = require("./flow"); - -_defaults(exports, _interopExportWildcard(_flow, _defaults)); \ No newline at end of file diff --git a/js/node_modules/babel-types/lib/react.js b/js/node_modules/babel-types/lib/react.js deleted file mode 100644 index 3f10cd5..0000000 --- a/js/node_modules/babel-types/lib/react.js +++ /dev/null @@ -1,86 +0,0 @@ -/* @flow */ - -"use strict"; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -exports.__esModule = true; -exports.isCompatTag = isCompatTag; -exports.buildChildren = buildChildren; - -var _index = require("./index"); - -var t = _interopRequireWildcard(_index); - -var isReactComponent = t.buildMatchMemberExpression("React.Component"); - -exports.isReactComponent = isReactComponent; - -function isCompatTag(tagName /*:: ?: string*/) /*: boolean*/ { - return !!tagName && /^[a-z]|\-/.test(tagName); -} - -function cleanJSXElementLiteralChild(child /*: { value: string }*/, args /*: Array*/) { - var lines = child.value.split(/\r\n|\n|\r/); - - var lastNonEmptyLine = 0; - - for (var i = 0; i < lines.length; i++) { - if (lines[i].match(/[^ \t]/)) { - lastNonEmptyLine = i; - } - } - - var str = ""; - - for (var i = 0; i < lines.length; i++) { - var line = lines[i]; - - var isFirstLine = i === 0; - var isLastLine = i === lines.length - 1; - var isLastNonEmptyLine = i === lastNonEmptyLine; - - // replace rendered whitespace tabs with spaces - var trimmedLine = line.replace(/\t/g, " "); - - // trim whitespace touching a newline - if (!isFirstLine) { - trimmedLine = trimmedLine.replace(/^[ ]+/, ""); - } - - // trim whitespace touching an endline - if (!isLastLine) { - trimmedLine = trimmedLine.replace(/[ ]+$/, ""); - } - - if (trimmedLine) { - if (!isLastNonEmptyLine) { - trimmedLine += " "; - } - - str += trimmedLine; - } - } - - if (str) args.push(t.stringLiteral(str)); -} - -function buildChildren(node /*: Object*/) /*: Array*/ { - var elems = []; - - for (var i = 0; i < node.children.length; i++) { - var child = node.children[i]; - - if (t.isJSXText(child)) { - cleanJSXElementLiteralChild(child, elems); - continue; - } - - if (t.isJSXExpressionContainer(child)) child = child.expression; - if (t.isJSXEmptyExpression(child)) continue; - - elems.push(child); - } - - return elems; -} \ No newline at end of file diff --git a/js/node_modules/babel-types/lib/retrievers.js b/js/node_modules/babel-types/lib/retrievers.js deleted file mode 100644 index afaa4c9..0000000 --- a/js/node_modules/babel-types/lib/retrievers.js +++ /dev/null @@ -1,120 +0,0 @@ -/* @flow */ - -"use strict"; - -var _Object$create = require("babel-runtime/core-js/object/create")["default"]; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -exports.__esModule = true; -exports.getBindingIdentifiers = getBindingIdentifiers; -exports.getOuterBindingIdentifiers = getOuterBindingIdentifiers; - -var _index = require("./index"); - -var t = _interopRequireWildcard(_index); - -/** - * Return a list of binding identifiers associated with the input `node`. - */ - -function getBindingIdentifiers(node /*: Object*/, duplicates /*:: ?: boolean*/, outerOnly /*:: ?: boolean*/) /*: Object*/ { - var search = [].concat(node); - var ids = _Object$create(null); - - while (search.length) { - var id = search.shift(); - if (!id) continue; - - var keys = t.getBindingIdentifiers.keys[id.type]; - - if (t.isIdentifier(id)) { - if (duplicates) { - var _ids = ids[id.name] = ids[id.name] || []; - _ids.push(id); - } else { - ids[id.name] = id; - } - continue; - } - - if (t.isExportDeclaration(id)) { - if (t.isDeclaration(node.declaration)) { - search.push(node.declaration); - } - continue; - } - - if (outerOnly) { - if (t.isFunctionDeclaration(id)) { - search.push(id.id); - continue; - } - - if (t.isFunctionExpression(id)) { - continue; - } - } - - if (keys) { - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - if (id[key]) { - search = search.concat(id[key]); - } - } - } - } - - return ids; -} - -/** - * Mapping of types to their identifier keys. - */ - -getBindingIdentifiers.keys = { - DeclareClass: ["id"], - DeclareFunction: ["id"], - DeclareModule: ["id"], - DeclareVariable: ["id"], - InterfaceDeclaration: ["id"], - TypeAlias: ["id"], - - CatchClause: ["param"], - LabeledStatement: ["label"], - UnaryExpression: ["argument"], - AssignmentExpression: ["left"], - - ImportSpecifier: ["local"], - ImportNamespaceSpecifier: ["local"], - ImportDefaultSpecifier: ["local"], - ImportDeclaration: ["specifiers"], - - ExportSpecifier: ["exported"], - ExportNamespaceSpecifier: ["exported"], - ExportDefaultSpecifier: ["exported"], - - FunctionDeclaration: ["id", "params"], - FunctionExpression: ["id", "params"], - - ClassDeclaration: ["id"], - ClassExpression: ["id"], - - RestElement: ["argument"], - UpdateExpression: ["argument"], - - SpreadProperty: ["argument"], - ObjectProperty: ["value"], - - AssignmentPattern: ["left"], - ArrayPattern: ["elements"], - ObjectPattern: ["properties"], - - VariableDeclaration: ["declarations"], - VariableDeclarator: ["id"] -}; - -function getOuterBindingIdentifiers(node /*: Object*/, duplicates /*:: ?: boolean*/) /*: Object*/ { - return getBindingIdentifiers(node, duplicates, true); -} \ No newline at end of file diff --git a/js/node_modules/babel-types/lib/validators.js b/js/node_modules/babel-types/lib/validators.js deleted file mode 100644 index f35e9e8..0000000 --- a/js/node_modules/babel-types/lib/validators.js +++ /dev/null @@ -1,267 +0,0 @@ -"use strict"; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -exports.__esModule = true; -exports.isBinding = isBinding; -exports.isReferenced = isReferenced; -exports.isValidIdentifier = isValidIdentifier; -exports.isLet = isLet; -exports.isBlockScoped = isBlockScoped; -exports.isVar = isVar; -exports.isSpecifierDefault = isSpecifierDefault; -exports.isScope = isScope; -exports.isImmutable = isImmutable; - -var _retrievers = require("./retrievers"); - -var _esutils = require("esutils"); - -var _esutils2 = _interopRequireDefault(_esutils); - -var _index = require("./index"); - -var t = _interopRequireWildcard(_index); - -var _constants = require("./constants"); - -/** - * Check if the input `node` is a binding identifier. - */ - -function isBinding(node /*: Object*/, parent /*: Object*/) /*: boolean*/ { - var keys = _retrievers.getBindingIdentifiers.keys[parent.type]; - if (keys) { - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - var val = parent[key]; - if (Array.isArray(val)) { - if (val.indexOf(node) >= 0) return true; - } else { - if (val === node) return true; - } - } - } - - return false; -} - -/** - * Check if the input `node` is a reference to a bound variable. - */ - -function isReferenced(node /*: Object*/, parent /*: Object*/) /*: boolean*/ { - switch (parent.type) { - // yes: PARENT[NODE] - // yes: NODE.child - // no: parent.NODE - case "MemberExpression": - case "JSXMemberExpression": - case "BindExpression": - if (parent.property === node && parent.computed) { - return true; - } else if (parent.object === node) { - return true; - } else { - return false; - } - - // no: new.NODE - // no: NODE.target - case "MetaProperty": - return false; - - // yes: { [NODE]: "" } - // yes: { NODE } - // no: { NODE: "" } - case "ObjectProperty": - if (parent.key === node) { - return parent.computed; - } - - // no: let NODE = init; - // yes: let id = NODE; - case "VariableDeclarator": - return parent.id !== node; - - // no: function NODE() {} - // no: function foo(NODE) {} - case "ArrowFunctionExpression": - case "FunctionDeclaration": - case "FunctionExpression": - for (var _iterator = (parent.params /*: Array*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var param = _ref; - - if (param === node) return false; - } - - return parent.id !== node; - - // no: export { foo as NODE }; - // yes: export { NODE as foo }; - // no: export { NODE as foo } from "foo"; - case "ExportSpecifier": - if (parent.source) { - return false; - } else { - return parent.local === node; - } - - // no: export NODE from "foo"; - // no: export * as NODE from "foo"; - case "ExportNamespaceSpecifier": - case "ExportDefaultSpecifier": - return false; - - // no:
- case "JSXAttribute": - return parent.name !== node; - - // no: class { NODE = value; } - // yes: class { key = NODE; } - case "ClassProperty": - return parent.value === node; - - // no: import NODE from "foo"; - // no: import * as NODE from "foo"; - // no: import { NODE as foo } from "foo"; - // no: import { foo as NODE } from "foo"; - // no: import NODE from "bar"; - case "ImportDefaultSpecifier": - case "ImportNamespaceSpecifier": - case "ImportSpecifier": - return false; - - // no: class NODE {} - case "ClassDeclaration": - case "ClassExpression": - return parent.id !== node; - - // yes: class { [NODE](){} } - case "ClassMethod": - case "ObjectMethod": - return parent.key === node && parent.computed; - - // no: NODE: for (;;) {} - case "LabeledStatement": - return false; - - // no: try {} catch (NODE) {} - case "CatchClause": - return parent.param !== node; - - // no: function foo(...NODE) {} - case "RestElement": - return false; - - // yes: left = NODE; - // no: NODE = right; - case "AssignmentExpression": - return parent.right === node; - - // no: [NODE = foo] = []; - // yes: [foo = NODE] = []; - case "AssignmentPattern": - return parent.right === node; - - // no: [NODE] = []; - // no: ({ NODE }) = []; - case "ObjectPattern": - case "ArrayPattern": - return false; - } - - return true; -} - -/** - * Check if the input `name` is a valid identifier name - * and isn't a reserved word. - */ - -function isValidIdentifier(name /*: string*/) /*: boolean*/ { - if (typeof name !== "string" || _esutils2["default"].keyword.isReservedWordES6(name, true)) { - return false; - } else { - return _esutils2["default"].keyword.isIdentifierNameES6(name); - } -} - -/** - * Check if the input `node` is a `let` variable declaration. - */ - -function isLet(node /*: Object*/) /*: boolean*/ { - return t.isVariableDeclaration(node) && (node.kind !== "var" || node[_constants.BLOCK_SCOPED_SYMBOL]); -} - -/** - * Check if the input `node` is block scoped. - */ - -function isBlockScoped(node /*: Object*/) /*: boolean*/ { - return t.isFunctionDeclaration(node) || t.isClassDeclaration(node) || t.isLet(node); -} - -/** - * Check if the input `node` is a variable declaration. - */ - -function isVar(node /*: Object*/) /*: boolean*/ { - return t.isVariableDeclaration(node, { kind: "var" }) && !node[_constants.BLOCK_SCOPED_SYMBOL]; -} - -/** - * Check if the input `specifier` is a `default` import or export. - */ - -function isSpecifierDefault(specifier /*: Object*/) /*: boolean*/ { - return t.isImportDefaultSpecifier(specifier) || t.isIdentifier(specifier.imported || specifier.exported, { name: "default" }); -} - -/** - * Check if the input `node` is a scope. - */ - -function isScope(node /*: Object*/, parent /*: Object*/) /*: boolean*/ { - if (t.isBlockStatement(node) && t.isFunction(parent, { body: node })) { - return false; - } - - return t.isScopable(node); -} - -/** - * Check if the input `node` is definitely immutable. - */ - -function isImmutable(node /*: Object*/) /*: boolean*/ { - if (t.isType(node.type, "Immutable")) return true; - - if (t.isIdentifier(node)) { - if (node.name === "undefined") { - // immutable! - return true; - } else { - // no idea... - return false; - } - } - - return false; -} \ No newline at end of file diff --git a/js/node_modules/babel-types/package.json b/js/node_modules/babel-types/package.json deleted file mode 100644 index fa8b567..0000000 --- a/js/node_modules/babel-types/package.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "_args": [ - [ - "babel-types@^6.2.0", - "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/babel-helper-builder-react-jsx" - ] - ], - "_from": "babel-types@>=6.2.0 <7.0.0", - "_id": "babel-types@6.2.0", - "_inCache": true, - "_location": "/babel-types", - "_nodeVersion": "4.1.0", - "_npmUser": { - "email": "sebmck@gmail.com", - "name": "sebmck" - }, - "_npmVersion": "3.3.10", - "_phantomChildren": {}, - "_requested": { - "name": "babel-types", - "raw": "babel-types@^6.2.0", - "rawSpec": "^6.2.0", - "scope": null, - "spec": ">=6.2.0 <7.0.0", - "type": "range" - }, - "_requiredBy": [ - "/babel-helper-builder-react-jsx", - "/babel-traverse" - ], - "_resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.2.0.tgz", - "_shasum": "a3210feb0e87f3b93bcb2ef7b946f7185ff8f32c", - "_shrinkwrap": null, - "_spec": "babel-types@^6.2.0", - "_where": "/Users/ljiang/projects/my_drupal_dev/islandora_solution_pack_oralhistories/js/node_modules/babel-helper-builder-react-jsx", - "author": { - "email": "sebmck@gmail.com", - "name": "Sebastian McKenzie" - }, - "dependencies": { - "babel-runtime": "^5.0.0", - "babel-traverse": "^6.2.0", - "esutils": "^2.0.2", - "lodash": "^3.10.1", - "to-fast-properties": "^1.0.1" - }, - "description": "", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "a3210feb0e87f3b93bcb2ef7b946f7185ff8f32c", - "tarball": "http://registry.npmjs.org/babel-types/-/babel-types-6.2.0.tgz" - }, - "homepage": "https://babeljs.io/", - "installable": true, - "license": "MIT", - "main": "lib/index.js", - "maintainers": [ - { - "name": "amasad", - "email": "amjad.masad@gmail.com" - }, - { - "name": "sebmck", - "email": "sebmck@gmail.com" - }, - { - "name": "thejameskyle", - "email": "me@thejameskyle.com" - } - ], - "name": "babel-types", - "optionalDependencies": {}, - "repository": { - "type": "git", - "url": "https://github.com/babel/babel/tree/master/packages/babel-types" - }, - "scripts": {}, - "version": "6.2.0" -} diff --git a/js/node_modules/babylon/.npmignore b/js/node_modules/babylon/.npmignore deleted file mode 100644 index 2f9f95a..0000000 --- a/js/node_modules/babylon/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -src -test -*.log -scripts diff --git a/js/node_modules/babylon/AUTHORS b/js/node_modules/babylon/AUTHORS deleted file mode 100644 index 2f39def..0000000 --- a/js/node_modules/babylon/AUTHORS +++ /dev/null @@ -1,41 +0,0 @@ -List of Acorn contributors. Updated before every release. - -Adrian Rakovsky -Alistair Braidwood -Andres Suarez -Aparajita Fishman -Arian Stolwijk -Artem Govorov -Brandon Mills -Charles Hughes -Conrad Irwin -David Bonnet -Forbes Lindesay -Gilad Peleg -impinball -Ingvar Stepanyan -Jesse McCarthy -Jiaxing Wang -Joel Kemp -Johannes Herr -Jürg Lehni -keeyipchan -Kevin Kwok -krator -Marijn Haverbeke -Martin Carlberg -Mathias Bynens -Mathieu 'p01' Henri -Max Schaefer -Max Zerzouri -Mihai Bazon -Mike Rennie -Nick Fitzgerald -Oskar Schöldström -Paul Harper -Peter Rust -PlNG -r-e-d -Rich Harris -Sebastian McKenzie -zsjforcn diff --git a/js/node_modules/babylon/LICENSE b/js/node_modules/babylon/LICENSE deleted file mode 100644 index d4c7fc5..0000000 --- a/js/node_modules/babylon/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2012-2014 by various contributors (see AUTHORS) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/js/node_modules/babylon/README.md b/js/node_modules/babylon/README.md deleted file mode 100644 index 69d83a6..0000000 --- a/js/node_modules/babylon/README.md +++ /dev/null @@ -1,74 +0,0 @@ -

- babylon -

- -

- Babylon is a JavaScript parser used in Babel. -

- - - ES6 enabled by default. - - Comment attachment. - - Support for JSX and Flow. - - Support for experimental language proposals. - -## Credits - -Heavily based on [acorn](https://github.com/marijnh/acorn) and [acorn-jsx](https://github.com/RReverser/acorn-jsx), -thanks to the awesome work of [@RReverser](https://github.com/RReverser) and [@marijnh](https://github.com/marijnh). - -Significant diversions are expected to occur in the future such as streaming, EBNF definitions, sweet.js integration, interspacial parsing and more. - -## API - -### `babylon.parse(code, [options])` - -## Options - -- **allowImportExportEverywhere**: By default, `import` and `export` - declarations can only appear at a program's top level. Setting this - option to `true` allows them anywhere where a statement is allowed. - -- **allowReturnOutsideFunction**: By default, a return statement at - the top level raises an error. Set this to `true` to accept such - code. - -- **allowSuperOutsideMethod** TODO - -- **sourceType**: Indicate the mode the code should be parsed in. Can be - either `"script"` or `"module"`. - -- **plugins**: Array containing the plugins that you want to enable. - -### Example - -```javascript -require("babylon").parse("code", { - // parse in strict mode and allow module declarations - sourceType: "module", - - plugins: [ - // enable experimental async functions - "asyncFunctions", - - // enable jsx and flow syntax - "jsx", - "flow" - ] -}); -``` - -### Plugins - - - `jsx` - - `flow` - - `asyncFunctions` - - `classConstructorCall` - - `doExpressions` - - `trailingFunctionCommas` - - `objectRestSpread` - - `decorators` - - `classProperties` - - `exportExtensions` - - `exponentiationOperator` - - `asyncGenerators` - - `functionSent` diff --git a/js/node_modules/babylon/bin/babylon.js b/js/node_modules/babylon/bin/babylon.js deleted file mode 100644 index ddda000..0000000 --- a/js/node_modules/babylon/bin/babylon.js +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env node - -var babylon = require("../lib/index"); -var fs = require("fs"); - -var filename = process.argv[2]; -if (!filename) { - console.error("no filename specified"); - process.exit(0); -} - -var file = fs.readFileSync(filename, "utf8"); -var ast = babylon.parse(file); - -console.log(JSON.stringify(ast, null, " ")); diff --git a/js/node_modules/babylon/lib/index.js b/js/node_modules/babylon/lib/index.js deleted file mode 100644 index 8d6eb84..0000000 --- a/js/node_modules/babylon/lib/index.js +++ /dev/null @@ -1,47 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -exports.__esModule = true; -exports.parse = parse; - -var _parser = require("./parser"); - -var _parser2 = _interopRequireDefault(_parser); - -require("./parser/util"); - -require("./parser/statement"); - -require("./parser/lval"); - -require("./parser/expression"); - -require("./parser/node"); - -require("./parser/location"); - -require("./parser/comments"); - -var _tokenizerTypes = require("./tokenizer/types"); - -require("./tokenizer"); - -require("./tokenizer/context"); - -var _pluginsFlow = require("./plugins/flow"); - -var _pluginsFlow2 = _interopRequireDefault(_pluginsFlow); - -var _pluginsJsx = require("./plugins/jsx"); - -var _pluginsJsx2 = _interopRequireDefault(_pluginsJsx); - -_parser.plugins.flow = _pluginsFlow2["default"]; -_parser.plugins.jsx = _pluginsJsx2["default"]; - -function parse(input, options) { - return new _parser2["default"](options, input).parse(); -} - -exports.tokTypes = _tokenizerTypes.types; \ No newline at end of file diff --git a/js/node_modules/babylon/lib/options.js b/js/node_modules/babylon/lib/options.js deleted file mode 100644 index 9f033cf..0000000 --- a/js/node_modules/babylon/lib/options.js +++ /dev/null @@ -1,34 +0,0 @@ -// A second optional argument can be given to further configure -// the parser process. These options are recognized: - -"use strict"; - -exports.__esModule = true; -exports.getOptions = getOptions; -var defaultOptions = { - // Source type ("script" or "module") for different semantics - sourceType: "script", - // When enabled, a return at the top level is not considered an - // error. - allowReturnOutsideFunction: false, - // When enabled, import/export statements are not constrained to - // appearing at the top of the program. - allowImportExportEverywhere: false, - // TODO - allowSuperOutsideMethod: false, - // An array of plugins to enable - plugins: [], - // TODO - strictMode: null -}; - -exports.defaultOptions = defaultOptions; -// Interpret and default an options object - -function getOptions(opts /*:: ?: Object*/) /*: Object*/ { - var options = {}; - for (var key in defaultOptions) { - options[key] = opts && key in opts ? opts[key] : defaultOptions[key]; - } - return options; -} \ No newline at end of file diff --git a/js/node_modules/babylon/lib/parser/comments.js b/js/node_modules/babylon/lib/parser/comments.js deleted file mode 100644 index ba23c01..0000000 --- a/js/node_modules/babylon/lib/parser/comments.js +++ /dev/null @@ -1,151 +0,0 @@ -/* @flow */ - -/** - * Based on the comment attachment algorithm used in espree and estraverse. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -"use strict"; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _index = require("./index"); - -var _index2 = _interopRequireDefault(_index); - -function last(stack) { - return stack[stack.length - 1]; -} - -var pp = _index2["default"].prototype; - -pp.addComment = function (comment) { - this.state.trailingComments.push(comment); - this.state.leadingComments.push(comment); -}; - -pp.processComment = function (node) { - if (node.type === "Program" && node.body.length > 0) return; - - var stack = this.state.commentStack; - - var lastChild = undefined, - trailingComments = undefined, - i = undefined; - - if (this.state.trailingComments.length > 0) { - // If the first comment in trailingComments comes after the - // current node, then we're good - all comments in the array will - // come after the node and so it's safe to add them as official - // trailingComments. - if (this.state.trailingComments[0].start >= node.end) { - trailingComments = this.state.trailingComments; - this.state.trailingComments = []; - } else { - // Otherwise, if the first comment doesn't come after the - // current node, that means we have a mix of leading and trailing - // comments in the array and that leadingComments contains the - // same items as trailingComments. Reset trailingComments to - // zero items and we'll handle this by evaluating leadingComments - // later. - this.state.trailingComments.length = 0; - } - } else { - var lastInStack = last(stack); - if (stack.length > 0 && lastInStack.trailingComments && lastInStack.trailingComments[0].start >= node.end) { - trailingComments = lastInStack.trailingComments; - lastInStack.trailingComments = null; - } - } - - // Eating the stack. - while (stack.length > 0 && last(stack).start >= node.start) { - lastChild = stack.pop(); - } - - if (lastChild) { - if (lastChild.leadingComments) { - if (lastChild !== node && last(lastChild.leadingComments).end <= node.start) { - node.leadingComments = lastChild.leadingComments; - lastChild.leadingComments = null; - } else { - // A leading comment for an anonymous class had been stolen by its first ClassMethod, - // so this takes back the leading comment. - // See also: https://github.com/eslint/espree/issues/158 - for (i = lastChild.leadingComments.length - 2; i >= 0; --i) { - if (lastChild.leadingComments[i].end <= node.start) { - node.leadingComments = lastChild.leadingComments.splice(0, i + 1); - break; - } - } - } - } - } else if (this.state.leadingComments.length > 0) { - if (last(this.state.leadingComments).end <= node.start) { - node.leadingComments = this.state.leadingComments; - this.state.leadingComments = []; - } else { - // https://github.com/eslint/espree/issues/2 - // - // In special cases, such as return (without a value) and - // debugger, all comments will end up as leadingComments and - // will otherwise be eliminated. This step runs when the - // commentStack is empty and there are comments left - // in leadingComments. - // - // This loop figures out the stopping point between the actual - // leading and trailing comments by finding the location of the - // first comment that comes after the given node. - for (i = 0; i < this.state.leadingComments.length; i++) { - if (this.state.leadingComments[i].end > node.start) { - break; - } - } - - // Split the array based on the location of the first comment - // that comes after the node. Keep in mind that this could - // result in an empty array, and if so, the array must be - // deleted. - node.leadingComments = this.state.leadingComments.slice(0, i); - if (node.leadingComments.length === 0) { - node.leadingComments = null; - } - - // Similarly, trailing comments are attached later. The variable - // must be reset to null if there are no trailing comments. - trailingComments = this.state.leadingComments.slice(i); - if (trailingComments.length === 0) { - trailingComments = null; - } - } - } - - if (trailingComments) { - if (trailingComments.length && trailingComments[0].start >= node.start && last(trailingComments).end <= node.end) { - node.innerComments = trailingComments; - } else { - node.trailingComments = trailingComments; - } - } - - stack.push(node); -}; \ No newline at end of file diff --git a/js/node_modules/babylon/lib/parser/expression.js b/js/node_modules/babylon/lib/parser/expression.js deleted file mode 100644 index 3b7a087..0000000 --- a/js/node_modules/babylon/lib/parser/expression.js +++ /dev/null @@ -1,1047 +0,0 @@ -// A recursive descent parser operates by defining functions for all -// syntactic elements, and recursively calling those, each function -// advancing the input stream and returning an AST node. Precedence -// of constructs (for example, the fact that `!x[1]` means `!(x[1])` -// instead of `(!x)[1]` is handled by the fact that the parser -// function that parses unary prefix operators is called first, and -// in turn calls the function that parses `[]` subscripts — that -// way, it'll receive the node for `x[1]` already parsed, and wraps -// *that* in the unary operator node. -// -// Acorn uses an [operator precedence parser][opp] to handle binary -// operator precedence, because it is much more compact than using -// the technique outlined above, which uses different, nesting -// functions to specify precedence, for all of the ten binary -// precedence levels that JavaScript defines. -// -// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser - -"use strict"; - -var _Object$create = require("babel-runtime/core-js/object/create")["default"]; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _tokenizerTypes = require("../tokenizer/types"); - -var _index = require("./index"); - -var _index2 = _interopRequireDefault(_index); - -var _utilIdentifier = require("../util/identifier"); - -var pp = _index2["default"].prototype; - -// Check if property name clashes with already added. -// Object/class getters and setters are not allowed to clash — -// either with each other or with an init property — and in -// strict mode, init properties are also not allowed to be repeated. - -pp.checkPropClash = function (prop, propHash) { - if (prop.computed) return; - - var key = prop.key; - var name = undefined; - switch (key.type) { - case "Identifier": - name = key.name; - break; - - case "StringLiteral": - case "NumericLiteral": - name = String(key.value); - break; - - default: - return; - } - - if (name === "__proto__" && prop.kind === "init") { - if (propHash.proto) this.raise(key.start, "Redefinition of __proto__ property"); - propHash.proto = true; - } -}; - -// ### Expression parsing - -// These nest, from the most general expression type at the top to -// 'atomic', nondivisible expression types at the bottom. Most of -// the functions will simply let the function (s) below them parse, -// and, *if* the syntactic construct they handle is present, wrap -// the AST node that the inner parser gave them in another node. - -// Parse a full expression. The optional arguments are used to -// forbid the `in` operator (in for loops initalization expressions) -// and provide reference for storing '=' operator inside shorthand -// property assignment in contexts where both object expression -// and object pattern might appear (so it's possible to raise -// delayed syntax error at correct position). - -pp.parseExpression = function (noIn, refShorthandDefaultPos) { - var startPos = this.state.start, - startLoc = this.state.startLoc; - var expr = this.parseMaybeAssign(noIn, refShorthandDefaultPos); - if (this.match(_tokenizerTypes.types.comma)) { - var node = this.startNodeAt(startPos, startLoc); - node.expressions = [expr]; - while (this.eat(_tokenizerTypes.types.comma)) { - node.expressions.push(this.parseMaybeAssign(noIn, refShorthandDefaultPos)); - } - this.toReferencedList(node.expressions); - return this.finishNode(node, "SequenceExpression"); - } - return expr; -}; - -// Parse an assignment expression. This includes applications of -// operators like `+=`. - -pp.parseMaybeAssign = function (noIn, refShorthandDefaultPos, afterLeftParse) { - if (this.match(_tokenizerTypes.types._yield) && this.state.inGenerator) { - return this.parseYield(); - } - - var failOnShorthandAssign = undefined; - if (refShorthandDefaultPos) { - failOnShorthandAssign = false; - } else { - refShorthandDefaultPos = { start: 0 }; - failOnShorthandAssign = true; - } - - var startPos = this.state.start; - var startLoc = this.state.startLoc; - - if (this.match(_tokenizerTypes.types.parenL) || this.match(_tokenizerTypes.types.name)) { - this.state.potentialArrowAt = this.state.start; - } - - var left = this.parseMaybeConditional(noIn, refShorthandDefaultPos); - if (afterLeftParse) left = afterLeftParse.call(this, left, startPos, startLoc); - if (this.state.type.isAssign) { - var node = this.startNodeAt(startPos, startLoc); - node.operator = this.state.value; - node.left = this.match(_tokenizerTypes.types.eq) ? this.toAssignable(left) : left; - refShorthandDefaultPos.start = 0; // reset because shorthand default was used correctly - - this.checkLVal(left); - - if (left.extra && left.extra.parenthesized) { - var errorMsg = undefined; - if (left.type === "ObjectPattern") { - errorMsg = "`({a}) = 0` use `({a} = 0)`"; - } else if (left.type === "ArrayPattern") { - errorMsg = "`([a]) = 0` use `([a] = 0)`"; - } - if (errorMsg) { - this.raise(left.start, "You're trying to assign to a parenthesized expression, eg. instead of " + errorMsg); - } - } - - this.next(); - node.right = this.parseMaybeAssign(noIn); - return this.finishNode(node, "AssignmentExpression"); - } else if (failOnShorthandAssign && refShorthandDefaultPos.start) { - this.unexpected(refShorthandDefaultPos.start); - } - - return left; -}; - -// Parse a ternary conditional (`?:`) operator. - -pp.parseMaybeConditional = function (noIn, refShorthandDefaultPos) { - var startPos = this.state.start, - startLoc = this.state.startLoc; - var expr = this.parseExprOps(noIn, refShorthandDefaultPos); - if (refShorthandDefaultPos && refShorthandDefaultPos.start) return expr; - if (this.eat(_tokenizerTypes.types.question)) { - var node = this.startNodeAt(startPos, startLoc); - node.test = expr; - node.consequent = this.parseMaybeAssign(); - this.expect(_tokenizerTypes.types.colon); - node.alternate = this.parseMaybeAssign(noIn); - return this.finishNode(node, "ConditionalExpression"); - } - return expr; -}; - -// Start the precedence parser. - -pp.parseExprOps = function (noIn, refShorthandDefaultPos) { - var startPos = this.state.start, - startLoc = this.state.startLoc; - var expr = this.parseMaybeUnary(refShorthandDefaultPos); - if (refShorthandDefaultPos && refShorthandDefaultPos.start) { - return expr; - } else { - return this.parseExprOp(expr, startPos, startLoc, -1, noIn); - } -}; - -// Parse binary operators with the operator precedence parsing -// algorithm. `left` is the left-hand side of the operator. -// `minPrec` provides context that allows the function to stop and -// defer further parser to one of its callers when it encounters an -// operator that has a lower precedence than the set it is parsing. - -pp.parseExprOp = function (left, leftStartPos, leftStartLoc, minPrec, noIn) { - var prec = this.state.type.binop; - if (prec != null && (!noIn || !this.match(_tokenizerTypes.types._in))) { - if (prec > minPrec) { - var node = this.startNodeAt(leftStartPos, leftStartLoc); - node.left = left; - node.operator = this.state.value; - - if (node.operator === "**" && left.type === "UnaryExpression" && left.extra && !left.extra.parenthesizedArgument) { - this.raise(left.argument.start, "Illegal expression. Wrap left hand side or entire exponentiation in parentheses."); - } - - var op = this.state.type; - this.next(); - - var startPos = this.state.start; - var startLoc = this.state.startLoc; - node.right = this.parseExprOp(this.parseMaybeUnary(), startPos, startLoc, op.rightAssociative ? prec - 1 : prec, noIn); - - this.finishNode(node, op === _tokenizerTypes.types.logicalOR || op === _tokenizerTypes.types.logicalAND ? "LogicalExpression" : "BinaryExpression"); - return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn); - } - } - return left; -}; - -// Parse unary operators, both prefix and postfix. - -pp.parseMaybeUnary = function (refShorthandDefaultPos) { - if (this.state.type.prefix) { - var node = this.startNode(); - var update = this.match(_tokenizerTypes.types.incDec); - node.operator = this.state.value; - node.prefix = true; - this.next(); - - var argType = this.state.type; - this.addExtra(node, "parenthesizedArgument", argType === _tokenizerTypes.types.parenL); - node.argument = this.parseMaybeUnary(); - - if (refShorthandDefaultPos && refShorthandDefaultPos.start) { - this.unexpected(refShorthandDefaultPos.start); - } - - if (update) { - this.checkLVal(node.argument); - } else if (this.state.strict && node.operator === "delete" && node.argument.type === "Identifier") { - this.raise(node.start, "Deleting local variable in strict mode"); - } - - return this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression"); - } - - var startPos = this.state.start, - startLoc = this.state.startLoc; - var expr = this.parseExprSubscripts(refShorthandDefaultPos); - if (refShorthandDefaultPos && refShorthandDefaultPos.start) return expr; - while (this.state.type.postfix && !this.canInsertSemicolon()) { - var node = this.startNodeAt(startPos, startLoc); - node.operator = this.state.value; - node.prefix = false; - node.argument = expr; - this.checkLVal(expr); - this.next(); - expr = this.finishNode(node, "UpdateExpression"); - } - return expr; -}; - -// Parse call, dot, and `[]`-subscript expressions. - -pp.parseExprSubscripts = function (refShorthandDefaultPos) { - var startPos = this.state.start, - startLoc = this.state.startLoc; - var potentialArrowAt = this.state.potentialArrowAt; - var expr = this.parseExprAtom(refShorthandDefaultPos); - - if (expr.type === "ArrowFunctionExpression" && expr.start === potentialArrowAt) { - return expr; - } - - if (refShorthandDefaultPos && refShorthandDefaultPos.start) { - return expr; - } - - return this.parseSubscripts(expr, startPos, startLoc); -}; - -pp.parseSubscripts = function (base, startPos, startLoc, noCalls) { - for (;;) { - if (!noCalls && this.eat(_tokenizerTypes.types.doubleColon)) { - var node = this.startNodeAt(startPos, startLoc); - node.object = base; - node.callee = this.parseNoCallExpr(); - return this.parseSubscripts(this.finishNode(node, "BindExpression"), startPos, startLoc, noCalls); - } else if (this.eat(_tokenizerTypes.types.dot)) { - var node = this.startNodeAt(startPos, startLoc); - node.object = base; - node.property = this.parseIdentifier(true); - node.computed = false; - base = this.finishNode(node, "MemberExpression"); - } else if (this.eat(_tokenizerTypes.types.bracketL)) { - var node = this.startNodeAt(startPos, startLoc); - node.object = base; - node.property = this.parseExpression(); - node.computed = true; - this.expect(_tokenizerTypes.types.bracketR); - base = this.finishNode(node, "MemberExpression"); - } else if (!noCalls && this.match(_tokenizerTypes.types.parenL)) { - var possibleAsync = this.state.potentialArrowAt === base.start && base.type === "Identifier" && base.name === "async" && !this.canInsertSemicolon(); - this.next(); - - var node = this.startNodeAt(startPos, startLoc); - node.callee = base; - node.arguments = this.parseCallExpressionArguments(_tokenizerTypes.types.parenR, this.hasPlugin("trailingFunctionCommas"), possibleAsync); - base = this.finishNode(node, "CallExpression"); - - if (possibleAsync && this.shouldParseAsyncArrow()) { - return this.parseAsyncArrowFromCallExpression(this.startNodeAt(startPos, startLoc), node); - } else { - this.toReferencedList(node.arguments); - } - } else if (this.match(_tokenizerTypes.types.backQuote)) { - var node = this.startNodeAt(startPos, startLoc); - node.tag = base; - node.quasi = this.parseTemplate(); - base = this.finishNode(node, "TaggedTemplateExpression"); - } else { - return base; - } - } -}; - -pp.parseCallExpressionArguments = function (close, allowTrailingComma, possibleAsyncArrow) { - var innerParenStart = undefined; - - var elts = [], - first = true; - while (!this.eat(close)) { - if (first) { - first = false; - } else { - this.expect(_tokenizerTypes.types.comma); - if (allowTrailingComma && this.eat(close)) break; - } - - // we need to make sure that if this is an async arrow functions, that we don't allow inner parens inside the params - if (this.match(_tokenizerTypes.types.parenL) && !innerParenStart) { - innerParenStart = this.state.start; - } - - elts.push(this.parseExprListItem()); - } - - // we found an async arrow function so let's not allow any inner parens - if (possibleAsyncArrow && innerParenStart && this.shouldParseAsyncArrow()) { - this.unexpected(); - } - - return elts; -}; - -pp.shouldParseAsyncArrow = function () { - return this.match(_tokenizerTypes.types.arrow); -}; - -pp.parseAsyncArrowFromCallExpression = function (node, call) { - if (!this.hasPlugin("asyncFunctions")) this.unexpected(); - this.expect(_tokenizerTypes.types.arrow); - return this.parseArrowExpression(node, call.arguments, true); -}; - -// Parse a no-call expression (like argument of `new` or `::` operators). - -pp.parseNoCallExpr = function () { - var startPos = this.state.start, - startLoc = this.state.startLoc; - return this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true); -}; - -// Parse an atomic expression — either a single token that is an -// expression, an expression started by a keyword like `function` or -// `new`, or an expression wrapped in punctuation like `()`, `[]`, -// or `{}`. - -pp.parseExprAtom = function (refShorthandDefaultPos) { - var node = undefined, - canBeArrow = this.state.potentialArrowAt === this.state.start; - switch (this.state.type) { - case _tokenizerTypes.types._super: - if (!this.state.inMethod && !this.options.allowSuperOutsideMethod) { - this.raise(this.state.start, "'super' outside of function or class"); - } - - node = this.startNode(); - this.next(); - if (!this.match(_tokenizerTypes.types.parenL) && !this.match(_tokenizerTypes.types.bracketL) && !this.match(_tokenizerTypes.types.dot)) { - this.unexpected(); - } - if (this.match(_tokenizerTypes.types.parenL) && this.state.inMethod !== "constructor" && !this.options.allowSuperOutsideMethod) { - this.raise(node.start, "super() outside of class constructor"); - } - return this.finishNode(node, "Super"); - - case _tokenizerTypes.types._this: - node = this.startNode(); - this.next(); - return this.finishNode(node, "ThisExpression"); - - case _tokenizerTypes.types._yield: - if (this.state.inGenerator) this.unexpected(); - - case _tokenizerTypes.types.name: - node = this.startNode(); - var allowAwait = this.hasPlugin("asyncFunctions") && this.state.value === "await" && this.state.inAsync; - var allowYield = this.shouldAllowYieldIdentifier(); - var id = this.parseIdentifier(allowAwait || allowYield); - - if (this.hasPlugin("asyncFunctions")) { - if (id.name === "await") { - if (this.state.inAsync || this.inModule) { - return this.parseAwait(node); - } - } else if (id.name === "async" && this.match(_tokenizerTypes.types._function) && !this.canInsertSemicolon()) { - this.next(); - return this.parseFunction(node, false, false, true); - } else if (canBeArrow && id.name === "async" && this.match(_tokenizerTypes.types.name)) { - var params = [this.parseIdentifier()]; - this.expect(_tokenizerTypes.types.arrow); - // let foo = bar => {}; - return this.parseArrowExpression(node, params, true); - } - } - - if (canBeArrow && !this.canInsertSemicolon() && this.eat(_tokenizerTypes.types.arrow)) { - return this.parseArrowExpression(node, [id]); - } - - return id; - - case _tokenizerTypes.types._do: - if (this.hasPlugin("doExpressions")) { - var _node = this.startNode(); - this.next(); - var oldInFunction = this.state.inFunction; - var oldLabels = this.state.labels; - this.state.labels = []; - this.state.inFunction = false; - _node.body = this.parseBlock(false, true); - this.state.inFunction = oldInFunction; - this.state.labels = oldLabels; - return this.finishNode(_node, "DoExpression"); - } - - case _tokenizerTypes.types.regexp: - var value = this.state.value; - node = this.parseLiteral(value.value, "RegExpLiteral"); - node.pattern = value.pattern; - node.flags = value.flags; - return node; - - case _tokenizerTypes.types.num: - return this.parseLiteral(this.state.value, "NumericLiteral"); - - case _tokenizerTypes.types.string: - return this.parseLiteral(this.state.value, "StringLiteral"); - - case _tokenizerTypes.types._null: - node = this.startNode(); - this.next(); - return this.finishNode(node, "NullLiteral"); - - case _tokenizerTypes.types._true:case _tokenizerTypes.types._false: - node = this.startNode(); - node.value = this.match(_tokenizerTypes.types._true); - this.next(); - return this.finishNode(node, "BooleanLiteral"); - - case _tokenizerTypes.types.parenL: - return this.parseParenAndDistinguishExpression(null, null, canBeArrow); - - case _tokenizerTypes.types.bracketL: - node = this.startNode(); - this.next(); - node.elements = this.parseExprList(_tokenizerTypes.types.bracketR, true, true, refShorthandDefaultPos); - this.toReferencedList(node.elements); - return this.finishNode(node, "ArrayExpression"); - - case _tokenizerTypes.types.braceL: - return this.parseObj(false, refShorthandDefaultPos); - - case _tokenizerTypes.types._function: - return this.parseFunctionExpression(); - - case _tokenizerTypes.types.at: - this.parseDecorators(); - - case _tokenizerTypes.types._class: - node = this.startNode(); - this.takeDecorators(node); - return this.parseClass(node, false); - - case _tokenizerTypes.types._new: - return this.parseNew(); - - case _tokenizerTypes.types.backQuote: - return this.parseTemplate(); - - case _tokenizerTypes.types.doubleColon: - node = this.startNode(); - this.next(); - node.object = null; - var callee = node.callee = this.parseNoCallExpr(); - if (callee.type === "MemberExpression") { - return this.finishNode(node, "BindExpression"); - } else { - this.raise(callee.start, "Binding should be performed on object property."); - } - - default: - this.unexpected(); - } -}; - -pp.parseFunctionExpression = function () { - var node = this.startNode(); - var meta = this.parseIdentifier(true); - if (this.state.inGenerator && this.eat(_tokenizerTypes.types.dot) && this.hasPlugin("functionSent")) { - return this.parseMetaProperty(node, meta, "sent"); - } else { - return this.parseFunction(node, false); - } -}; - -pp.parseMetaProperty = function (node, meta, propertyName) { - node.meta = meta; - node.property = this.parseIdentifier(true); - - if (node.property.name !== propertyName) { - this.raise(node.property.start, "The only valid meta property for new is " + meta.name + "." + propertyName); - } - - return this.finishNode(node, "MetaProperty"); -}; - -pp.parseLiteral = function (value, type) { - var node = this.startNode(); - this.addExtra(node, "rawValue", value); - this.addExtra(node, "raw", this.input.slice(this.state.start, this.state.end)); - node.value = value; - this.next(); - return this.finishNode(node, type); -}; - -pp.parseParenExpression = function () { - this.expect(_tokenizerTypes.types.parenL); - var val = this.parseExpression(); - this.expect(_tokenizerTypes.types.parenR); - return val; -}; - -pp.parseParenAndDistinguishExpression = function (startPos, startLoc, canBeArrow, isAsync) { - startPos = startPos || this.state.start; - startLoc = startLoc || this.state.startLoc; - - var val = undefined; - this.next(); - - var innerStartPos = this.state.start, - innerStartLoc = this.state.startLoc; - var exprList = [], - first = true; - var refShorthandDefaultPos = { start: 0 }, - spreadStart = undefined, - optionalCommaStart = undefined; - while (!this.match(_tokenizerTypes.types.parenR)) { - if (first) { - first = false; - } else { - this.expect(_tokenizerTypes.types.comma); - if (this.match(_tokenizerTypes.types.parenR) && this.hasPlugin("trailingFunctionCommas")) { - optionalCommaStart = this.state.start; - break; - } - } - - if (this.match(_tokenizerTypes.types.ellipsis)) { - var spreadNodeStartPos = this.state.start, - spreadNodeStartLoc = this.state.startLoc; - spreadStart = this.state.start; - exprList.push(this.parseParenItem(this.parseRest(), spreadNodeStartLoc, spreadNodeStartPos)); - break; - } else { - exprList.push(this.parseMaybeAssign(false, refShorthandDefaultPos, this.parseParenItem)); - } - } - - var innerEndPos = this.state.start; - var innerEndLoc = this.state.startLoc; - this.expect(_tokenizerTypes.types.parenR); - - if (canBeArrow && !this.canInsertSemicolon() && this.eat(_tokenizerTypes.types.arrow)) { - for (var _i = 0; _i < exprList.length; _i++) { - var param = exprList[_i]; - if (param.extra && param.extra.parenthesized) this.unexpected(param.extra.parenStart); - } - - return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, isAsync); - } - - if (!exprList.length) { - if (isAsync) { - return; - } else { - this.unexpected(this.state.lastTokStart); - } - } - if (optionalCommaStart) this.unexpected(optionalCommaStart); - if (spreadStart) this.unexpected(spreadStart); - if (refShorthandDefaultPos.start) this.unexpected(refShorthandDefaultPos.start); - - if (exprList.length > 1) { - val = this.startNodeAt(innerStartPos, innerStartLoc); - val.expressions = exprList; - this.toReferencedList(val.expressions); - this.finishNodeAt(val, "SequenceExpression", innerEndPos, innerEndLoc); - } else { - val = exprList[0]; - } - - this.addExtra(val, "parenthesized", true); - this.addExtra(val, "parenStart", startPos); - - return val; -}; - -pp.parseParenItem = function (node) { - return node; -}; - -// New's precedence is slightly tricky. It must allow its argument -// to be a `[]` or dot subscript expression, but not a call — at -// least, not without wrapping it in parentheses. Thus, it uses the - -pp.parseNew = function () { - var node = this.startNode(); - var meta = this.parseIdentifier(true); - - if (this.eat(_tokenizerTypes.types.dot)) { - return this.parseMetaProperty(node, meta, "target"); - } - - node.callee = this.parseNoCallExpr(); - - if (this.eat(_tokenizerTypes.types.parenL)) { - node.arguments = this.parseExprList(_tokenizerTypes.types.parenR, this.hasPlugin("trailingFunctionCommas")); - this.toReferencedList(node.arguments); - } else { - node.arguments = []; - } - - return this.finishNode(node, "NewExpression"); -}; - -// Parse template expression. - -pp.parseTemplateElement = function () { - var elem = this.startNode(); - elem.value = { - raw: this.input.slice(this.state.start, this.state.end).replace(/\r\n?/g, "\n"), - cooked: this.state.value - }; - this.next(); - elem.tail = this.match(_tokenizerTypes.types.backQuote); - return this.finishNode(elem, "TemplateElement"); -}; - -pp.parseTemplate = function () { - var node = this.startNode(); - this.next(); - node.expressions = []; - var curElt = this.parseTemplateElement(); - node.quasis = [curElt]; - while (!curElt.tail) { - this.expect(_tokenizerTypes.types.dollarBraceL); - node.expressions.push(this.parseExpression()); - this.expect(_tokenizerTypes.types.braceR); - node.quasis.push(curElt = this.parseTemplateElement()); - } - this.next(); - return this.finishNode(node, "TemplateLiteral"); -}; - -// Parse an object literal or binding pattern. - -pp.parseObj = function (isPattern, refShorthandDefaultPos) { - var decorators = []; - var propHash = _Object$create(null); - var first = true; - var node = this.startNode(); - - node.properties = []; - this.next(); - - while (!this.eat(_tokenizerTypes.types.braceR)) { - if (first) { - first = false; - } else { - this.expect(_tokenizerTypes.types.comma); - if (this.eat(_tokenizerTypes.types.braceR)) break; - } - - while (this.match(_tokenizerTypes.types.at)) { - decorators.push(this.parseDecorator()); - } - - var prop = this.startNode(), - isGenerator = false, - isAsync = false, - startPos = undefined, - startLoc = undefined; - if (decorators.length) { - prop.decorators = decorators; - decorators = []; - } - - if (this.hasPlugin("objectRestSpread") && this.match(_tokenizerTypes.types.ellipsis)) { - prop = this.parseSpread(); - prop.type = isPattern ? "RestProperty" : "SpreadProperty"; - node.properties.push(prop); - continue; - } - - prop.method = false; - prop.shorthand = false; - - if (isPattern || refShorthandDefaultPos) { - startPos = this.state.start; - startLoc = this.state.startLoc; - } - - if (!isPattern) { - isGenerator = this.eat(_tokenizerTypes.types.star); - } - - if (!isPattern && this.hasPlugin("asyncFunctions") && this.isContextual("async")) { - if (isGenerator) this.unexpected(); - - var asyncId = this.parseIdentifier(); - if (this.match(_tokenizerTypes.types.colon) || this.match(_tokenizerTypes.types.parenL) || this.match(_tokenizerTypes.types.braceR)) { - prop.key = asyncId; - } else { - isAsync = true; - if (this.hasPlugin("asyncGenerators")) isGenerator = this.eat(_tokenizerTypes.types.star); - this.parsePropertyName(prop); - } - } else { - this.parsePropertyName(prop); - } - - this.parseObjPropValue(prop, startPos, startLoc, isGenerator, isAsync, isPattern, refShorthandDefaultPos); - this.checkPropClash(prop, propHash); - - if (prop.shorthand) { - this.addExtra(prop, "shorthand", true); - } - - node.properties.push(prop); - } - - if (decorators.length) { - this.raise(this.state.start, "You have trailing decorators with no property"); - } - - return this.finishNode(node, isPattern ? "ObjectPattern" : "ObjectExpression"); -}; - -pp.parseObjPropValue = function (prop, startPos, startLoc, isGenerator, isAsync, isPattern, refShorthandDefaultPos) { - if (isAsync || isGenerator || this.match(_tokenizerTypes.types.parenL)) { - if (isPattern) this.unexpected(); - prop.kind = "method"; - prop.method = true; - this.parseMethod(prop, isGenerator, isAsync); - return this.finishNode(prop, "ObjectMethod"); - } - - if (this.eat(_tokenizerTypes.types.colon)) { - prop.value = isPattern ? this.parseMaybeDefault(this.state.start, this.state.startLoc) : this.parseMaybeAssign(false, refShorthandDefaultPos); - return this.finishNode(prop, "ObjectProperty"); - } - - if (!prop.computed && prop.key.type === "Identifier" && (prop.key.name === "get" || prop.key.name === "set") && !this.match(_tokenizerTypes.types.comma) && !this.match(_tokenizerTypes.types.braceR)) { - if (isGenerator || isAsync || isPattern) this.unexpected(); - prop.kind = prop.key.name; - this.parsePropertyName(prop); - this.parseMethod(prop, false); - var paramCount = prop.kind === "get" ? 0 : 1; - if (prop.params.length !== paramCount) { - var start = prop.start; - if (prop.kind === "get") { - this.raise(start, "getter should have no params"); - } else { - this.raise(start, "setter should have exactly one param"); - } - } - return this.finishNode(prop, "ObjectMethod"); - } - - if (!prop.computed && prop.key.type === "Identifier") { - if (isPattern) { - var illegalBinding = this.isKeyword(prop.key.name); - if (!illegalBinding && this.state.strict) { - illegalBinding = _utilIdentifier.reservedWords.strictBind(prop.key.name) || _utilIdentifier.reservedWords.strict(prop.key.name); - } - if (illegalBinding) { - this.raise(prop.key.start, "Binding " + prop.key.name); - } - prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key.__clone()); - } else if (this.match(_tokenizerTypes.types.eq) && refShorthandDefaultPos) { - if (!refShorthandDefaultPos.start) { - refShorthandDefaultPos.start = this.state.start; - } - prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key.__clone()); - } else { - prop.value = prop.key.__clone(); - } - prop.shorthand = true; - return this.finishNode(prop, "ObjectProperty"); - } - - this.unexpected(); -}; - -pp.parsePropertyName = function (prop) { - if (this.eat(_tokenizerTypes.types.bracketL)) { - prop.computed = true; - prop.key = this.parseMaybeAssign(); - this.expect(_tokenizerTypes.types.bracketR); - return prop.key; - } else { - prop.computed = false; - return prop.key = this.match(_tokenizerTypes.types.num) || this.match(_tokenizerTypes.types.string) ? this.parseExprAtom() : this.parseIdentifier(true); - } -}; - -// Initialize empty function node. - -pp.initFunction = function (node, isAsync) { - node.id = null; - node.generator = false; - node.expression = false; - if (this.hasPlugin("asyncFunctions")) { - node.async = !!isAsync; - } -}; - -// Parse object or class method. - -pp.parseMethod = function (node, isGenerator, isAsync) { - var oldInMethod = this.state.inMethod; - this.state.inMethod = node.kind || true; - this.initFunction(node, isAsync); - this.expect(_tokenizerTypes.types.parenL); - node.params = this.parseBindingList(_tokenizerTypes.types.parenR, false, this.hasPlugin("trailingFunctionCommas")); - node.generator = isGenerator; - this.parseFunctionBody(node); - this.state.inMethod = oldInMethod; - return node; -}; - -// Parse arrow function expression with given parameters. - -pp.parseArrowExpression = function (node, params, isAsync) { - this.initFunction(node, isAsync); - node.params = this.toAssignableList(params, true); - this.parseFunctionBody(node, true); - return this.finishNode(node, "ArrowFunctionExpression"); -}; - -// Parse function body and check parameters. - -pp.parseFunctionBody = function (node, allowExpression) { - var isExpression = allowExpression && !this.match(_tokenizerTypes.types.braceL); - - var oldInAsync = this.state.inAsync; - this.state.inAsync = node.async; - if (isExpression) { - node.body = this.parseMaybeAssign(); - node.expression = true; - } else { - // Start a new scope with regard to labels and the `inFunction` - // flag (restore them to their old value afterwards). - var oldInFunc = this.state.inFunction, - oldInGen = this.state.inGenerator, - oldLabels = this.state.labels; - this.state.inFunction = true;this.state.inGenerator = node.generator;this.state.labels = []; - node.body = this.parseBlock(true); - node.expression = false; - this.state.inFunction = oldInFunc;this.state.inGenerator = oldInGen;this.state.labels = oldLabels; - } - this.state.inAsync = oldInAsync; - - // If this is a strict mode function, verify that argument names - // are not repeated, and it does not try to bind the words `eval` - // or `arguments`. - var checkLVal = this.state.strict; - var checkLValStrict = false; - var isStrict = false; - - // arrow function - if (allowExpression) checkLVal = true; - - // normal function - if (!isExpression && node.body.directives.length) { - for (var _iterator = (node.body.directives /*: Array*/), _isArray = Array.isArray(_iterator), _i2 = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - if (_isArray) { - if (_i2 >= _iterator.length) break; - _ref = _iterator[_i2++]; - } else { - _i2 = _iterator.next(); - if (_i2.done) break; - _ref = _i2.value; - } - - var directive = _ref; - - if (directive.value.value === "use strict") { - isStrict = true; - checkLVal = true; - checkLValStrict = true; - break; - } - } - } - - // - if (isStrict && node.id && node.id.type === "Identifier" && node.id.name === "yield") { - this.raise(node.id.start, "Binding yield in strict mode"); - } - - if (checkLVal) { - var nameHash = _Object$create(null); - var oldStrict = this.state.strict; - if (checkLValStrict) this.state.strict = true; - if (node.id) { - this.checkLVal(node.id, true); - } - for (var _iterator2 = (node.params /*: Array*/), _isArray2 = Array.isArray(_iterator2), _i3 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) { - var _ref2; - - if (_isArray2) { - if (_i3 >= _iterator2.length) break; - _ref2 = _iterator2[_i3++]; - } else { - _i3 = _iterator2.next(); - if (_i3.done) break; - _ref2 = _i3.value; - } - - var param = _ref2; - - this.checkLVal(param, true, nameHash); - } - this.state.strict = oldStrict; - } -}; - -// Parses a comma-separated list of expressions, and returns them as -// an array. `close` is the token type that ends the list, and -// `allowEmpty` can be turned on to allow subsequent commas with -// nothing in between them to be parsed as `null` (which is needed -// for array literals). - -pp.parseExprList = function (close, allowTrailingComma, allowEmpty, refShorthandDefaultPos) { - var elts = [], - first = true; - while (!this.eat(close)) { - if (first) { - first = false; - } else { - this.expect(_tokenizerTypes.types.comma); - if (allowTrailingComma && this.eat(close)) break; - } - - elts.push(this.parseExprListItem(allowEmpty, refShorthandDefaultPos)); - } - return elts; -}; - -pp.parseExprListItem = function (allowEmpty, refShorthandDefaultPos) { - var elt = undefined; - if (allowEmpty && this.match(_tokenizerTypes.types.comma)) { - elt = null; - } else if (this.match(_tokenizerTypes.types.ellipsis)) { - elt = this.parseSpread(refShorthandDefaultPos); - } else { - elt = this.parseMaybeAssign(false, refShorthandDefaultPos); - } - return elt; -}; - -// Parse the next token as an identifier. If `liberal` is true (used -// when parsing properties), it will also convert keywords into -// identifiers. - -pp.parseIdentifier = function (liberal) { - var node = this.startNode(); - - if (this.match(_tokenizerTypes.types.name)) { - if (!liberal && this.state.strict && _utilIdentifier.reservedWords.strict(this.state.value)) { - this.raise(this.state.start, "The keyword '" + this.state.value + "' is reserved"); - } - - node.name = this.state.value; - } else if (liberal && this.state.type.keyword) { - node.name = this.state.type.keyword; - } else { - this.unexpected(); - } - - if (!liberal && node.name === "await" && this.state.inAsync) { - this.raise(node.start, "invalid use of await inside of an async function"); - } - - this.next(); - return this.finishNode(node, "Identifier"); -}; - -// Parses await expression inside async function. - -pp.parseAwait = function (node) { - if (!this.state.inAsync) { - this.unexpected(); - } - if (this.isLineTerminator()) { - this.unexpected(); - } - node.all = this.eat(_tokenizerTypes.types.star); - node.argument = this.parseMaybeUnary(); - return this.finishNode(node, "AwaitExpression"); -}; - -// Parses yield expression inside generator. - -pp.parseYield = function () { - var node = this.startNode(); - this.next(); - if (this.match(_tokenizerTypes.types.semi) || this.canInsertSemicolon() || !this.match(_tokenizerTypes.types.star) && !this.state.type.startsExpr) { - node.delegate = false; - node.argument = null; - } else { - node.delegate = this.eat(_tokenizerTypes.types.star); - node.argument = this.parseMaybeAssign(); - } - return this.finishNode(node, "YieldExpression"); -}; \ No newline at end of file diff --git a/js/node_modules/babylon/lib/parser/index.js b/js/node_modules/babylon/lib/parser/index.js deleted file mode 100644 index c394332..0000000 --- a/js/node_modules/babylon/lib/parser/index.js +++ /dev/null @@ -1,102 +0,0 @@ -"use strict"; - -var _inherits = require("babel-runtime/helpers/inherits")["default"]; - -var _classCallCheck = require("babel-runtime/helpers/class-call-check")["default"]; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -exports.__esModule = true; - -var _utilIdentifier = require("../util/identifier"); - -var _options = require("../options"); - -var _tokenizer = require("../tokenizer"); - -var _tokenizer2 = _interopRequireDefault(_tokenizer); - -var plugins = {}; - -exports.plugins = plugins; - -var Parser = (function (_Tokenizer) { - _inherits(Parser, _Tokenizer); - - function Parser(options, input /*: string*/) { - _classCallCheck(this, Parser); - - options = _options.getOptions(options); - _Tokenizer.call(this, options, input); - - this.options = options; - this.inModule = this.options.sourceType === "module"; - this.isReservedWord = _utilIdentifier.reservedWords[6]; - this.input = input; - this.plugins = this.loadPlugins(this.options.plugins); - - // If enabled, skip leading hashbang line. - if (this.state.pos === 0 && this.input[0] === "#" && this.input[1] === "!") { - this.skipLineComment(2); - } - } - - Parser.prototype.hasPlugin = function hasPlugin(name /*: string*/) /*: boolean*/ { - return !!(this.plugins["*"] || this.plugins[name]); - }; - - Parser.prototype.extend = function extend(name /*: string*/, f /*: Function*/) { - this[name] = f(this[name]); - }; - - Parser.prototype.loadPlugins = function loadPlugins(plugins /*: Array*/) { - var pluginMap = {}; - - if (plugins.indexOf("flow") >= 0) { - // ensure flow plugin loads last - plugins.splice(plugins.indexOf("flow"), 1); - plugins.push("flow"); - } - - for (var _iterator = plugins, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var _name = _ref; - - pluginMap[_name] = true; - - var plugin = exports.plugins[_name]; - if (plugin) plugin(this); - } - - return pluginMap; - }; - - Parser.prototype.parse = function parse() /*: { - type: "File", - program: { - type: "Program", - body: Array - } - }*/ { - var file = this.startNode(); - var program = this.startNode(); - this.nextToken(); - return this.parseTopLevel(file, program); - }; - - return Parser; -})(_tokenizer2["default"]); - -exports["default"] = Parser; \ No newline at end of file diff --git a/js/node_modules/babylon/lib/parser/location.js b/js/node_modules/babylon/lib/parser/location.js deleted file mode 100644 index 4f2e490..0000000 --- a/js/node_modules/babylon/lib/parser/location.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _utilLocation = require("../util/location"); - -var _index = require("./index"); - -var _index2 = _interopRequireDefault(_index); - -var pp = _index2["default"].prototype; - -// This function is used to raise exceptions on parse errors. It -// takes an offset integer (into the current `input`) to indicate -// the location of the error, attaches the position to the end -// of the error message, and then raises a `SyntaxError` with that -// message. - -pp.raise = function (pos, message) { - var loc = _utilLocation.getLineInfo(this.input, pos); - message += " (" + loc.line + ":" + loc.column + ")"; - var err = new SyntaxError(message); - err.pos = pos; - err.loc = loc; - throw err; -}; \ No newline at end of file diff --git a/js/node_modules/babylon/lib/parser/lval.js b/js/node_modules/babylon/lib/parser/lval.js deleted file mode 100644 index 0956e36..0000000 --- a/js/node_modules/babylon/lib/parser/lval.js +++ /dev/null @@ -1,299 +0,0 @@ -"use strict"; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _tokenizerTypes = require("../tokenizer/types"); - -var _index = require("./index"); - -var _index2 = _interopRequireDefault(_index); - -var _utilIdentifier = require("../util/identifier"); - -var pp = _index2["default"].prototype; - -// Convert existing expression atom to assignable pattern -// if possible. - -pp.toAssignable = function (node, isBinding) { - if (node) { - switch (node.type) { - case "Identifier": - case "ObjectPattern": - case "ArrayPattern": - case "AssignmentPattern": - break; - - case "ObjectExpression": - node.type = "ObjectPattern"; - for (var _iterator = (node.properties /*: Array*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var prop = _ref; - - if (prop.type === "ObjectMethod") { - if (prop.kind === "get" || prop.kind === "set") { - this.raise(prop.key.start, "Object pattern can't contain getter or setter"); - } else { - this.raise(prop.key.start, "Object pattern can't contain methods"); - } - } else { - this.toAssignable(prop, isBinding); - } - } - break; - - case "ObjectProperty": - this.toAssignable(node.value, isBinding); - break; - - case "SpreadProperty": - node.type = "RestProperty"; - break; - - case "ArrayExpression": - node.type = "ArrayPattern"; - this.toAssignableList(node.elements, isBinding); - break; - - case "AssignmentExpression": - if (node.operator === "=") { - node.type = "AssignmentPattern"; - delete node.operator; - } else { - this.raise(node.left.end, "Only '=' operator can be used for specifying default value."); - } - break; - - case "MemberExpression": - if (!isBinding) break; - - default: - this.raise(node.start, "Assigning to rvalue"); - } - } - return node; -}; - -// Convert list of expression atoms to binding list. - -pp.toAssignableList = function (exprList, isBinding) { - var end = exprList.length; - if (end) { - var last = exprList[end - 1]; - if (last && last.type === "RestElement") { - --end; - } else if (last && last.type === "SpreadElement") { - last.type = "RestElement"; - var arg = last.argument; - this.toAssignable(arg, isBinding); - if (arg.type !== "Identifier" && arg.type !== "MemberExpression" && arg.type !== "ArrayPattern") { - this.unexpected(arg.start); - } - --end; - } - } - for (var i = 0; i < end; i++) { - var elt = exprList[i]; - if (elt) this.toAssignable(elt, isBinding); - } - return exprList; -}; - -// Convert list of expression atoms to a list of - -pp.toReferencedList = function (exprList) { - return exprList; -}; - -// Parses spread element. - -pp.parseSpread = function (refShorthandDefaultPos) { - var node = this.startNode(); - this.next(); - node.argument = this.parseMaybeAssign(refShorthandDefaultPos); - return this.finishNode(node, "SpreadElement"); -}; - -pp.parseRest = function () { - var node = this.startNode(); - this.next(); - node.argument = this.parseBindingIdentifier(); - return this.finishNode(node, "RestElement"); -}; - -pp.shouldAllowYieldIdentifier = function () { - return this.match(_tokenizerTypes.types._yield) && !this.state.strict && !this.state.inGenerator; -}; - -pp.parseBindingIdentifier = function () { - return this.parseIdentifier(this.shouldAllowYieldIdentifier()); -}; - -// Parses lvalue (assignable) atom. - -pp.parseBindingAtom = function () { - switch (this.state.type) { - case _tokenizerTypes.types._yield: - if (this.state.strict || this.state.inGenerator) this.unexpected(); - - case _tokenizerTypes.types.name: - return this.parseIdentifier(true); - - case _tokenizerTypes.types.bracketL: - var node = this.startNode(); - this.next(); - node.elements = this.parseBindingList(_tokenizerTypes.types.bracketR, true, true); - return this.finishNode(node, "ArrayPattern"); - - case _tokenizerTypes.types.braceL: - return this.parseObj(true); - - default: - this.unexpected(); - } -}; - -pp.parseBindingList = function (close, allowEmpty, allowTrailingComma) { - var elts = []; - var first = true; - while (!this.eat(close)) { - if (first) { - first = false; - } else { - this.expect(_tokenizerTypes.types.comma); - } - if (allowEmpty && this.match(_tokenizerTypes.types.comma)) { - elts.push(null); - } else if (allowTrailingComma && this.eat(close)) { - break; - } else if (this.match(_tokenizerTypes.types.ellipsis)) { - elts.push(this.parseAssignableListItemTypes(this.parseRest())); - this.expect(close); - break; - } else { - var left = this.parseMaybeDefault(); - this.parseAssignableListItemTypes(left); - elts.push(this.parseMaybeDefault(null, null, left)); - } - } - return elts; -}; - -pp.parseAssignableListItemTypes = function (param) { - return param; -}; - -// Parses assignment pattern around given atom if possible. - -pp.parseMaybeDefault = function (startPos, startLoc, left) { - startLoc = startLoc || this.state.startLoc; - startPos = startPos || this.state.start; - left = left || this.parseBindingAtom(); - if (!this.eat(_tokenizerTypes.types.eq)) return left; - - var node = this.startNodeAt(startPos, startLoc); - node.left = left; - node.right = this.parseMaybeAssign(); - return this.finishNode(node, "AssignmentPattern"); -}; - -// Verify that a node is an lval — something that can be assigned -// to. - -pp.checkLVal = function (expr, isBinding, checkClashes) { - switch (expr.type) { - case "Identifier": - if (this.state.strict && (_utilIdentifier.reservedWords.strictBind(expr.name) || _utilIdentifier.reservedWords.strict(expr.name))) { - this.raise(expr.start, (isBinding ? "Binding " : "Assigning to ") + expr.name + " in strict mode"); - } - - if (checkClashes) { - // we need to prefix this with an underscore for the cases where we have a key of - // `__proto__`. there's a bug in old V8 where the following wouldn't work: - // - // > var obj = Object.create(null); - // undefined - // > obj.__proto__ - // null - // > obj.__proto__ = true; - // true - // > obj.__proto__ - // null - var key = "_" + expr.name; - - if (checkClashes[key]) { - this.raise(expr.start, "Argument name clash in strict mode"); - } else { - checkClashes[key] = true; - } - } - break; - - case "MemberExpression": - if (isBinding) this.raise(expr.start, (isBinding ? "Binding" : "Assigning to") + " member expression"); - break; - - case "ObjectPattern": - for (var _iterator2 = (expr.properties /*: Array*/), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _getIterator(_iterator2);;) { - var _ref2; - - if (_isArray2) { - if (_i2 >= _iterator2.length) break; - _ref2 = _iterator2[_i2++]; - } else { - _i2 = _iterator2.next(); - if (_i2.done) break; - _ref2 = _i2.value; - } - - var prop = _ref2; - - if (prop.type === "ObjectProperty") prop = prop.value; - this.checkLVal(prop, isBinding, checkClashes); - } - break; - - case "ArrayPattern": - for (var _iterator3 = (expr.elements /*: Array*/), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _getIterator(_iterator3);;) { - var _ref3; - - if (_isArray3) { - if (_i3 >= _iterator3.length) break; - _ref3 = _iterator3[_i3++]; - } else { - _i3 = _iterator3.next(); - if (_i3.done) break; - _ref3 = _i3.value; - } - - var elem = _ref3; - - if (elem) this.checkLVal(elem, isBinding, checkClashes); - } - break; - - case "AssignmentPattern": - this.checkLVal(expr.left, isBinding, checkClashes); - break; - - case "RestProperty": - case "RestElement": - this.checkLVal(expr.argument, isBinding, checkClashes); - break; - - default: - this.raise(expr.start, (isBinding ? "Binding" : "Assigning to") + " rvalue"); - } -}; \ No newline at end of file diff --git a/js/node_modules/babylon/lib/parser/node.js b/js/node_modules/babylon/lib/parser/node.js deleted file mode 100644 index ffc0fd8..0000000 --- a/js/node_modules/babylon/lib/parser/node.js +++ /dev/null @@ -1,63 +0,0 @@ -"use strict"; - -var _classCallCheck = require("babel-runtime/helpers/class-call-check")["default"]; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _index = require("./index"); - -var _index2 = _interopRequireDefault(_index); - -var _utilLocation = require("../util/location"); - -// Start an AST node, attaching a start offset. - -var pp = _index2["default"].prototype; - -var Node = (function () { - function Node(pos /*:: ?: number*/, loc /*:: ?: SourceLocation*/) { - _classCallCheck(this, Node); - - this.type = ""; - this.start = pos; - this.end = 0; - this.loc = new _utilLocation.SourceLocation(loc); - } - - Node.prototype.__clone = function __clone() /*: Node*/ { - var node2 = new Node(); - for (var key in this) { - node2[key] = this[key]; - }return node2; - }; - - return Node; -})(); - -pp.startNode = function () { - return new Node(this.state.start, this.state.startLoc); -}; - -pp.startNodeAt = function (pos, loc) { - return new Node(pos, loc); -}; - -function finishNodeAt(node, type, pos, loc) { - node.type = type; - node.end = pos; - node.loc.end = loc; - this.processComment(node); - return node; -} - -// Finish an AST node, adding `type` and `end` properties. - -pp.finishNode = function (node, type) { - return finishNodeAt.call(this, node, type, this.state.lastTokEnd, this.state.lastTokEndLoc); -}; - -// Finish node at given position - -pp.finishNodeAt = function (node, type, pos, loc) { - return finishNodeAt.call(this, node, type, pos, loc); -}; \ No newline at end of file diff --git a/js/node_modules/babylon/lib/parser/statement.js b/js/node_modules/babylon/lib/parser/statement.js deleted file mode 100644 index b006f61..0000000 --- a/js/node_modules/babylon/lib/parser/statement.js +++ /dev/null @@ -1,1027 +0,0 @@ -"use strict"; - -var _Object$create = require("babel-runtime/core-js/object/create")["default"]; - -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _tokenizerTypes = require("../tokenizer/types"); - -var _index = require("./index"); - -var _index2 = _interopRequireDefault(_index); - -var _utilWhitespace = require("../util/whitespace"); - -var pp = _index2["default"].prototype; - -// ### Statement parsing - -// Parse a program. Initializes the parser, reads any number of -// statements, and wraps them in a Program node. Optionally takes a -// `program` argument. If present, the statements will be appended -// to its body instead of creating a new node. - -pp.parseTopLevel = function (file, program) { - program.sourceType = this.options.sourceType; - - this.parseBlockBody(program, true, true, _tokenizerTypes.types.eof); - - file.program = this.finishNode(program, "Program"); - file.comments = this.state.comments; - file.tokens = this.state.tokens; - - return this.finishNode(file, "File"); -}; - -var loopLabel = { kind: "loop" }, - switchLabel = { kind: "switch" }; - -// TODO - -pp.parseDirective = function () { - var directiveLiteral = this.startNode(); - var directive = this.startNode(); - - var raw = this.input.slice(this.state.start, this.state.end); - var val = directiveLiteral.value = raw.slice(1, -1); // remove quotes - - this.addExtra(directiveLiteral, "raw", raw); - this.addExtra(directiveLiteral, "rawValue", val); - - this.next(); - - directive.value = this.finishNode(directiveLiteral, "DirectiveLiteral"); - - this.semicolon(); - return this.finishNode(directive, "Directive"); -}; - -// Parse a single statement. -// -// If expecting a statement and finding a slash operator, parse a -// regular expression literal. This is to handle cases like -// `if (foo) /blah/.exec(foo)`, where looking at the previous token -// does not help. - -pp.parseStatement = function (declaration, topLevel) { - if (this.match(_tokenizerTypes.types.at)) { - this.parseDecorators(true); - } - - var starttype = this.state.type, - node = this.startNode(); - - // Most types of statements are recognized by the keyword they - // start with. Many are trivial to parse, some require a bit of - // complexity. - - switch (starttype) { - case _tokenizerTypes.types._break:case _tokenizerTypes.types._continue: - return this.parseBreakContinueStatement(node, starttype.keyword); - case _tokenizerTypes.types._debugger: - return this.parseDebuggerStatement(node); - case _tokenizerTypes.types._do: - return this.parseDoStatement(node); - case _tokenizerTypes.types._for: - return this.parseForStatement(node); - case _tokenizerTypes.types._function: - if (!declaration) this.unexpected(); - return this.parseFunctionStatement(node); - - case _tokenizerTypes.types._class: - if (!declaration) this.unexpected(); - this.takeDecorators(node); - return this.parseClass(node, true); - - case _tokenizerTypes.types._if: - return this.parseIfStatement(node); - case _tokenizerTypes.types._return: - return this.parseReturnStatement(node); - case _tokenizerTypes.types._switch: - return this.parseSwitchStatement(node); - case _tokenizerTypes.types._throw: - return this.parseThrowStatement(node); - case _tokenizerTypes.types._try: - return this.parseTryStatement(node); - - case _tokenizerTypes.types._let: - case _tokenizerTypes.types._const: - if (!declaration) this.unexpected(); // NOTE: falls through to _var - - case _tokenizerTypes.types._var: - return this.parseVarStatement(node, starttype); - - case _tokenizerTypes.types._while: - return this.parseWhileStatement(node); - case _tokenizerTypes.types._with: - return this.parseWithStatement(node); - case _tokenizerTypes.types.braceL: - return this.parseBlock(); - case _tokenizerTypes.types.semi: - return this.parseEmptyStatement(node); - case _tokenizerTypes.types._export: - case _tokenizerTypes.types._import: - if (!this.options.allowImportExportEverywhere) { - if (!topLevel) { - this.raise(this.state.start, "'import' and 'export' may only appear at the top level"); - } - - if (!this.inModule) { - this.raise(this.state.start, "'import' and 'export' may appear only with 'sourceType: module'"); - } - } - return starttype === _tokenizerTypes.types._import ? this.parseImport(node) : this.parseExport(node); - - case _tokenizerTypes.types.name: - if (this.hasPlugin("asyncFunctions") && this.state.value === "async") { - // peek ahead and see if next token is a function - var state = this.state.clone(); - this.next(); - if (this.match(_tokenizerTypes.types._function) && !this.canInsertSemicolon()) { - this.expect(_tokenizerTypes.types._function); - return this.parseFunction(node, true, false, true); - } else { - this.state = state; - } - } - } - - // If the statement does not start with a statement keyword or a - // brace, it's an ExpressionStatement or LabeledStatement. We - // simply start parsing an expression, and afterwards, if the - // next token is a colon and the expression was a simple - // Identifier node, we switch to interpreting it as a label. - var maybeName = this.state.value; - var expr = this.parseExpression(); - - if (starttype === _tokenizerTypes.types.name && expr.type === "Identifier" && this.eat(_tokenizerTypes.types.colon)) { - return this.parseLabeledStatement(node, maybeName, expr); - } else { - return this.parseExpressionStatement(node, expr); - } -}; - -pp.takeDecorators = function (node) { - if (this.state.decorators.length) { - node.decorators = this.state.decorators; - this.state.decorators = []; - } -}; - -pp.parseDecorators = function (allowExport) { - while (this.match(_tokenizerTypes.types.at)) { - this.state.decorators.push(this.parseDecorator()); - } - - if (allowExport && this.match(_tokenizerTypes.types._export)) { - return; - } - - if (!this.match(_tokenizerTypes.types._class)) { - this.raise(this.state.start, "Leading decorators must be attached to a class declaration"); - } -}; - -pp.parseDecorator = function () { - if (!this.hasPlugin("decorators")) { - this.unexpected(); - } - var node = this.startNode(); - this.next(); - node.expression = this.parseMaybeAssign(); - return this.finishNode(node, "Decorator"); -}; - -pp.parseBreakContinueStatement = function (node, keyword) { - var isBreak = keyword === "break"; - this.next(); - - if (this.isLineTerminator()) { - node.label = null; - } else if (!this.match(_tokenizerTypes.types.name)) { - this.unexpected(); - } else { - node.label = this.parseIdentifier(); - this.semicolon(); - } - - // Verify that there is an actual destination to break or - // continue to. - var i = undefined; - for (i = 0; i < this.state.labels.length; ++i) { - var lab = this.state.labels[i]; - if (node.label == null || lab.name === node.label.name) { - if (lab.kind != null && (isBreak || lab.kind === "loop")) break; - if (node.label && isBreak) break; - } - } - if (i === this.state.labels.length) this.raise(node.start, "Unsyntactic " + keyword); - return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement"); -}; - -pp.parseDebuggerStatement = function (node) { - this.next(); - this.semicolon(); - return this.finishNode(node, "DebuggerStatement"); -}; - -pp.parseDoStatement = function (node) { - this.next(); - this.state.labels.push(loopLabel); - node.body = this.parseStatement(false); - this.state.labels.pop(); - this.expect(_tokenizerTypes.types._while); - node.test = this.parseParenExpression(); - this.eat(_tokenizerTypes.types.semi); - return this.finishNode(node, "DoWhileStatement"); -}; - -// Disambiguating between a `for` and a `for`/`in` or `for`/`of` -// loop is non-trivial. Basically, we have to parse the init `var` -// statement or expression, disallowing the `in` operator (see -// the second parameter to `parseExpression`), and then check -// whether the next token is `in` or `of`. When there is no init -// part (semicolon immediately after the opening parenthesis), it -// is a regular `for` loop. - -pp.parseForStatement = function (node) { - this.next(); - this.state.labels.push(loopLabel); - this.expect(_tokenizerTypes.types.parenL); - - if (this.match(_tokenizerTypes.types.semi)) { - return this.parseFor(node, null); - } - - if (this.match(_tokenizerTypes.types._var) || this.match(_tokenizerTypes.types._let) || this.match(_tokenizerTypes.types._const)) { - var _init = this.startNode(), - varKind = this.state.type; - this.next(); - this.parseVar(_init, true, varKind); - this.finishNode(_init, "VariableDeclaration"); - - if (this.match(_tokenizerTypes.types._in) || this.isContextual("of")) { - if (_init.declarations.length === 1 && !_init.declarations[0].init) { - return this.parseForIn(node, _init); - } - } - - return this.parseFor(node, _init); - } - - var refShorthandDefaultPos = { start: 0 }; - var init = this.parseExpression(true, refShorthandDefaultPos); - if (this.match(_tokenizerTypes.types._in) || this.isContextual("of")) { - this.toAssignable(init); - this.checkLVal(init); - return this.parseForIn(node, init); - } else if (refShorthandDefaultPos.start) { - this.unexpected(refShorthandDefaultPos.start); - } - return this.parseFor(node, init); -}; - -pp.parseFunctionStatement = function (node) { - this.next(); - return this.parseFunction(node, true); -}; - -pp.parseIfStatement = function (node) { - this.next(); - node.test = this.parseParenExpression(); - node.consequent = this.parseStatement(false); - node.alternate = this.eat(_tokenizerTypes.types._else) ? this.parseStatement(false) : null; - return this.finishNode(node, "IfStatement"); -}; - -pp.parseReturnStatement = function (node) { - if (!this.state.inFunction && !this.options.allowReturnOutsideFunction) { - this.raise(this.state.start, "'return' outside of function"); - } - - this.next(); - - // In `return` (and `break`/`continue`), the keywords with - // optional arguments, we eagerly look for a semicolon or the - // possibility to insert one. - - if (this.isLineTerminator()) { - node.argument = null; - } else { - node.argument = this.parseExpression(); - this.semicolon(); - } - - return this.finishNode(node, "ReturnStatement"); -}; - -pp.parseSwitchStatement = function (node) { - this.next(); - node.discriminant = this.parseParenExpression(); - node.cases = []; - this.expect(_tokenizerTypes.types.braceL); - this.state.labels.push(switchLabel); - - // Statements under must be grouped (by label) in SwitchCase - // nodes. `cur` is used to keep the node that we are currently - // adding statements to. - - var cur = undefined; - for (var sawDefault = undefined; !this.match(_tokenizerTypes.types.braceR);) { - if (this.match(_tokenizerTypes.types._case) || this.match(_tokenizerTypes.types._default)) { - var isCase = this.match(_tokenizerTypes.types._case); - if (cur) this.finishNode(cur, "SwitchCase"); - node.cases.push(cur = this.startNode()); - cur.consequent = []; - this.next(); - if (isCase) { - cur.test = this.parseExpression(); - } else { - if (sawDefault) this.raise(this.state.lastTokStart, "Multiple default clauses"); - sawDefault = true; - cur.test = null; - } - this.expect(_tokenizerTypes.types.colon); - } else { - if (cur) { - cur.consequent.push(this.parseStatement(true)); - } else { - this.unexpected(); - } - } - } - if (cur) this.finishNode(cur, "SwitchCase"); - this.next(); // Closing brace - this.state.labels.pop(); - return this.finishNode(node, "SwitchStatement"); -}; - -pp.parseThrowStatement = function (node) { - this.next(); - if (_utilWhitespace.lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start))) this.raise(this.state.lastTokEnd, "Illegal newline after throw"); - node.argument = this.parseExpression(); - this.semicolon(); - return this.finishNode(node, "ThrowStatement"); -}; - -// Reused empty array added for node fields that are always empty. - -var empty = []; - -pp.parseTryStatement = function (node) { - this.next(); - - node.block = this.parseBlock(); - node.handler = null; - - if (this.match(_tokenizerTypes.types._catch)) { - var clause = this.startNode(); - this.next(); - - this.expect(_tokenizerTypes.types.parenL); - clause.param = this.parseBindingAtom(); - this.checkLVal(clause.param, true, _Object$create(null)); - this.expect(_tokenizerTypes.types.parenR); - - clause.body = this.parseBlock(); - node.handler = this.finishNode(clause, "CatchClause"); - } - - node.guardedHandlers = empty; - node.finalizer = this.eat(_tokenizerTypes.types._finally) ? this.parseBlock() : null; - - if (!node.handler && !node.finalizer) { - this.raise(node.start, "Missing catch or finally clause"); - } - - return this.finishNode(node, "TryStatement"); -}; - -pp.parseVarStatement = function (node, kind) { - this.next(); - this.parseVar(node, false, kind); - this.semicolon(); - return this.finishNode(node, "VariableDeclaration"); -}; - -pp.parseWhileStatement = function (node) { - this.next(); - node.test = this.parseParenExpression(); - this.state.labels.push(loopLabel); - node.body = this.parseStatement(false); - this.state.labels.pop(); - return this.finishNode(node, "WhileStatement"); -}; - -pp.parseWithStatement = function (node) { - if (this.state.strict) this.raise(this.state.start, "'with' in strict mode"); - this.next(); - node.object = this.parseParenExpression(); - node.body = this.parseStatement(false); - return this.finishNode(node, "WithStatement"); -}; - -pp.parseEmptyStatement = function (node) { - this.next(); - return this.finishNode(node, "EmptyStatement"); -}; - -pp.parseLabeledStatement = function (node, maybeName, expr) { - for (var _iterator = (this.state.labels /*: Array*/), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _getIterator(_iterator);;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var label = _ref; - - if (label.name === maybeName) { - this.raise(expr.start, "Label '" + maybeName + "' is already declared"); - } - } - - var kind = this.state.type.isLoop ? "loop" : this.match(_tokenizerTypes.types._switch) ? "switch" : null; - for (var i = this.state.labels.length - 1; i >= 0; i--) { - var label = this.state.labels[i]; - if (label.statementStart === node.start) { - label.statementStart = this.state.start; - label.kind = kind; - } else { - break; - } - } - - this.state.labels.push({ name: maybeName, kind: kind, statementStart: this.state.start }); - node.body = this.parseStatement(true); - this.state.labels.pop(); - node.label = expr; - return this.finishNode(node, "LabeledStatement"); -}; - -pp.parseExpressionStatement = function (node, expr) { - node.expression = expr; - this.semicolon(); - return this.finishNode(node, "ExpressionStatement"); -}; - -// Parse a semicolon-enclosed block of statements, handling `"use -// strict"` declarations when `allowStrict` is true (used for -// function bodies). - -pp.parseBlock = function (allowDirectives /*:: ?*/) { - var node = this.startNode(); - this.expect(_tokenizerTypes.types.braceL); - this.parseBlockBody(node, allowDirectives, false, _tokenizerTypes.types.braceR); - return this.finishNode(node, "BlockStatement"); -}; - -// TODO - -pp.parseBlockBody = function (node, allowDirectives, topLevel, end) { - node.body = []; - node.directives = []; - - var parsedNonDirective = false; - var oldStrict = undefined; - var octalPosition = undefined; - - while (!this.eat(end)) { - if (allowDirectives && !parsedNonDirective && this.match(_tokenizerTypes.types.string)) { - var oldState = this.state; - var lookahead = this.lookahead(); - this.state = lookahead; - var isDirective = this.isLineTerminator(); - this.state = oldState; - - if (isDirective) { - if (this.state.containsOctal && !octalPosition) { - octalPosition = this.state.octalPosition; - } - - var stmt = this.parseDirective(); - node.directives.push(stmt); - - if (allowDirectives && stmt.value.value === "use strict") { - oldStrict = this.state.strict; - this.state.strict = true; - this.setStrict(true); - - if (octalPosition) { - this.raise(octalPosition, "Octal literal in strict mode"); - } - } - - continue; - } - } - - parsedNonDirective = true; - node.body.push(this.parseStatement(true, topLevel)); - } - - if (oldStrict === false) { - this.setStrict(false); - } -}; - -// Parse a regular `for` loop. The disambiguation code in -// `parseStatement` will already have parsed the init statement or -// expression. - -pp.parseFor = function (node, init) { - node.init = init; - this.expect(_tokenizerTypes.types.semi); - node.test = this.match(_tokenizerTypes.types.semi) ? null : this.parseExpression(); - this.expect(_tokenizerTypes.types.semi); - node.update = this.match(_tokenizerTypes.types.parenR) ? null : this.parseExpression(); - this.expect(_tokenizerTypes.types.parenR); - node.body = this.parseStatement(false); - this.state.labels.pop(); - return this.finishNode(node, "ForStatement"); -}; - -// Parse a `for`/`in` and `for`/`of` loop, which are almost -// same from parser's perspective. - -pp.parseForIn = function (node, init) { - var type = this.match(_tokenizerTypes.types._in) ? "ForInStatement" : "ForOfStatement"; - this.next(); - node.left = init; - node.right = this.parseExpression(); - this.expect(_tokenizerTypes.types.parenR); - node.body = this.parseStatement(false); - this.state.labels.pop(); - return this.finishNode(node, type); -}; - -// Parse a list of variable declarations. - -pp.parseVar = function (node, isFor, kind) { - node.declarations = []; - node.kind = kind.keyword; - for (;;) { - var decl = this.startNode(); - this.parseVarHead(decl); - if (this.eat(_tokenizerTypes.types.eq)) { - decl.init = this.parseMaybeAssign(isFor); - } else if (kind === _tokenizerTypes.types._const && !(this.match(_tokenizerTypes.types._in) || this.isContextual("of"))) { - this.unexpected(); - } else if (decl.id.type !== "Identifier" && !(isFor && (this.match(_tokenizerTypes.types._in) || this.isContextual("of")))) { - this.raise(this.state.lastTokEnd, "Complex binding patterns require an initialization value"); - } else { - decl.init = null; - } - node.declarations.push(this.finishNode(decl, "VariableDeclarator")); - if (!this.eat(_tokenizerTypes.types.comma)) break; - } - return node; -}; - -pp.parseVarHead = function (decl) { - decl.id = this.parseBindingAtom(); - this.checkLVal(decl.id, true); -}; - -// Parse a function declaration or literal (depending on the -// `isStatement` parameter). - -pp.parseFunction = function (node, isStatement, allowExpressionBody, isAsync, optionalId) { - var oldInMethod = this.state.inMethod; - this.state.inMethod = false; - - this.initFunction(node, isAsync); - - if (this.match(_tokenizerTypes.types.star)) { - if (node.async && !this.hasPlugin("asyncGenerators")) { - this.unexpected(); - } else { - node.generator = true; - this.next(); - } - } - - if (isStatement && !optionalId && !this.match(_tokenizerTypes.types.name) && !this.match(_tokenizerTypes.types._yield)) { - this.unexpected(); - } - - if (this.match(_tokenizerTypes.types.name) || this.match(_tokenizerTypes.types._yield)) { - node.id = this.parseBindingIdentifier(); - } - - this.parseFunctionParams(node); - this.parseFunctionBody(node, allowExpressionBody); - - this.state.inMethod = oldInMethod; - - return this.finishNode(node, isStatement ? "FunctionDeclaration" : "FunctionExpression"); -}; - -pp.parseFunctionParams = function (node) { - this.expect(_tokenizerTypes.types.parenL); - node.params = this.parseBindingList(_tokenizerTypes.types.parenR, false, this.hasPlugin("trailingFunctionCommas")); -}; - -// Parse a class declaration or literal (depending on the -// `isStatement` parameter). - -pp.parseClass = function (node, isStatement, optionalId) { - this.next(); - this.parseClassId(node, isStatement, optionalId); - this.parseClassSuper(node); - this.parseClassBody(node); - return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression"); -}; - -pp.isClassProperty = function () { - return this.match(_tokenizerTypes.types.eq) || this.isLineTerminator(); -}; - -pp.parseClassBody = function (node) { - // class bodies are implicitly strict - var oldStrict = this.state.strict; - this.state.strict = true; - - var hadConstructorCall = false; - var hadConstructor = false; - var decorators = []; - var classBody = this.startNode(); - - classBody.body = []; - - this.expect(_tokenizerTypes.types.braceL); - - while (!this.eat(_tokenizerTypes.types.braceR)) { - if (this.eat(_tokenizerTypes.types.semi)) { - continue; - } - - if (this.match(_tokenizerTypes.types.at)) { - decorators.push(this.parseDecorator()); - continue; - } - - var method = this.startNode(); - - // steal the decorators if there are any - if (decorators.length) { - method.decorators = decorators; - decorators = []; - } - - var isConstructorCall = false; - var isMaybeStatic = this.match(_tokenizerTypes.types.name) && this.state.value === "static"; - var isGenerator = this.eat(_tokenizerTypes.types.star); - var isGetSet = false; - var isAsync = false; - - this.parsePropertyName(method); - - method["static"] = isMaybeStatic && !this.match(_tokenizerTypes.types.parenL); - if (method["static"]) { - if (isGenerator) this.unexpected(); - isGenerator = this.eat(_tokenizerTypes.types.star); - this.parsePropertyName(method); - } - - if (!isGenerator && method.key.type === "Identifier" && !method.computed) { - if (this.isClassProperty()) { - classBody.body.push(this.parseClassProperty(method)); - continue; - } - - if (this.hasPlugin("classConstructorCall") && method.key.name === "call" && this.match(_tokenizerTypes.types.name) && this.state.value === "constructor") { - isConstructorCall = true; - this.parsePropertyName(method); - } - } - - var isAsyncMethod = this.hasPlugin("asyncFunctions") && !this.match(_tokenizerTypes.types.parenL) && !method.computed && method.key.type === "Identifier" && method.key.name === "async"; - if (isAsyncMethod) { - if (this.hasPlugin("asyncGenerators") && this.eat(_tokenizerTypes.types.star)) isGenerator = true; - isAsync = true; - this.parsePropertyName(method); - } - - method.kind = "method"; - - if (!method.computed) { - var key = method.key; - - // handle get/set methods - // eg. class Foo { get bar() {} set bar() {} } - if (!isAsync && !isGenerator && key.type === "Identifier" && !this.match(_tokenizerTypes.types.parenL) && (key.name === "get" || key.name === "set")) { - isGetSet = true; - method.kind = key.name; - key = this.parsePropertyName(method); - } - - // disallow invalid constructors - var isConstructor = !isConstructorCall && !method["static"] && (key.type === "Identifier" && key.name === "constructor" || key.type === "StringLiteral" && key.value === "constructor"); - if (isConstructor) { - if (hadConstructor) this.raise(key.start, "Duplicate constructor in the same class"); - if (isGetSet) this.raise(key.start, "Constructor can't have get/set modifier"); - if (isGenerator) this.raise(key.start, "Constructor can't be a generator"); - if (isAsync) this.raise(key.start, "Constructor can't be an async function"); - method.kind = "constructor"; - hadConstructor = true; - } - - // disallow static prototype method - var isStaticPrototype = method["static"] && (key.type === "Identifier" && key.name === "prototype" || key.type === "StringLiteral" && key.value === "prototype"); - if (isStaticPrototype) { - this.raise(key.start, "Classes may not have static property named prototype"); - } - } - - // convert constructor to a constructor call - if (isConstructorCall) { - if (hadConstructorCall) this.raise(method.start, "Duplicate constructor call in the same class"); - method.kind = "constructorCall"; - hadConstructorCall = true; - } - - // disallow decorators on class constructors - if ((method.kind === "constructor" || method.kind === "constructorCall") && method.decorators) { - this.raise(method.start, "You can't attach decorators to a class constructor"); - } - - this.parseClassMethod(classBody, method, isGenerator, isAsync); - - // get methods aren't allowed to have any parameters - // set methods must have exactly 1 parameter - if (isGetSet) { - var paramCount = method.kind === "get" ? 0 : 1; - if (method.params.length !== paramCount) { - var start = method.start; - if (method.kind === "get") { - this.raise(start, "getter should have no params"); - } else { - this.raise(start, "setter should have exactly one param"); - } - } - } - } - - if (decorators.length) { - this.raise(this.state.start, "You have trailing decorators with no method"); - } - - node.body = this.finishNode(classBody, "ClassBody"); - - this.state.strict = oldStrict; -}; - -pp.parseClassProperty = function (node) { - if (this.match(_tokenizerTypes.types.eq)) { - if (!this.hasPlugin("classProperties")) this.unexpected(); - this.next(); - node.value = this.parseMaybeAssign(); - } else { - node.value = null; - } - this.semicolon(); - return this.finishNode(node, "ClassProperty"); -}; - -pp.parseClassMethod = function (classBody, method, isGenerator, isAsync) { - this.parseMethod(method, isGenerator, isAsync); - classBody.body.push(this.finishNode(method, "ClassMethod")); -}; - -pp.parseClassId = function (node, isStatement, optionalId) { - if (this.match(_tokenizerTypes.types.name)) { - node.id = this.parseIdentifier(); - } else { - if (optionalId || !isStatement) { - node.id = null; - } else { - this.unexpected(); - } - } -}; - -pp.parseClassSuper = function (node) { - node.superClass = this.eat(_tokenizerTypes.types._extends) ? this.parseExprSubscripts() : null; -}; - -// Parses module export declaration. - -pp.parseExport = function (node) { - this.next(); - // export * from '...' - if (this.match(_tokenizerTypes.types.star)) { - var specifier = this.startNode(); - this.next(); - if (this.hasPlugin("exportExtensions") && this.eatContextual("as")) { - specifier.exported = this.parseIdentifier(); - node.specifiers = [this.finishNode(specifier, "ExportNamespaceSpecifier")]; - this.parseExportSpecifiersMaybe(node); - this.parseExportFrom(node, true); - } else { - this.parseExportFrom(node, true); - return this.finishNode(node, "ExportAllDeclaration"); - } - } else if (this.hasPlugin("exportExtensions") && this.isExportDefaultSpecifier()) { - var specifier = this.startNode(); - specifier.exported = this.parseIdentifier(true); - node.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")]; - if (this.match(_tokenizerTypes.types.comma) && this.lookahead().type === _tokenizerTypes.types.star) { - this.expect(_tokenizerTypes.types.comma); - var _specifier = this.startNode(); - this.expect(_tokenizerTypes.types.star); - this.expectContextual("as"); - _specifier.exported = this.parseIdentifier(); - node.specifiers.push(this.finishNode(_specifier, "ExportNamespaceSpecifier")); - } else { - this.parseExportSpecifiersMaybe(node); - } - this.parseExportFrom(node, true); - } else if (this.eat(_tokenizerTypes.types._default)) { - // export default ... - var expr = this.startNode(); - var needsSemi = false; - if (this.eat(_tokenizerTypes.types._function)) { - expr = this.parseFunction(expr, true, false, false, true); - } else if (this.match(_tokenizerTypes.types._class)) { - expr = this.parseClass(expr, true, true); - } else { - needsSemi = true; - expr = this.parseMaybeAssign(); - } - node.declaration = expr; - if (needsSemi) this.semicolon(); - this.checkExport(node); - return this.finishNode(node, "ExportDefaultDeclaration"); - } else if (this.state.type.keyword || this.shouldParseExportDeclaration()) { - node.specifiers = []; - node.source = null; - node.declaration = this.parseExportDeclaration(node); - } else { - // export { x, y as z } [from '...'] - node.declaration = null; - node.specifiers = this.parseExportSpecifiers(); - this.parseExportFrom(node); - } - this.checkExport(node); - return this.finishNode(node, "ExportNamedDeclaration"); -}; - -pp.parseExportDeclaration = function () { - return this.parseStatement(true); -}; - -pp.isExportDefaultSpecifier = function () { - if (this.match(_tokenizerTypes.types.name)) { - return this.state.value !== "type" && this.state.value !== "async"; - } - - if (!this.match(_tokenizerTypes.types._default)) { - return false; - } - - var lookahead = this.lookahead(); - return lookahead.type === _tokenizerTypes.types.comma || lookahead.type === _tokenizerTypes.types.name && lookahead.value === "from"; -}; - -pp.parseExportSpecifiersMaybe = function (node) { - if (this.eat(_tokenizerTypes.types.comma)) { - node.specifiers = node.specifiers.concat(this.parseExportSpecifiers()); - } -}; - -pp.parseExportFrom = function (node, expect /*:: ?*/) { - if (this.eatContextual("from")) { - node.source = this.match(_tokenizerTypes.types.string) ? this.parseExprAtom() : this.unexpected(); - this.checkExport(node); - } else { - if (expect) { - this.unexpected(); - } else { - node.source = null; - } - } - - this.semicolon(); -}; - -pp.shouldParseExportDeclaration = function () { - return this.hasPlugin("asyncFunctions") && this.isContextual("async"); -}; - -pp.checkExport = function (node) { - if (this.state.decorators.length) { - var isClass = node.declaration && (node.declaration.type === "ClassDeclaration" || node.declaration.type === "ClassExpression"); - if (!node.declaration || !isClass) { - this.raise(node.start, "You can only use decorators on an export when exporting a class"); - } - this.takeDecorators(node.declaration); - } -}; - -// Parses a comma-separated list of module exports. - -pp.parseExportSpecifiers = function () { - var nodes = []; - var first = true; - var needsFrom = undefined; - - // export { x, y as z } [from '...'] - this.expect(_tokenizerTypes.types.braceL); - - while (!this.eat(_tokenizerTypes.types.braceR)) { - if (first) { - first = false; - } else { - this.expect(_tokenizerTypes.types.comma); - if (this.eat(_tokenizerTypes.types.braceR)) break; - } - - var isDefault = this.match(_tokenizerTypes.types._default); - if (isDefault && !needsFrom) needsFrom = true; - - var node = this.startNode(); - node.local = this.parseIdentifier(isDefault); - node.exported = this.eatContextual("as") ? this.parseIdentifier(true) : node.local.__clone(); - nodes.push(this.finishNode(node, "ExportSpecifier")); - } - - // https://github.com/ember-cli/ember-cli/pull/3739 - if (needsFrom && !this.isContextual("from")) { - this.unexpected(); - } - - return nodes; -}; - -// Parses import declaration. - -pp.parseImport = function (node) { - this.next(); - - // import '...' - if (this.match(_tokenizerTypes.types.string)) { - node.specifiers = []; - node.source = this.parseExprAtom(); - } else { - node.specifiers = []; - this.parseImportSpecifiers(node); - this.expectContextual("from"); - node.source = this.match(_tokenizerTypes.types.string) ? this.parseExprAtom() : this.unexpected(); - } - this.semicolon(); - return this.finishNode(node, "ImportDeclaration"); -}; - -// Parses a comma-separated list of module imports. - -pp.parseImportSpecifiers = function (node) { - var first = true; - if (this.match(_tokenizerTypes.types.name)) { - // import defaultObj, { x, y as z } from '...' - var startPos = this.state.start, - startLoc = this.state.startLoc; - node.specifiers.push(this.parseImportSpecifierDefault(this.parseIdentifier(), startPos, startLoc)); - if (!this.eat(_tokenizerTypes.types.comma)) return; - } - - if (this.match(_tokenizerTypes.types.star)) { - var specifier = this.startNode(); - this.next(); - this.expectContextual("as"); - specifier.local = this.parseIdentifier(); - this.checkLVal(specifier.local, true); - node.specifiers.push(this.finishNode(specifier, "ImportNamespaceSpecifier")); - return; - } - - this.expect(_tokenizerTypes.types.braceL); - while (!this.eat(_tokenizerTypes.types.braceR)) { - if (first) { - first = false; - } else { - this.expect(_tokenizerTypes.types.comma); - if (this.eat(_tokenizerTypes.types.braceR)) break; - } - - var specifier = this.startNode(); - specifier.imported = this.parseIdentifier(true); - specifier.local = this.eatContextual("as") ? this.parseIdentifier() : specifier.imported.__clone(); - this.checkLVal(specifier.local, true); - node.specifiers.push(this.finishNode(specifier, "ImportSpecifier")); - } -}; - -pp.parseImportSpecifierDefault = function (id, startPos, startLoc) { - var node = this.startNodeAt(startPos, startLoc); - node.local = id; - this.checkLVal(node.local, true); - return this.finishNode(node, "ImportDefaultSpecifier"); -}; \ No newline at end of file diff --git a/js/node_modules/babylon/lib/parser/util.js b/js/node_modules/babylon/lib/parser/util.js deleted file mode 100644 index b7114dc..0000000 --- a/js/node_modules/babylon/lib/parser/util.js +++ /dev/null @@ -1,92 +0,0 @@ -/* @flow */ - -"use strict"; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _tokenizerTypes = require("../tokenizer/types"); - -var _index = require("./index"); - -var _index2 = _interopRequireDefault(_index); - -var _utilWhitespace = require("../util/whitespace"); - -var pp = _index2["default"].prototype; - -// ## Parser utilities - -// TODO - -pp.addExtra = function (node, key, val) { - if (!node) return; - - var extra = node.extra = node.extra || {}; - extra[key] = val; -}; - -// TODO - -pp.isRelational = function (op) { - return this.match(_tokenizerTypes.types.relational) && this.state.value === op; -}; - -// TODO - -pp.expectRelational = function (op) { - if (this.isRelational(op)) { - this.next(); - } else { - this.unexpected(); - } -}; - -// Tests whether parsed token is a contextual keyword. - -pp.isContextual = function (name) { - return this.match(_tokenizerTypes.types.name) && this.state.value === name; -}; - -// Consumes contextual keyword if possible. - -pp.eatContextual = function (name) { - return this.state.value === name && this.eat(_tokenizerTypes.types.name); -}; - -// Asserts that following token is given contextual keyword. - -pp.expectContextual = function (name) { - if (!this.eatContextual(name)) this.unexpected(); -}; - -// Test whether a semicolon can be inserted at the current position. - -pp.canInsertSemicolon = function () { - return this.match(_tokenizerTypes.types.eof) || this.match(_tokenizerTypes.types.braceR) || _utilWhitespace.lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start)); -}; - -// TODO - -pp.isLineTerminator = function () { - return this.eat(_tokenizerTypes.types.semi) || this.canInsertSemicolon(); -}; - -// Consume a semicolon, or, failing that, see if we are allowed to -// pretend that there is a semicolon at this position. - -pp.semicolon = function () { - if (!this.isLineTerminator()) this.unexpected(); -}; - -// Expect a token of a given type. If found, consume it, otherwise, -// raise an unexpected token error. - -pp.expect = function (type) { - return this.eat(type) || this.unexpected(); -}; - -// Raise an unexpected token error. - -pp.unexpected = function (pos) { - this.raise(pos != null ? pos : this.state.start, "Unexpected token"); -}; \ No newline at end of file diff --git a/js/node_modules/babylon/lib/plugins/flow.js b/js/node_modules/babylon/lib/plugins/flow.js deleted file mode 100644 index 488a7ac..0000000 --- a/js/node_modules/babylon/lib/plugins/flow.js +++ /dev/null @@ -1,1016 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -exports.__esModule = true; - -var _tokenizerTypes = require("../tokenizer/types"); - -var _parser = require("../parser"); - -var _parser2 = _interopRequireDefault(_parser); - -var pp = _parser2["default"].prototype; - -pp.flowParseTypeInitialiser = function (tok) { - var oldInType = this.state.inType; - this.state.inType = true; - this.expect(tok || _tokenizerTypes.types.colon); - var type = this.flowParseType(); - this.state.inType = oldInType; - return type; -}; - -pp.flowParseDeclareClass = function (node) { - this.next(); - this.flowParseInterfaceish(node, true); - return this.finishNode(node, "DeclareClass"); -}; - -pp.flowParseDeclareFunction = function (node) { - this.next(); - - var id = node.id = this.parseIdentifier(); - - var typeNode = this.startNode(); - var typeContainer = this.startNode(); - - if (this.isRelational("<")) { - typeNode.typeParameters = this.flowParseTypeParameterDeclaration(); - } else { - typeNode.typeParameters = null; - } - - this.expect(_tokenizerTypes.types.parenL); - var tmp = this.flowParseFunctionTypeParams(); - typeNode.params = tmp.params; - typeNode.rest = tmp.rest; - this.expect(_tokenizerTypes.types.parenR); - typeNode.returnType = this.flowParseTypeInitialiser(); - - typeContainer.typeAnnotation = this.finishNode(typeNode, "FunctionTypeAnnotation"); - id.typeAnnotation = this.finishNode(typeContainer, "TypeAnnotation"); - - this.finishNode(id, id.type); - - this.semicolon(); - - return this.finishNode(node, "DeclareFunction"); -}; - -pp.flowParseDeclare = function (node) { - if (this.match(_tokenizerTypes.types._class)) { - return this.flowParseDeclareClass(node); - } else if (this.match(_tokenizerTypes.types._function)) { - return this.flowParseDeclareFunction(node); - } else if (this.match(_tokenizerTypes.types._var)) { - return this.flowParseDeclareVariable(node); - } else if (this.isContextual("module")) { - return this.flowParseDeclareModule(node); - } else { - this.unexpected(); - } -}; - -pp.flowParseDeclareVariable = function (node) { - this.next(); - node.id = this.flowParseTypeAnnotatableIdentifier(); - this.semicolon(); - return this.finishNode(node, "DeclareVariable"); -}; - -pp.flowParseDeclareModule = function (node) { - this.next(); - - if (this.match(_tokenizerTypes.types.string)) { - node.id = this.parseExprAtom(); - } else { - node.id = this.parseIdentifier(); - } - - var bodyNode = node.body = this.startNode(); - var body = bodyNode.body = []; - this.expect(_tokenizerTypes.types.braceL); - while (!this.match(_tokenizerTypes.types.braceR)) { - var node2 = this.startNode(); - - // todo: declare check - this.next(); - - body.push(this.flowParseDeclare(node2)); - } - this.expect(_tokenizerTypes.types.braceR); - - this.finishNode(bodyNode, "BlockStatement"); - return this.finishNode(node, "DeclareModule"); -}; - -// Interfaces - -pp.flowParseInterfaceish = function (node, allowStatic) { - node.id = this.parseIdentifier(); - - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } else { - node.typeParameters = null; - } - - node["extends"] = []; - - if (this.eat(_tokenizerTypes.types._extends)) { - do { - node["extends"].push(this.flowParseInterfaceExtends()); - } while (this.eat(_tokenizerTypes.types.comma)); - } - - node.body = this.flowParseObjectType(allowStatic); -}; - -pp.flowParseInterfaceExtends = function () { - var node = this.startNode(); - - node.id = this.parseIdentifier(); - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterInstantiation(); - } else { - node.typeParameters = null; - } - - return this.finishNode(node, "InterfaceExtends"); -}; - -pp.flowParseInterface = function (node) { - this.flowParseInterfaceish(node, false); - return this.finishNode(node, "InterfaceDeclaration"); -}; - -// Type aliases - -pp.flowParseTypeAlias = function (node) { - node.id = this.parseIdentifier(); - - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } else { - node.typeParameters = null; - } - - node.right = this.flowParseTypeInitialiser(_tokenizerTypes.types.eq); - this.semicolon(); - - return this.finishNode(node, "TypeAlias"); -}; - -// Type annotations - -pp.flowParseTypeParameterDeclaration = function () { - var node = this.startNode(); - node.params = []; - - this.expectRelational("<"); - while (!this.isRelational(">")) { - node.params.push(this.flowParseExistentialTypeParam() || this.flowParseTypeAnnotatableIdentifier()); - if (!this.isRelational(">")) { - this.expect(_tokenizerTypes.types.comma); - } - } - this.expectRelational(">"); - - return this.finishNode(node, "TypeParameterDeclaration"); -}; - -pp.flowParseExistentialTypeParam = function () { - if (this.match(_tokenizerTypes.types.star)) { - var node = this.startNode(); - this.next(); - return this.finishNode(node, "ExistentialTypeParam"); - } -}; - -pp.flowParseTypeParameterInstantiation = function () { - var node = this.startNode(), - oldInType = this.state.inType; - node.params = []; - - this.state.inType = true; - - this.expectRelational("<"); - while (!this.isRelational(">")) { - node.params.push(this.flowParseExistentialTypeParam() || this.flowParseType()); - if (!this.isRelational(">")) { - this.expect(_tokenizerTypes.types.comma); - } - } - this.expectRelational(">"); - - this.state.inType = oldInType; - - return this.finishNode(node, "TypeParameterInstantiation"); -}; - -pp.flowParseObjectPropertyKey = function () { - return this.match(_tokenizerTypes.types.num) || this.match(_tokenizerTypes.types.string) ? this.parseExprAtom() : this.parseIdentifier(true); -}; - -pp.flowParseObjectTypeIndexer = function (node, isStatic) { - node["static"] = isStatic; - - this.expect(_tokenizerTypes.types.bracketL); - node.id = this.flowParseObjectPropertyKey(); - node.key = this.flowParseTypeInitialiser(); - this.expect(_tokenizerTypes.types.bracketR); - node.value = this.flowParseTypeInitialiser(); - - this.flowObjectTypeSemicolon(); - return this.finishNode(node, "ObjectTypeIndexer"); -}; - -pp.flowParseObjectTypeMethodish = function (node) { - node.params = []; - node.rest = null; - node.typeParameters = null; - - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } - - this.expect(_tokenizerTypes.types.parenL); - while (this.match(_tokenizerTypes.types.name)) { - node.params.push(this.flowParseFunctionTypeParam()); - if (!this.match(_tokenizerTypes.types.parenR)) { - this.expect(_tokenizerTypes.types.comma); - } - } - - if (this.eat(_tokenizerTypes.types.ellipsis)) { - node.rest = this.flowParseFunctionTypeParam(); - } - this.expect(_tokenizerTypes.types.parenR); - node.returnType = this.flowParseTypeInitialiser(); - - return this.finishNode(node, "FunctionTypeAnnotation"); -}; - -pp.flowParseObjectTypeMethod = function (startPos, startLoc, isStatic, key) { - var node = this.startNodeAt(startPos, startLoc); - node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(startPos, startLoc)); - node["static"] = isStatic; - node.key = key; - node.optional = false; - this.flowObjectTypeSemicolon(); - return this.finishNode(node, "ObjectTypeProperty"); -}; - -pp.flowParseObjectTypeCallProperty = function (node, isStatic) { - var valueNode = this.startNode(); - node["static"] = isStatic; - node.value = this.flowParseObjectTypeMethodish(valueNode); - this.flowObjectTypeSemicolon(); - return this.finishNode(node, "ObjectTypeCallProperty"); -}; - -pp.flowParseObjectType = function (allowStatic) { - var nodeStart = this.startNode(); - var node = undefined; - var propertyKey = undefined; - var isStatic = undefined; - - nodeStart.callProperties = []; - nodeStart.properties = []; - nodeStart.indexers = []; - - this.expect(_tokenizerTypes.types.braceL); - - while (!this.match(_tokenizerTypes.types.braceR)) { - var optional = false; - var startPos = this.state.start, - startLoc = this.state.startLoc; - node = this.startNode(); - if (allowStatic && this.isContextual("static")) { - this.next(); - isStatic = true; - } - - if (this.match(_tokenizerTypes.types.bracketL)) { - nodeStart.indexers.push(this.flowParseObjectTypeIndexer(node, isStatic)); - } else if (this.match(_tokenizerTypes.types.parenL) || this.isRelational("<")) { - nodeStart.callProperties.push(this.flowParseObjectTypeCallProperty(node, allowStatic)); - } else { - if (isStatic && this.match(_tokenizerTypes.types.colon)) { - propertyKey = this.parseIdentifier(); - } else { - propertyKey = this.flowParseObjectPropertyKey(); - } - if (this.isRelational("<") || this.match(_tokenizerTypes.types.parenL)) { - // This is a method property - nodeStart.properties.push(this.flowParseObjectTypeMethod(startPos, startLoc, isStatic, propertyKey)); - } else { - if (this.eat(_tokenizerTypes.types.question)) { - optional = true; - } - node.key = propertyKey; - node.value = this.flowParseTypeInitialiser(); - node.optional = optional; - node["static"] = isStatic; - this.flowObjectTypeSemicolon(); - nodeStart.properties.push(this.finishNode(node, "ObjectTypeProperty")); - } - } - } - - this.expect(_tokenizerTypes.types.braceR); - - return this.finishNode(nodeStart, "ObjectTypeAnnotation"); -}; - -pp.flowObjectTypeSemicolon = function () { - if (!this.eat(_tokenizerTypes.types.semi) && !this.eat(_tokenizerTypes.types.comma) && !this.match(_tokenizerTypes.types.braceR)) { - this.unexpected(); - } -}; - -pp.flowParseGenericType = function (startPos, startLoc, id) { - var node = this.startNodeAt(startPos, startLoc); - - node.typeParameters = null; - node.id = id; - - while (this.eat(_tokenizerTypes.types.dot)) { - var node2 = this.startNodeAt(startPos, startLoc); - node2.qualification = node.id; - node2.id = this.parseIdentifier(); - node.id = this.finishNode(node2, "QualifiedTypeIdentifier"); - } - - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterInstantiation(); - } - - return this.finishNode(node, "GenericTypeAnnotation"); -}; - -pp.flowParseTypeofType = function () { - var node = this.startNode(); - this.expect(_tokenizerTypes.types._typeof); - node.argument = this.flowParsePrimaryType(); - return this.finishNode(node, "TypeofTypeAnnotation"); -}; - -pp.flowParseTupleType = function () { - var node = this.startNode(); - node.types = []; - this.expect(_tokenizerTypes.types.bracketL); - // We allow trailing commas - while (this.state.pos < this.input.length && !this.match(_tokenizerTypes.types.bracketR)) { - node.types.push(this.flowParseType()); - if (this.match(_tokenizerTypes.types.bracketR)) break; - this.expect(_tokenizerTypes.types.comma); - } - this.expect(_tokenizerTypes.types.bracketR); - return this.finishNode(node, "TupleTypeAnnotation"); -}; - -pp.flowParseFunctionTypeParam = function () { - var optional = false; - var node = this.startNode(); - node.name = this.parseIdentifier(); - if (this.eat(_tokenizerTypes.types.question)) { - optional = true; - } - node.optional = optional; - node.typeAnnotation = this.flowParseTypeInitialiser(); - return this.finishNode(node, "FunctionTypeParam"); -}; - -pp.flowParseFunctionTypeParams = function () { - var ret = { params: [], rest: null }; - while (this.match(_tokenizerTypes.types.name)) { - ret.params.push(this.flowParseFunctionTypeParam()); - if (!this.match(_tokenizerTypes.types.parenR)) { - this.expect(_tokenizerTypes.types.comma); - } - } - if (this.eat(_tokenizerTypes.types.ellipsis)) { - ret.rest = this.flowParseFunctionTypeParam(); - } - return ret; -}; - -pp.flowIdentToTypeAnnotation = function (startPos, startLoc, node, id) { - switch (id.name) { - case "any": - return this.finishNode(node, "AnyTypeAnnotation"); - - case "void": - return this.finishNode(node, "VoidTypeAnnotation"); - - case "bool": - case "boolean": - return this.finishNode(node, "BooleanTypeAnnotation"); - - case "mixed": - return this.finishNode(node, "MixedTypeAnnotation"); - - case "number": - return this.finishNode(node, "NumberTypeAnnotation"); - - case "string": - return this.finishNode(node, "StringTypeAnnotation"); - - default: - return this.flowParseGenericType(startPos, startLoc, id); - } -}; - -// The parsing of types roughly parallels the parsing of expressions, and -// primary types are kind of like primary expressions...they're the -// primitives with which other types are constructed. -pp.flowParsePrimaryType = function () { - var startPos = this.state.start, - startLoc = this.state.startLoc; - var node = this.startNode(); - var tmp = undefined; - var type = undefined; - var isGroupedType = false; - - switch (this.state.type) { - case _tokenizerTypes.types.name: - return this.flowIdentToTypeAnnotation(startPos, startLoc, node, this.parseIdentifier()); - - case _tokenizerTypes.types.braceL: - return this.flowParseObjectType(); - - case _tokenizerTypes.types.bracketL: - return this.flowParseTupleType(); - - case _tokenizerTypes.types.relational: - if (this.state.value === "<") { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - this.expect(_tokenizerTypes.types.parenL); - tmp = this.flowParseFunctionTypeParams(); - node.params = tmp.params; - node.rest = tmp.rest; - this.expect(_tokenizerTypes.types.parenR); - - this.expect(_tokenizerTypes.types.arrow); - - node.returnType = this.flowParseType(); - - return this.finishNode(node, "FunctionTypeAnnotation"); - } - - case _tokenizerTypes.types.parenL: - this.next(); - - // Check to see if this is actually a grouped type - if (!this.match(_tokenizerTypes.types.parenR) && !this.match(_tokenizerTypes.types.ellipsis)) { - if (this.match(_tokenizerTypes.types.name)) { - var token = this.lookahead().type; - isGroupedType = token !== _tokenizerTypes.types.question && token !== _tokenizerTypes.types.colon; - } else { - isGroupedType = true; - } - } - - if (isGroupedType) { - type = this.flowParseType(); - this.expect(_tokenizerTypes.types.parenR); - - // If we see a => next then someone was probably confused about - // function types, so we can provide a better error message - if (this.eat(_tokenizerTypes.types.arrow)) { - this.raise(node, "Unexpected token =>. It looks like " + "you are trying to write a function type, but you ended up " + "writing a grouped type followed by an =>, which is a syntax " + "error. Remember, function type parameters are named so function " + "types look like (name1: type1, name2: type2) => returnType. You " + "probably wrote (type1) => returnType"); - } - - return type; - } - - tmp = this.flowParseFunctionTypeParams(); - node.params = tmp.params; - node.rest = tmp.rest; - - this.expect(_tokenizerTypes.types.parenR); - - this.expect(_tokenizerTypes.types.arrow); - - node.returnType = this.flowParseType(); - node.typeParameters = null; - - return this.finishNode(node, "FunctionTypeAnnotation"); - - case _tokenizerTypes.types.string: - node.value = this.state.value; - this.addExtra(node, "rawValue", node.value); - this.addExtra(node, "raw", this.input.slice(this.state.start, this.state.end)); - this.next(); - return this.finishNode(node, "StringLiteralTypeAnnotation"); - - case _tokenizerTypes.types._true:case _tokenizerTypes.types._false: - node.value = this.match(_tokenizerTypes.types._true); - this.next(); - return this.finishNode(node, "BooleanLiteralTypeAnnotation"); - - case _tokenizerTypes.types.num: - node.value = this.state.value; - this.addExtra(node, "rawValue", node.value); - this.addExtra(node, "raw", this.input.slice(this.state.start, this.state.end)); - this.next(); - return this.finishNode(node, "NumericLiteralTypeAnnotation"); - - default: - if (this.state.type.keyword === "typeof") { - return this.flowParseTypeofType(); - } - } - - this.unexpected(); -}; - -pp.flowParsePostfixType = function () { - var node = this.startNode(); - var type = node.elementType = this.flowParsePrimaryType(); - if (this.match(_tokenizerTypes.types.bracketL)) { - this.expect(_tokenizerTypes.types.bracketL); - this.expect(_tokenizerTypes.types.bracketR); - return this.finishNode(node, "ArrayTypeAnnotation"); - } else { - return type; - } -}; - -pp.flowParsePrefixType = function () { - var node = this.startNode(); - if (this.eat(_tokenizerTypes.types.question)) { - node.typeAnnotation = this.flowParsePrefixType(); - return this.finishNode(node, "NullableTypeAnnotation"); - } else { - return this.flowParsePostfixType(); - } -}; - -pp.flowParseIntersectionType = function () { - var node = this.startNode(); - var type = this.flowParsePrefixType(); - node.types = [type]; - while (this.eat(_tokenizerTypes.types.bitwiseAND)) { - node.types.push(this.flowParsePrefixType()); - } - return node.types.length === 1 ? type : this.finishNode(node, "IntersectionTypeAnnotation"); -}; - -pp.flowParseUnionType = function () { - var node = this.startNode(); - var type = this.flowParseIntersectionType(); - node.types = [type]; - while (this.eat(_tokenizerTypes.types.bitwiseOR)) { - node.types.push(this.flowParseIntersectionType()); - } - return node.types.length === 1 ? type : this.finishNode(node, "UnionTypeAnnotation"); -}; - -pp.flowParseType = function () { - var oldInType = this.state.inType; - this.state.inType = true; - var type = this.flowParseUnionType(); - this.state.inType = oldInType; - return type; -}; - -pp.flowParseTypeAnnotation = function () { - var node = this.startNode(); - node.typeAnnotation = this.flowParseTypeInitialiser(); - return this.finishNode(node, "TypeAnnotation"); -}; - -pp.flowParseTypeAnnotatableIdentifier = function (requireTypeAnnotation, canBeOptionalParam) { - var ident = this.parseIdentifier(); - var isOptionalParam = false; - - if (canBeOptionalParam && this.eat(_tokenizerTypes.types.question)) { - this.expect(_tokenizerTypes.types.question); - isOptionalParam = true; - } - - if (requireTypeAnnotation || this.match(_tokenizerTypes.types.colon)) { - ident.typeAnnotation = this.flowParseTypeAnnotation(); - this.finishNode(ident, ident.type); - } - - if (isOptionalParam) { - ident.optional = true; - this.finishNode(ident, ident.type); - } - - return ident; -}; - -exports["default"] = function (instance) { - // plain function return types: function name(): string {} - instance.extend("parseFunctionBody", function (inner) { - return function (node, allowExpression) { - if (this.match(_tokenizerTypes.types.colon) && !allowExpression) { - // if allowExpression is true then we're parsing an arrow function and if - // there's a return type then it's been handled elsewhere - node.returnType = this.flowParseTypeAnnotation(); - } - - return inner.call(this, node, allowExpression); - }; - }); - - // interfaces - instance.extend("parseStatement", function (inner) { - return function (declaration, topLevel) { - // strict mode handling of `interface` since it's a reserved word - if (this.state.strict && this.match(_tokenizerTypes.types.name) && this.state.value === "interface") { - var node = this.startNode(); - this.next(); - return this.flowParseInterface(node); - } else { - return inner.call(this, declaration, topLevel); - } - }; - }); - - // declares, interfaces and type aliases - instance.extend("parseExpressionStatement", function (inner) { - return function (node, expr) { - if (expr.type === "Identifier") { - if (expr.name === "declare") { - if (this.match(_tokenizerTypes.types._class) || this.match(_tokenizerTypes.types.name) || this.match(_tokenizerTypes.types._function) || this.match(_tokenizerTypes.types._var)) { - return this.flowParseDeclare(node); - } - } else if (this.match(_tokenizerTypes.types.name)) { - if (expr.name === "interface") { - return this.flowParseInterface(node); - } else if (expr.name === "type") { - return this.flowParseTypeAlias(node); - } - } - } - - return inner.call(this, node, expr); - }; - }); - - // export type - instance.extend("shouldParseExportDeclaration", function (inner) { - return function () { - return this.isContextual("type") || inner.call(this); - }; - }); - - instance.extend("parseParenItem", function () { - return function (node, startLoc, startPos, forceArrow /*:: ?*/) { - var canBeArrow = this.state.potentialArrowAt = startPos; - if (this.match(_tokenizerTypes.types.colon)) { - var typeCastNode = this.startNodeAt(startLoc, startPos); - typeCastNode.expression = node; - typeCastNode.typeAnnotation = this.flowParseTypeAnnotation(); - - if (forceArrow && !this.match(_tokenizerTypes.types.arrow)) { - this.unexpected(); - } - - if (canBeArrow && this.eat(_tokenizerTypes.types.arrow)) { - // ((lol): number => {}); - var func = this.parseArrowExpression(this.startNodeAt(startLoc, startPos), [node]); - func.returnType = typeCastNode.typeAnnotation; - return func; - } else { - return this.finishNode(typeCastNode, "TypeCastExpression"); - } - } else { - return node; - } - }; - }); - - instance.extend("parseExport", function (inner) { - return function (node) { - node = inner.call(this, node); - if (node.type === "ExportNamedDeclaration") { - node.exportKind = node.exportKind || "value"; - } - return node; - }; - }); - - instance.extend("parseExportDeclaration", function (inner) { - return function (node) { - if (this.isContextual("type")) { - node.exportKind = "type"; - - var declarationNode = this.startNode(); - this.next(); - - if (this.match(_tokenizerTypes.types.braceL)) { - // export type { foo, bar }; - node.specifiers = this.parseExportSpecifiers(); - this.parseExportFrom(node); - return null; - } else { - // export type Foo = Bar; - return this.flowParseTypeAlias(declarationNode); - } - } else { - return inner.call(this, node); - } - }; - }); - - instance.extend("parseClassId", function (inner) { - return function (node) { - inner.apply(this, arguments); - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } - }; - }); - - // don't consider `void` to be a keyword as then it'll use the void token type - // and set startExpr - instance.extend("isKeyword", function (inner) { - return function (name) { - if (this.state.inType && name === "void") { - return false; - } else { - return inner.call(this, name); - } - }; - }); - - // ensure that inside flow types, we bypass the jsx parser plugin - instance.extend("readToken", function (inner) { - return function (code) { - if (this.state.inType && (code === 62 || code === 60)) { - return this.finishOp(_tokenizerTypes.types.relational, 1); - } else { - return inner.call(this, code); - } - }; - }); - - // don't lex any token as a jsx one inside a flow type - instance.extend("jsx_readToken", function (inner) { - return function () { - if (!this.state.inType) return inner.call(this); - }; - }); - - function typeCastToParameter(node) { - node.expression.typeAnnotation = node.typeAnnotation; - return node.expression; - } - - instance.extend("toAssignable", function (inner) { - return function (node) { - if (node.type === "TypeCastExpression") { - return typeCastToParameter(node); - } else { - return inner.apply(this, arguments); - } - }; - }); - - // turn type casts that we found in function parameter head into type annotated params - instance.extend("toAssignableList", function (inner) { - return function (exprList, isBinding) { - for (var i = 0; i < exprList.length; i++) { - var expr = exprList[i]; - if (expr && expr.type === "TypeCastExpression") { - exprList[i] = typeCastToParameter(expr); - } - } - return inner.call(this, exprList, isBinding); - }; - }); - - // this is a list of nodes, from something like a call expression, we need to filter the - // type casts that we've found that are illegal in this context - instance.extend("toReferencedList", function () { - return function (exprList) { - for (var i = 0; i < exprList.length; i++) { - var expr = exprList[i]; - if (expr && expr._exprListItem && expr.type === "TypeCastExpression") { - this.raise(expr.start, "Unexpected type cast"); - } - } - - return exprList; - }; - }); - - // parse an item inside a expression list eg. `(NODE, NODE)` where NODE represents - // the position where this function is cal;ed - instance.extend("parseExprListItem", function (inner) { - return function (allowEmpty, refShorthandDefaultPos) { - var container = this.startNode(); - var node = inner.call(this, allowEmpty, refShorthandDefaultPos); - if (this.match(_tokenizerTypes.types.colon)) { - container._exprListItem = true; - container.expression = node; - container.typeAnnotation = this.flowParseTypeAnnotation(); - return this.finishNode(container, "TypeCastExpression"); - } else { - return node; - } - }; - }); - - instance.extend("checkLVal", function (inner) { - return function (node) { - if (node.type !== "TypeCastExpression") { - return inner.apply(this, arguments); - } - }; - }); - - // parse class property type annotations - instance.extend("parseClassProperty", function (inner) { - return function (node) { - if (this.match(_tokenizerTypes.types.colon)) { - node.typeAnnotation = this.flowParseTypeAnnotation(); - } - return inner.call(this, node); - }; - }); - - // determine whether or not we're currently in the position where a class property would appear - instance.extend("isClassProperty", function (inner) { - return function () { - return this.match(_tokenizerTypes.types.colon) || inner.call(this); - }; - }); - - // parse type parameters for class methods - instance.extend("parseClassMethod", function () { - return function (classBody, method, isGenerator, isAsync) { - if (this.isRelational("<")) { - method.typeParameters = this.flowParseTypeParameterDeclaration(); - } - this.parseMethod(method, isGenerator, isAsync); - classBody.body.push(this.finishNode(method, "ClassMethod")); - }; - }); - - // parse a the super class type parameters and implements - instance.extend("parseClassSuper", function (inner) { - return function (node, isStatement) { - inner.call(this, node, isStatement); - if (node.superClass && this.isRelational("<")) { - node.superTypeParameters = this.flowParseTypeParameterInstantiation(); - } - if (this.isContextual("implements")) { - this.next(); - var implemented = node["implements"] = []; - do { - var _node = this.startNode(); - _node.id = this.parseIdentifier(); - if (this.isRelational("<")) { - _node.typeParameters = this.flowParseTypeParameterInstantiation(); - } else { - _node.typeParameters = null; - } - implemented.push(this.finishNode(_node, "ClassImplements")); - } while (this.eat(_tokenizerTypes.types.comma)); - } - }; - }); - - // parse type parameters for object method shorthand - instance.extend("parseObjPropValue", function (inner) { - return function (prop) { - var typeParameters = undefined; - - // method shorthand - if (this.isRelational("<")) { - typeParameters = this.flowParseTypeParameterDeclaration(); - if (!this.match(_tokenizerTypes.types.parenL)) this.unexpected(); - } - - inner.apply(this, arguments); - - // add typeParameters if we found them - if (typeParameters) { - (prop.value || prop).typeParameters = typeParameters; - } - }; - }); - - instance.extend("parseAssignableListItemTypes", function () { - return function (param) { - if (this.eat(_tokenizerTypes.types.question)) { - param.optional = true; - } - if (this.match(_tokenizerTypes.types.colon)) { - param.typeAnnotation = this.flowParseTypeAnnotation(); - } - this.finishNode(param, param.type); - return param; - }; - }); - - // parse typeof and type imports - instance.extend("parseImportSpecifiers", function (inner) { - return function (node) { - node.importKind = "value"; - - var kind = null; - if (this.match(_tokenizerTypes.types._typeof)) { - kind = "typeof"; - } else if (this.isContextual("type")) { - kind = "type"; - } - if (kind) { - var lh = this.lookahead(); - if (lh.type === _tokenizerTypes.types.name && lh.value !== "from" || lh.type === _tokenizerTypes.types.braceL || lh.type === _tokenizerTypes.types.star) { - this.next(); - node.importKind = kind; - } - } - - inner.call(this, node); - }; - }); - - // parse function type parameters - function foo() {} - instance.extend("parseFunctionParams", function (inner) { - return function (node) { - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } - inner.call(this, node); - }; - }); - - // parse flow type annotations on variable declarator heads - let foo: string = bar - instance.extend("parseVarHead", function (inner) { - return function (decl) { - inner.call(this, decl); - if (this.match(_tokenizerTypes.types.colon)) { - decl.id.typeAnnotation = this.flowParseTypeAnnotation(); - this.finishNode(decl.id, decl.id.type); - } - }; - }); - - // parse the return type of an async arrow function - let foo = (async (): number => {}); - instance.extend("parseAsyncArrowFromCallExpression", function (inner) { - return function (node, call) { - if (this.match(_tokenizerTypes.types.colon)) { - node.returnType = this.flowParseTypeAnnotation(); - } - - return inner.call(this, node, call); - }; - }); - - // todo description - instance.extend("shouldParseAsyncArrow", function (inner) { - return function () { - return this.match(_tokenizerTypes.types.colon) || inner.call(this); - }; - }); - - // handle return types for arrow functions - instance.extend("parseParenAndDistinguishExpression", function (inner) { - return function (startPos, startLoc, canBeArrow, isAsync) { - startPos = startPos || this.state.start; - startLoc = startLoc || this.state.startLoc; - - if (canBeArrow && this.lookahead().type === _tokenizerTypes.types.parenR) { - // let foo = (): number => {}; - this.expect(_tokenizerTypes.types.parenL); - this.expect(_tokenizerTypes.types.parenR); - - var node = this.startNodeAt(startPos, startLoc); - if (this.match(_tokenizerTypes.types.colon)) node.returnType = this.flowParseTypeAnnotation(); - this.expect(_tokenizerTypes.types.arrow); - return this.parseArrowExpression(node, [], isAsync); - } else { - // let foo = (foo): number => {}; - var node = inner.call(this, startPos, startLoc, canBeArrow, isAsync); - - if (this.match(_tokenizerTypes.types.colon)) { - var state = this.state.clone(); - try { - return this.parseParenItem(node, startPos, startLoc, true); - } catch (err) { - if (err instanceof SyntaxError) { - this.state = state; - return node; - } else { - throw err; - } - } - } else { - return node; - } - } - }; - }); -}; - -module.exports = exports["default"]; \ No newline at end of file diff --git a/js/node_modules/babylon/lib/plugins/jsx/index.js b/js/node_modules/babylon/lib/plugins/jsx/index.js deleted file mode 100644 index dc06813..0000000 --- a/js/node_modules/babylon/lib/plugins/jsx/index.js +++ /dev/null @@ -1,464 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -exports.__esModule = true; - -var _xhtml = require("./xhtml"); - -var _xhtml2 = _interopRequireDefault(_xhtml); - -var _tokenizerTypes = require("../../tokenizer/types"); - -var _tokenizerContext = require("../../tokenizer/context"); - -var _parser = require("../../parser"); - -var _parser2 = _interopRequireDefault(_parser); - -var _utilIdentifier = require("../../util/identifier"); - -var _utilWhitespace = require("../../util/whitespace"); - -var HEX_NUMBER = /^[\da-fA-F]+$/; -var DECIMAL_NUMBER = /^\d+$/; - -_tokenizerContext.types.j_oTag = new _tokenizerContext.TokContext("...", true, true); - -_tokenizerTypes.types.jsxName = new _tokenizerTypes.TokenType("jsxName"); -_tokenizerTypes.types.jsxText = new _tokenizerTypes.TokenType("jsxText", { beforeExpr: true }); -_tokenizerTypes.types.jsxTagStart = new _tokenizerTypes.TokenType("jsxTagStart"); -_tokenizerTypes.types.jsxTagEnd = new _tokenizerTypes.TokenType("jsxTagEnd"); - -_tokenizerTypes.types.jsxTagStart.updateContext = function () { - this.state.context.push(_tokenizerContext.types.j_expr); // treat as beginning of JSX expression - this.state.context.push(_tokenizerContext.types.j_oTag); // start opening tag context - this.state.exprAllowed = false; -}; - -_tokenizerTypes.types.jsxTagEnd.updateContext = function (prevType) { - var out = this.state.context.pop(); - if (out === _tokenizerContext.types.j_oTag && prevType === _tokenizerTypes.types.slash || out === _tokenizerContext.types.j_cTag) { - this.state.context.pop(); - this.state.exprAllowed = this.curContext() === _tokenizerContext.types.j_expr; - } else { - this.state.exprAllowed = true; - } -}; - -var pp = _parser2["default"].prototype; - -// Reads inline JSX contents token. - -pp.jsxReadToken = function () { - var out = ""; - var chunkStart = this.state.pos; - for (;;) { - if (this.state.pos >= this.input.length) { - this.raise(this.state.start, "Unterminated JSX contents"); - } - - var ch = this.input.charCodeAt(this.state.pos); - - switch (ch) { - case 60: // "<" - case 123: - // "{" - if (this.state.pos === this.state.start) { - if (ch === 60 && this.state.exprAllowed) { - ++this.state.pos; - return this.finishToken(_tokenizerTypes.types.jsxTagStart); - } - return this.getTokenFromCode(ch); - } - out += this.input.slice(chunkStart, this.state.pos); - return this.finishToken(_tokenizerTypes.types.jsxText, out); - - case 38: - // "&" - out += this.input.slice(chunkStart, this.state.pos); - out += this.jsxReadEntity(); - chunkStart = this.state.pos; - break; - - default: - if (_utilWhitespace.isNewLine(ch)) { - out += this.input.slice(chunkStart, this.state.pos); - out += this.jsxReadNewLine(true); - chunkStart = this.state.pos; - } else { - ++this.state.pos; - } - } - } -}; - -pp.jsxReadNewLine = function (normalizeCRLF) { - var ch = this.input.charCodeAt(this.state.pos); - var out = undefined; - ++this.state.pos; - if (ch === 13 && this.input.charCodeAt(this.state.pos) === 10) { - ++this.state.pos; - out = normalizeCRLF ? "\n" : "\r\n"; - } else { - out = String.fromCharCode(ch); - } - ++this.state.curLine; - this.state.lineStart = this.state.pos; - - return out; -}; - -pp.jsxReadString = function (quote) { - var out = ""; - var chunkStart = ++this.state.pos; - for (;;) { - if (this.state.pos >= this.input.length) { - this.raise(this.state.start, "Unterminated string constant"); - } - - var ch = this.input.charCodeAt(this.state.pos); - if (ch === quote) break; - if (ch === 38) { - // "&" - out += this.input.slice(chunkStart, this.state.pos); - out += this.jsxReadEntity(); - chunkStart = this.state.pos; - } else if (_utilWhitespace.isNewLine(ch)) { - out += this.input.slice(chunkStart, this.state.pos); - out += this.jsxReadNewLine(false); - chunkStart = this.state.pos; - } else { - ++this.state.pos; - } - } - out += this.input.slice(chunkStart, this.state.pos++); - return this.finishToken(_tokenizerTypes.types.string, out); -}; - -pp.jsxReadEntity = function () { - var str = ""; - var count = 0; - var entity = undefined; - var ch = this.input[this.state.pos]; - - var startPos = ++this.state.pos; - while (this.state.pos < this.input.length && count++ < 10) { - ch = this.input[this.state.pos++]; - if (ch === ";") { - if (str[0] === "#") { - if (str[1] === "x") { - str = str.substr(2); - if (HEX_NUMBER.test(str)) entity = String.fromCharCode(parseInt(str, 16)); - } else { - str = str.substr(1); - if (DECIMAL_NUMBER.test(str)) entity = String.fromCharCode(parseInt(str, 10)); - } - } else { - entity = _xhtml2["default"][str]; - } - break; - } - str += ch; - } - if (!entity) { - this.state.pos = startPos; - return "&"; - } - return entity; -}; - -// Read a JSX identifier (valid tag or attribute name). -// -// Optimized version since JSX identifiers can"t contain -// escape characters and so can be read as single slice. -// Also assumes that first character was already checked -// by isIdentifierStart in readToken. - -pp.jsxReadWord = function () { - var ch = undefined; - var start = this.state.pos; - do { - ch = this.input.charCodeAt(++this.state.pos); - } while (_utilIdentifier.isIdentifierChar(ch) || ch === 45); // "-" - return this.finishToken(_tokenizerTypes.types.jsxName, this.input.slice(start, this.state.pos)); -}; - -// Transforms JSX element name to string. - -function getQualifiedJSXName(object) { - if (object.type === "JSXIdentifier") { - return object.name; - } - - if (object.type === "JSXNamespacedName") { - return object.namespace.name + ":" + object.name.name; - } - - if (object.type === "JSXMemberExpression") { - return getQualifiedJSXName(object.object) + "." + getQualifiedJSXName(object.property); - } -} - -// Parse next token as JSX identifier - -pp.jsxParseIdentifier = function () { - var node = this.startNode(); - if (this.match(_tokenizerTypes.types.jsxName)) { - node.name = this.state.value; - } else if (this.state.type.keyword) { - node.name = this.state.type.keyword; - } else { - this.unexpected(); - } - this.next(); - return this.finishNode(node, "JSXIdentifier"); -}; - -// Parse namespaced identifier. - -pp.jsxParseNamespacedName = function () { - var startPos = this.state.start, - startLoc = this.state.startLoc; - var name = this.jsxParseIdentifier(); - if (!this.eat(_tokenizerTypes.types.colon)) return name; - - var node = this.startNodeAt(startPos, startLoc); - node.namespace = name; - node.name = this.jsxParseIdentifier(); - return this.finishNode(node, "JSXNamespacedName"); -}; - -// Parses element name in any form - namespaced, member -// or single identifier. - -pp.jsxParseElementName = function () { - var startPos = this.state.start, - startLoc = this.state.startLoc; - var node = this.jsxParseNamespacedName(); - while (this.eat(_tokenizerTypes.types.dot)) { - var newNode = this.startNodeAt(startPos, startLoc); - newNode.object = node; - newNode.property = this.jsxParseIdentifier(); - node = this.finishNode(newNode, "JSXMemberExpression"); - } - return node; -}; - -// Parses any type of JSX attribute value. - -pp.jsxParseAttributeValue = function () { - var node = undefined; - switch (this.state.type) { - case _tokenizerTypes.types.braceL: - node = this.jsxParseExpressionContainer(); - if (node.expression.type === "JSXEmptyExpression") { - this.raise(node.start, "JSX attributes must only be assigned a non-empty expression"); - } else { - return node; - } - - case _tokenizerTypes.types.jsxTagStart: - case _tokenizerTypes.types.string: - node = this.parseExprAtom(); - node.extra = null; - return node; - - default: - this.raise(this.state.start, "JSX value should be either an expression or a quoted JSX text"); - } -}; - -// JSXEmptyExpression is unique type since it doesn't actually parse anything, -// and so it should start at the end of last read token (left brace) and finish -// at the beginning of the next one (right brace). - -pp.jsxParseEmptyExpression = function () { - var node = this.startNodeAt(this.lastTokEnd, this.lastTokEndLoc); - return this.finishNodeAt(node, "JSXEmptyExpression", this.start, this.startLoc); -}; - -// Parses JSX expression enclosed into curly brackets. - -pp.jsxParseExpressionContainer = function () { - var node = this.startNode(); - this.next(); - if (this.match(_tokenizerTypes.types.braceR)) { - node.expression = this.jsxParseEmptyExpression(); - } else { - node.expression = this.parseExpression(); - } - this.expect(_tokenizerTypes.types.braceR); - return this.finishNode(node, "JSXExpressionContainer"); -}; - -// Parses following JSX attribute name-value pair. - -pp.jsxParseAttribute = function () { - var node = this.startNode(); - if (this.eat(_tokenizerTypes.types.braceL)) { - this.expect(_tokenizerTypes.types.ellipsis); - node.argument = this.parseMaybeAssign(); - this.expect(_tokenizerTypes.types.braceR); - return this.finishNode(node, "JSXSpreadAttribute"); - } - node.name = this.jsxParseNamespacedName(); - node.value = this.eat(_tokenizerTypes.types.eq) ? this.jsxParseAttributeValue() : null; - return this.finishNode(node, "JSXAttribute"); -}; - -// Parses JSX opening tag starting after "<". - -pp.jsxParseOpeningElementAt = function (startPos, startLoc) { - var node = this.startNodeAt(startPos, startLoc); - node.attributes = []; - node.name = this.jsxParseElementName(); - while (!this.match(_tokenizerTypes.types.slash) && !this.match(_tokenizerTypes.types.jsxTagEnd)) { - node.attributes.push(this.jsxParseAttribute()); - } - node.selfClosing = this.eat(_tokenizerTypes.types.slash); - this.expect(_tokenizerTypes.types.jsxTagEnd); - return this.finishNode(node, "JSXOpeningElement"); -}; - -// Parses JSX closing tag starting after ""); - } - } - - node.openingElement = openingElement; - node.closingElement = closingElement; - node.children = children; - if (this.match(_tokenizerTypes.types.relational) && this.state.value === "<") { - this.raise(this.state.start, "Adjacent JSX elements must be wrapped in an enclosing tag"); - } - return this.finishNode(node, "JSXElement"); -}; - -// Parses entire JSX element from current position. - -pp.jsxParseElement = function () { - var startPos = this.state.start, - startLoc = this.state.startLoc; - this.next(); - return this.jsxParseElementAt(startPos, startLoc); -}; - -exports["default"] = function (instance) { - instance.extend("parseExprAtom", function (inner) { - return function (refShortHandDefaultPos) { - if (this.match(_tokenizerTypes.types.jsxText)) { - var node = this.parseLiteral(this.state.value, "JSXText"); - // https://github.com/babel/babel/issues/2078 - node.extra = null; - return node; - } else if (this.match(_tokenizerTypes.types.jsxTagStart)) { - return this.jsxParseElement(); - } else { - return inner.call(this, refShortHandDefaultPos); - } - }; - }); - - instance.extend("readToken", function (inner) { - return function (code) { - var context = this.curContext(); - - if (context === _tokenizerContext.types.j_expr) { - return this.jsxReadToken(); - } - - if (context === _tokenizerContext.types.j_oTag || context === _tokenizerContext.types.j_cTag) { - if (_utilIdentifier.isIdentifierStart(code)) { - return this.jsxReadWord(); - } - - if (code === 62) { - ++this.state.pos; - return this.finishToken(_tokenizerTypes.types.jsxTagEnd); - } - - if ((code === 34 || code === 39) && context === _tokenizerContext.types.j_oTag) { - return this.jsxReadString(code); - } - } - - if (code === 60 && this.state.exprAllowed) { - ++this.state.pos; - return this.finishToken(_tokenizerTypes.types.jsxTagStart); - } - - return inner.call(this, code); - }; - }); - - instance.extend("updateContext", function (inner) { - return function (prevType) { - if (this.match(_tokenizerTypes.types.braceL)) { - var curContext = this.curContext(); - if (curContext === _tokenizerContext.types.j_oTag) { - this.state.context.push(_tokenizerContext.types.b_expr); - } else if (curContext === _tokenizerContext.types.j_expr) { - this.state.context.push(_tokenizerContext.types.b_tmpl); - } else { - inner.call(this, prevType); - } - this.state.exprAllowed = true; - } else if (this.match(_tokenizerTypes.types.slash) && prevType === _tokenizerTypes.types.jsxTagStart) { - this.state.context.length -= 2; // do not consider JSX expr -> JSX open tag -> ... anymore - this.state.context.push(_tokenizerContext.types.j_cTag); // reconsider as closing tag context - this.state.exprAllowed = false; - } else { - return inner.call(this, prevType); - } - }; - }); -}; - -module.exports = exports["default"]; \ No newline at end of file diff --git a/js/node_modules/babylon/lib/plugins/jsx/xhtml.js b/js/node_modules/babylon/lib/plugins/jsx/xhtml.js deleted file mode 100644 index 7b721a3..0000000 --- a/js/node_modules/babylon/lib/plugins/jsx/xhtml.js +++ /dev/null @@ -1,259 +0,0 @@ -"use strict"; - -exports.__esModule = true; -exports["default"] = { - quot: "\"", - amp: "&", - apos: "'", - lt: "<", - gt: ">", - nbsp: " ", - iexcl: "¡", - cent: "¢", - pound: "£", - curren: "¤", - yen: "¥", - brvbar: "¦", - sect: "§", - uml: "¨", - copy: "©", - ordf: "ª", - laquo: "«", - not: "¬", - shy: "­", - reg: "®", - macr: "¯", - deg: "°", - plusmn: "±", - sup2: "²", - sup3: "³", - acute: "´", - micro: "µ", - para: "¶", - middot: "·", - cedil: "¸", - sup1: "¹", - ordm: "º", - raquo: "»", - frac14: "¼", - frac12: "½", - frac34: "¾", - iquest: "¿", - Agrave: "À", - Aacute: "Á", - Acirc: "Â", - Atilde: "Ã", - Auml: "Ä", - Aring: "Å", - AElig: "Æ", - Ccedil: "Ç", - Egrave: "È", - Eacute: "É", - Ecirc: "Ê", - Euml: "Ë", - Igrave: "Ì", - Iacute: "Í", - Icirc: "Î", - Iuml: "Ï", - ETH: "Ð", - Ntilde: "Ñ", - Ograve: "Ò", - Oacute: "Ó", - Ocirc: "Ô", - Otilde: "Õ", - Ouml: "Ö", - times: "×", - Oslash: "Ø", - Ugrave: "Ù", - Uacute: "Ú", - Ucirc: "Û", - Uuml: "Ü", - Yacute: "Ý", - THORN: "Þ", - szlig: "ß", - agrave: "à", - aacute: "á", - acirc: "â", - atilde: "ã", - auml: "ä", - aring: "å", - aelig: "æ", - ccedil: "ç", - egrave: "è", - eacute: "é", - ecirc: "ê", - euml: "ë", - igrave: "ì", - iacute: "í", - icirc: "î", - iuml: "ï", - eth: "ð", - ntilde: "ñ", - ograve: "ò", - oacute: "ó", - ocirc: "ô", - otilde: "õ", - ouml: "ö", - divide: "÷", - oslash: "ø", - ugrave: "ù", - uacute: "ú", - ucirc: "û", - uuml: "ü", - yacute: "ý", - thorn: "þ", - yuml: "ÿ", - OElig: "Œ", - oelig: "œ", - Scaron: "Š", - scaron: "š", - Yuml: "Ÿ", - fnof: "ƒ", - circ: "ˆ", - tilde: "˜", - Alpha: "Α", - Beta: "Β", - Gamma: "Γ", - Delta: "Δ", - Epsilon: "Ε", - Zeta: "Ζ", - Eta: "Η", - Theta: "Θ", - Iota: "Ι", - Kappa: "Κ", - Lambda: "Λ", - Mu: "Μ", - Nu: "Ν", - Xi: "Ξ", - Omicron: "Ο", - Pi: "Π", - Rho: "Ρ", - Sigma: "Σ", - Tau: "Τ", - Upsilon: "Υ", - Phi: "Φ", - Chi: "Χ", - Psi: "Ψ", - Omega: "Ω", - alpha: "α", - beta: "β", - gamma: "γ", - delta: "δ", - epsilon: "ε", - zeta: "ζ", - eta: "η", - theta: "θ", - iota: "ι", - kappa: "κ", - lambda: "λ", - mu: "μ", - nu: "ν", - xi: "ξ", - omicron: "ο", - pi: "π", - rho: "ρ", - sigmaf: "ς", - sigma: "σ", - tau: "τ", - upsilon: "υ", - phi: "φ", - chi: "χ", - psi: "ψ", - omega: "ω", - thetasym: "ϑ", - upsih: "ϒ", - piv: "ϖ", - ensp: " ", - emsp: " ", - thinsp: " ", - zwnj: "‌", - zwj: "‍", - lrm: "‎", - rlm: "‏", - ndash: "–", - mdash: "—", - lsquo: "‘", - rsquo: "’", - sbquo: "‚", - ldquo: "“", - rdquo: "”", - bdquo: "„", - dagger: "†", - Dagger: "‡", - bull: "•", - hellip: "…", - permil: "‰", - prime: "′", - Prime: "″", - lsaquo: "‹", - rsaquo: "›", - oline: "‾", - frasl: "⁄", - euro: "€", - image: "ℑ", - weierp: "℘", - real: "ℜ", - trade: "™", - alefsym: "ℵ", - larr: "←", - uarr: "↑", - rarr: "→", - darr: "↓", - harr: "↔", - crarr: "↵", - lArr: "⇐", - uArr: "⇑", - rArr: "⇒", - dArr: "⇓", - hArr: "⇔", - forall: "∀", - part: "∂", - exist: "∃", - empty: "∅", - nabla: "∇", - isin: "∈", - notin: "∉", - ni: "∋", - prod: "∏", - sum: "∑", - minus: "−", - lowast: "∗", - radic: "√", - prop: "∝", - infin: "∞", - ang: "∠", - and: "∧", - or: "∨", - cap: "∩", - cup: "∪", - "int": "∫", - there4: "∴", - sim: "∼", - cong: "≅", - asymp: "≈", - ne: "≠", - equiv: "≡", - le: "≤", - ge: "≥", - sub: "⊂", - sup: "⊃", - nsub: "⊄", - sube: "⊆", - supe: "⊇", - oplus: "⊕", - otimes: "⊗", - perp: "⊥", - sdot: "⋅", - lceil: "⌈", - rceil: "⌉", - lfloor: "⌊", - rfloor: "⌋", - lang: "〈", - rang: "〉", - loz: "◊", - spades: "♠", - clubs: "♣", - hearts: "♥", - diams: "♦" -}; -module.exports = exports["default"]; \ No newline at end of file diff --git a/js/node_modules/babylon/lib/tokenizer/context.js b/js/node_modules/babylon/lib/tokenizer/context.js deleted file mode 100644 index f61b94f..0000000 --- a/js/node_modules/babylon/lib/tokenizer/context.js +++ /dev/null @@ -1,104 +0,0 @@ -/* @flow */ - -// The algorithm used to determine whether a regexp can appear at a -// given point in the program is loosely based on sweet.js' approach. -// See https://github.com/mozilla/sweet.js/wiki/design - -"use strict"; - -var _classCallCheck = require("babel-runtime/helpers/class-call-check")["default"]; - -exports.__esModule = true; - -var _types = require("./types"); - -var _utilWhitespace = require("../util/whitespace"); - -var TokContext = function TokContext(token /*: string*/, isExpr /*:: ?: boolean*/, preserveSpace /*:: ?: boolean*/, override /*:: ?: Function*/) { - _classCallCheck(this, TokContext); - - this.token = token; - this.isExpr = !!isExpr; - this.preserveSpace = !!preserveSpace; - this.override = override; -}; - -exports.TokContext = TokContext; -var types = { - b_stat: new TokContext("{", false), - b_expr: new TokContext("{", true), - b_tmpl: new TokContext("${", true), - p_stat: new TokContext("(", false), - p_expr: new TokContext("(", true), - q_tmpl: new TokContext("`", true, true, function (p) { - return p.readTmplToken(); - }), - f_expr: new TokContext("function", true) -}; - -exports.types = types; -// Token-specific context update code - -_types.types.parenR.updateContext = _types.types.braceR.updateContext = function () { - if (this.state.context.length === 1) { - this.state.exprAllowed = true; - return; - } - - var out = this.state.context.pop(); - if (out === types.b_stat && this.curContext() === types.f_expr) { - this.state.context.pop(); - this.state.exprAllowed = false; - } else if (out === types.b_tmpl) { - this.state.exprAllowed = true; - } else { - this.state.exprAllowed = !out.isExpr; - } -}; - -_types.types.name.updateContext = function (prevType) { - this.state.exprAllowed = false; - - if (prevType === _types.types._let || prevType === _types.types._const || prevType === _types.types._var) { - if (_utilWhitespace.lineBreak.test(this.input.slice(this.state.end))) { - this.state.exprAllowed = true; - } - } -}; - -_types.types.braceL.updateContext = function (prevType) { - this.state.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr); - this.state.exprAllowed = true; -}; - -_types.types.dollarBraceL.updateContext = function () { - this.state.context.push(types.b_tmpl); - this.state.exprAllowed = true; -}; - -_types.types.parenL.updateContext = function (prevType) { - var statementParens = prevType === _types.types._if || prevType === _types.types._for || prevType === _types.types._with || prevType === _types.types._while; - this.state.context.push(statementParens ? types.p_stat : types.p_expr); - this.state.exprAllowed = true; -}; - -_types.types.incDec.updateContext = function () { - // tokExprAllowed stays unchanged -}; - -_types.types._function.updateContext = function () { - if (this.curContext() !== types.b_stat) { - this.state.context.push(types.f_expr); - } - - this.state.exprAllowed = false; -}; - -_types.types.backQuote.updateContext = function () { - if (this.curContext() === types.q_tmpl) { - this.state.context.pop(); - } else { - this.state.context.push(types.q_tmpl); - } - this.state.exprAllowed = false; -}; \ No newline at end of file diff --git a/js/node_modules/babylon/lib/tokenizer/index.js b/js/node_modules/babylon/lib/tokenizer/index.js deleted file mode 100644 index 6a6fc4e..0000000 --- a/js/node_modules/babylon/lib/tokenizer/index.js +++ /dev/null @@ -1,882 +0,0 @@ -"use strict"; - -var _classCallCheck = require("babel-runtime/helpers/class-call-check")["default"]; - -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -exports.__esModule = true; - -var _utilIdentifier = require("../util/identifier"); - -var _types = require("./types"); - -var _context = require("./context"); - -var _utilLocation = require("../util/location"); - -var _utilWhitespace = require("../util/whitespace"); - -var _state = require("./state"); - -var _state2 = _interopRequireDefault(_state); - -// Object type used to represent tokens. Note that normally, tokens -// simply exist as properties on the parser object. This is only -// used for the onToken callback and the external tokenizer. - -/*:: import type { TokenType } from "./types";*/ -var Token = function Token(state) { - _classCallCheck(this, Token); - - this.type = state.type; - this.value = state.value; - this.start = state.start; - this.end = state.end; - this.loc = new _utilLocation.SourceLocation(state.startLoc, state.endLoc); -} - -// ## Tokenizer - -; - -exports.Token = Token; -function codePointToString(code) { - // UTF-16 Decoding - if (code <= 0xFFFF) { - return String.fromCharCode(code); - } else { - return String.fromCharCode((code - 0x10000 >> 10) + 0xD800, (code - 0x10000 & 1023) + 0xDC00); - } -} - -var Tokenizer = (function () { - function Tokenizer(options, input) { - _classCallCheck(this, Tokenizer); - - this.state = new _state2["default"](); - this.state.init(options, input); - } - - // Move to the next token - - Tokenizer.prototype.next = function next() { - if (!this.isLookahead) { - this.state.tokens.push(new Token(this.state)); - } - - this.state.lastTokEnd = this.state.end; - this.state.lastTokStart = this.state.start; - this.state.lastTokEndLoc = this.state.endLoc; - this.state.lastTokStartLoc = this.state.startLoc; - this.nextToken(); - }; - - // TODO - - Tokenizer.prototype.eat = function eat(type) { - if (this.match(type)) { - this.next(); - return true; - } else { - return false; - } - }; - - // TODO - - Tokenizer.prototype.match = function match(type) { - return this.state.type === type; - }; - - // TODO - - Tokenizer.prototype.isKeyword = function isKeyword(word) { - return _utilIdentifier.isKeyword(word); - }; - - // TODO - - Tokenizer.prototype.lookahead = function lookahead() { - var old = this.state; - this.state = old.clone(true); - - this.isLookahead = true; - this.next(); - this.isLookahead = false; - - var curr = this.state.clone(true); - this.state = old; - return curr; - }; - - // Toggle strict mode. Re-reads the next number or string to please - // pedantic tests (`"use strict"; 010;` should fail). - - Tokenizer.prototype.setStrict = function setStrict(strict) { - this.state.strict = strict; - if (!this.match(_types.types.num) && !this.match(_types.types.string)) return; - this.state.pos = this.state.start; - while (this.state.pos < this.state.lineStart) { - this.state.lineStart = this.input.lastIndexOf("\n", this.state.lineStart - 2) + 1; - --this.state.curLine; - } - this.nextToken(); - }; - - Tokenizer.prototype.curContext = function curContext() { - return this.state.context[this.state.context.length - 1]; - }; - - // Read a single token, updating the parser object's token-related - // properties. - - Tokenizer.prototype.nextToken = function nextToken() { - var curContext = this.curContext(); - if (!curContext || !curContext.preserveSpace) this.skipSpace(); - - this.state.containsOctal = false; - this.state.octalPosition = null; - this.state.start = this.state.pos; - this.state.startLoc = this.state.curPosition(); - if (this.state.pos >= this.input.length) return this.finishToken(_types.types.eof); - - if (curContext.override) { - return curContext.override(this); - } else { - return this.readToken(this.fullCharCodeAtPos()); - } - }; - - Tokenizer.prototype.readToken = function readToken(code) { - // Identifier or keyword. '\uXXXX' sequences are allowed in - // identifiers, so '\' also dispatches to that. - if (_utilIdentifier.isIdentifierStart(code) || code === 92 /* '\' */) { - return this.readWord(); - } else { - return this.getTokenFromCode(code); - } - }; - - Tokenizer.prototype.fullCharCodeAtPos = function fullCharCodeAtPos() { - var code = this.input.charCodeAt(this.state.pos); - if (code <= 0xd7ff || code >= 0xe000) return code; - - var next = this.input.charCodeAt(this.state.pos + 1); - return (code << 10) + next - 0x35fdc00; - }; - - Tokenizer.prototype.pushComment = function pushComment(block, text, start, end, startLoc, endLoc) { - var comment = { - type: block ? "CommentBlock" : "CommentLine", - value: text, - start: start, - end: end, - loc: new _utilLocation.SourceLocation(startLoc, endLoc) - }; - - if (!this.isLookahead) { - this.state.tokens.push(comment); - this.state.comments.push(comment); - } - - this.addComment(comment); - }; - - Tokenizer.prototype.skipBlockComment = function skipBlockComment() { - var startLoc = this.state.curPosition(); - var start = this.state.pos, - end = this.input.indexOf("*/", this.state.pos += 2); - if (end === -1) this.raise(this.state.pos - 2, "Unterminated comment"); - - this.state.pos = end + 2; - _utilWhitespace.lineBreakG.lastIndex = start; - var match = undefined; - while ((match = _utilWhitespace.lineBreakG.exec(this.input)) && match.index < this.state.pos) { - ++this.state.curLine; - this.state.lineStart = match.index + match[0].length; - } - - this.pushComment(true, this.input.slice(start + 2, end), start, this.state.pos, startLoc, this.state.curPosition()); - }; - - Tokenizer.prototype.skipLineComment = function skipLineComment(startSkip) { - var start = this.state.pos; - var startLoc = this.state.curPosition(); - var ch = this.input.charCodeAt(this.state.pos += startSkip); - while (this.state.pos < this.input.length && ch !== 10 && ch !== 13 && ch !== 8232 && ch !== 8233) { - ++this.state.pos; - ch = this.input.charCodeAt(this.state.pos); - } - - this.pushComment(false, this.input.slice(start + startSkip, this.state.pos), start, this.state.pos, startLoc, this.state.curPosition()); - }; - - // Called at the start of the parse and after every token. Skips - // whitespace and comments, and. - - Tokenizer.prototype.skipSpace = function skipSpace() { - loop: while (this.state.pos < this.input.length) { - var ch = this.input.charCodeAt(this.state.pos); - switch (ch) { - case 32:case 160: - // ' ' - ++this.state.pos; - break; - - case 13: - if (this.input.charCodeAt(this.state.pos + 1) === 10) { - ++this.state.pos; - } - - case 10:case 8232:case 8233: - ++this.state.pos; - ++this.state.curLine; - this.state.lineStart = this.state.pos; - break; - - case 47: - // '/' - switch (this.input.charCodeAt(this.state.pos + 1)) { - case 42: - // '*' - this.skipBlockComment(); - break; - - case 47: - this.skipLineComment(2); - break; - - default: - break loop; - } - break; - - default: - if (ch > 8 && ch < 14 || ch >= 5760 && _utilWhitespace.nonASCIIwhitespace.test(String.fromCharCode(ch))) { - ++this.state.pos; - } else { - break loop; - } - } - } - }; - - // Called at the end of every token. Sets `end`, `val`, and - // maintains `context` and `exprAllowed`, and skips the space after - // the token, so that the next one's `start` will point at the - // right position. - - Tokenizer.prototype.finishToken = function finishToken(type, val) { - this.state.end = this.state.pos; - this.state.endLoc = this.state.curPosition(); - var prevType = this.state.type; - this.state.type = type; - this.state.value = val; - - this.updateContext(prevType); - }; - - // ### Token reading - - // This is the function that is called to fetch the next token. It - // is somewhat obscure, because it works in character codes rather - // than characters, and because operator parsing has been inlined - // into it. - // - // All in the name of speed. - // - - Tokenizer.prototype.readToken_dot = function readToken_dot() { - var next = this.input.charCodeAt(this.state.pos + 1); - if (next >= 48 && next <= 57) { - return this.readNumber(true); - } - - var next2 = this.input.charCodeAt(this.state.pos + 2); - if (next === 46 && next2 === 46) { - // 46 = dot '.' - this.state.pos += 3; - return this.finishToken(_types.types.ellipsis); - } else { - ++this.state.pos; - return this.finishToken(_types.types.dot); - } - }; - - Tokenizer.prototype.readToken_slash = function readToken_slash() { - // '/' - if (this.state.exprAllowed) { - ++this.state.pos; - return this.readRegexp(); - } - - var next = this.input.charCodeAt(this.state.pos + 1); - if (next === 61) { - return this.finishOp(_types.types.assign, 2); - } else { - return this.finishOp(_types.types.slash, 1); - } - }; - - Tokenizer.prototype.readToken_mult_modulo = function readToken_mult_modulo(code) { - // '%*' - var type = code === 42 ? _types.types.star : _types.types.modulo; - var width = 1; - var next = this.input.charCodeAt(this.state.pos + 1); - - if (next === 42 && this.hasPlugin("exponentiationOperator")) { - // '*' - width++; - next = this.input.charCodeAt(this.state.pos + 2); - type = _types.types.exponent; - } - - if (next === 61) { - width++; - type = _types.types.assign; - } - - return this.finishOp(type, width); - }; - - Tokenizer.prototype.readToken_pipe_amp = function readToken_pipe_amp(code) { - // '|&' - var next = this.input.charCodeAt(this.state.pos + 1); - if (next === code) return this.finishOp(code === 124 ? _types.types.logicalOR : _types.types.logicalAND, 2); - if (next === 61) return this.finishOp(_types.types.assign, 2); - return this.finishOp(code === 124 ? _types.types.bitwiseOR : _types.types.bitwiseAND, 1); - }; - - Tokenizer.prototype.readToken_caret = function readToken_caret() { - // '^' - var next = this.input.charCodeAt(this.state.pos + 1); - if (next === 61) { - return this.finishOp(_types.types.assign, 2); - } else { - return this.finishOp(_types.types.bitwiseXOR, 1); - } - }; - - Tokenizer.prototype.readToken_plus_min = function readToken_plus_min(code) { - // '+-' - var next = this.input.charCodeAt(this.state.pos + 1); - - if (next === code) { - if (next === 45 && this.input.charCodeAt(this.state.pos + 2) === 62 && _utilWhitespace.lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.pos))) { - // A `-->` line comment - this.skipLineComment(3); - this.skipSpace(); - return this.nextToken(); - } - return this.finishOp(_types.types.incDec, 2); - } - - if (next === 61) { - return this.finishOp(_types.types.assign, 2); - } else { - return this.finishOp(_types.types.plusMin, 1); - } - }; - - Tokenizer.prototype.readToken_lt_gt = function readToken_lt_gt(code) { - // '<>' - var next = this.input.charCodeAt(this.state.pos + 1); - var size = 1; - - if (next === code) { - size = code === 62 && this.input.charCodeAt(this.state.pos + 2) === 62 ? 3 : 2; - if (this.input.charCodeAt(this.state.pos + size) === 61) return this.finishOp(_types.types.assign, size + 1); - return this.finishOp(_types.types.bitShift, size); - } - - if (next === 33 && code === 60 && this.input.charCodeAt(this.state.pos + 2) === 45 && this.input.charCodeAt(this.state.pos + 3) === 45) { - if (this.inModule) this.unexpected(); - // `0;)d in g?g[b]=g[d]:delete g[b],b+=j,d+=j;return g}},function(c,d,a){var b=a(3);b(b.P,"Array",{fill:a(125)}),a(118)("fill")},function(d,g,b){var e=b(21),c=b(26),f=b(27);d.exports=[].fill||function fill(k){for(var b=e(this),d=f(b.length),g=arguments,h=g.length,i=c(h>1?g[1]:a,d),j=h>2?g[2]:a,l=j===a?d:c(j,d);l>i;)b[i++]=k;return b}},function(g,h,b){var c=b(3),f=b(28)(5),d="find",e=!0;d in[]&&Array(1)[d](function(){e=!1}),c(c.P+c.F*e,"Array",{find:function find(b){return f(this,b,arguments.length>1?arguments[1]:a)}}),b(118)(d)},function(g,h,b){var c=b(3),f=b(28)(6),d="findIndex",e=!0;d in[]&&Array(1)[d](function(){e=!1}),c(c.P+c.F*e,"Array",{findIndex:function findIndex(b){return f(this,b,arguments.length>1?arguments[1]:a)}}),b(118)(d)},function(n,m,c){var f=c(2),i=c(4),k=c(101),l=c(129),b=i.RegExp,d=b,j=b.prototype,e=/a/g,g=/a/g,h=new b(e)!==e;!c(8)||h&&!c(9)(function(){return g[c(31)("match")]=!1,b(e)!=e||b(g)==g||"/a/i"!=b(e,"i")})||(b=function RegExp(c,f){var e=k(c),g=f===a;return this instanceof b||!e||c.constructor!==b||!g?h?new d(e&&!g?c.source:c,f):d((e=c instanceof b)?c.source:c,e&&g?l.call(c):f):c},f.each.call(f.getNames(d),function(a){a in b||f.setDesc(b,a,{configurable:!0,get:function(){return d[a]},set:function(b){d[a]=b}})}),j.constructor=b,b.prototype=j,c(10)(i,"RegExp",b)),c(121)("RegExp")},function(a,d,b){var c=b(20);a.exports=function(){var b=c(this),a="";return b.global&&(a+="g"),b.ignoreCase&&(a+="i"),b.multiline&&(a+="m"),b.unicode&&(a+="u"),b.sticky&&(a+="y"),a}},function(c,d,a){var b=a(2);a(8)&&"g"!=/./g.flags&&b.setDesc(RegExp.prototype,"flags",{configurable:!0,get:a(129)})},function(c,d,b){b(132)("match",1,function(c,b){return function match(d){var e=c(this),f=d==a?a:d[b];return f!==a?f.call(d,e):new RegExp(d)[b](String(e))}})},function(b,h,a){var c=a(6),d=a(10),e=a(9),f=a(22),g=a(31);b.exports=function(a,i,j){var b=g(a),h=""[a];e(function(){var c={};return c[b]=function(){return 7},7!=""[a](c)})&&(d(String.prototype,a,j(f,b,h)),c(RegExp.prototype,b,2==i?function(a,b){return h.call(a,this,b)}:function(a){return h.call(a,this)}))}},function(c,d,b){b(132)("replace",2,function(b,c,d){return function replace(e,f){var g=b(this),h=e==a?a:e[c];return h!==a?h.call(e,g,f):d.call(String(g),e,f)}})},function(c,d,b){b(132)("search",1,function(c,b){return function search(d){var e=c(this),f=d==a?a:d[b];return f!==a?f.call(d,e):new RegExp(d)[b](String(e))}})},function(c,d,b){b(132)("split",2,function(b,c,d){return function split(e,f){var g=b(this),h=e==a?a:e[c];return h!==a?h.call(e,g,f):d.call(String(g),e,f)}})},function(J,I,b){var r,k=b(2),F=b(39),i=b(4),j=b(12),y=b(47),d=b(3),C=b(16),E=b(20),m=b(13),G=b(137),w=b(138),p=b(45).set,A=b(43),z=b(31)("species"),D=b(139),n=b(140),e="Promise",o=i.process,H="process"==y(o),c=i[e],q=function(b){var a=new c(function(){});return b&&(a.constructor=Object),c.resolve(a)===a},g=function(){function P2(b){var a=new c(b);return p(a,P2.prototype),a}var a=!1;try{if(a=c&&c.resolve&&q(),p(P2,c),P2.prototype=k.create(c.prototype,{constructor:{ -value:P2}}),P2.resolve(5).then(function(){})instanceof P2||(a=!1),a&&b(8)){var d=!1;c.resolve(k.setDesc({},"then",{get:function(){d=!0}})),a=d}}catch(e){a=!1}return a}(),B=function(a,b){return F&&a===c&&b===r?!0:A(a,b)},s=function(b){var c=E(b)[z];return c!=a?c:b},t=function(a){var b;return C(a)&&"function"==typeof(b=a.then)?b:!1},h=function(d){var b,c;this.promise=new d(function(d,e){if(b!==a||c!==a)throw TypeError("Bad Promise constructor");b=d,c=e}),this.resolve=m(b),this.reject=m(c)},v=function(a){try{a()}catch(b){return{error:b}}},l=function(b,d){if(!b.n){b.n=!0;var c=b.c;n(function(){for(var e=b.v,f=1==b.s,g=0,h=function(a){var c,h,g=f?a.ok:a.fail,i=a.resolve,d=a.reject;try{g?(f||(b.h=!0),c=g===!0?e:g(e),c===a.promise?d(TypeError("Promise-chain cycle")):(h=t(c))?h.call(c,i,d):i(c)):d(e)}catch(j){d(j)}};c.length>g;)h(c[g++]);c.length=0,b.n=!1,d&&setTimeout(function(){var f,c,d=b.p;x(d)&&(H?o.emit("unhandledRejection",e,d):(f=i.onunhandledrejection)?f({promise:d,reason:e}):(c=i.console)&&c.error&&c.error("Unhandled promise rejection",e)),b.a=a},1)})}},x=function(e){var a,b=e._d,c=b.a||b.c,d=0;if(b.h)return!1;for(;c.length>d;)if(a=c[d++],a.fail||!x(a.promise))return!1;return!0},f=function(b){var a=this;a.d||(a.d=!0,a=a.r||a,a.v=b,a.s=2,a.a=a.c.slice(),l(a,!0))},u=function(b){var c,a=this;if(!a.d){a.d=!0,a=a.r||a;try{if(a.p===b)throw TypeError("Promise can't be resolved itself");(c=t(b))?n(function(){var d={r:a,d:!1};try{c.call(b,j(u,d,1),j(f,d,1))}catch(e){f.call(d,e)}}):(a.v=b,a.s=1,l(a,!1))}catch(d){f.call({r:a,d:!1},d)}}};g||(c=function Promise(d){m(d);var b=this._d={p:G(this,c,e),c:[],a:a,s:0,d:!1,v:a,h:!1,n:!1};try{d(j(u,b,1),j(f,b,1))}catch(g){f.call(b,g)}},b(142)(c.prototype,{then:function then(d,e){var a=new h(D(this,c)),f=a.promise,b=this._d;return a.ok="function"==typeof d?d:!0,a.fail="function"==typeof e&&e,b.c.push(a),b.a&&b.a.push(a),b.s&&l(b,!1),f},"catch":function(b){return this.then(a,b)}})),d(d.G+d.W+d.F*!g,{Promise:c}),b(35)(c,e),b(121)(e),r=b(5)[e],d(d.S+d.F*!g,e,{reject:function reject(b){var a=new h(this),c=a.reject;return c(b),a.promise}}),d(d.S+d.F*(!g||q(!0)),e,{resolve:function resolve(a){if(a instanceof c&&B(a.constructor,this))return a;var b=new h(this),d=b.resolve;return d(a),b.promise}}),d(d.S+d.F*!(g&&b(115)(function(a){c.all(a)["catch"](function(){})})),e,{all:function all(g){var c=s(this),b=new h(c),d=b.resolve,e=b.reject,a=[],f=v(function(){w(g,!1,a.push,a);var b=a.length,f=Array(b);b?k.each.call(a,function(g,h){var a=!1;c.resolve(g).then(function(c){a||(a=!0,f[h]=c,--b||d(f))},e)}):d(f)});return f&&e(f.error),b.promise},race:function race(e){var b=s(this),a=new h(b),c=a.reject,d=v(function(){w(e,!1,function(d){b.resolve(d).then(a.resolve,c)})});return d&&c(d.error),a.promise}})},function(a,b){a.exports=function(a,b,c){if(!(a instanceof b))throw TypeError(c+": use the 'new' operator!");return a}},function(b,i,a){var c=a(12),d=a(112),e=a(113),f=a(20),g=a(27),h=a(114);b.exports=function(a,j,o,p){var n,b,k,l=h(a),m=c(o,p,j?2:1),i=0;if("function"!=typeof l)throw TypeError(a+" is not iterable!");if(e(l))for(n=g(a.length);n>i;i++)j?m(f(b=a[i])[0],b[1]):m(a[i]);else for(k=l.call(a);!(b=k.next()).done;)d(k,m,b.value,j)}},function(d,g,b){var c=b(20),e=b(13),f=b(31)("species");d.exports=function(g,h){var b,d=c(g).constructor;return d===a||(b=c(d)[f])==a?h:e(b)}},function(n,p,h){var b,f,g,c=h(4),o=h(141).set,k=c.MutationObserver||c.WebKitMutationObserver,d=c.process,i=c.Promise,j="process"==h(18)(d),e=function(){var e,c,g;for(j&&(e=d.domain)&&(d.domain=null,e.exit());b;)c=b.domain,g=b.fn,c&&c.enter(),g(),c&&c.exit(),b=b.next;f=a,e&&e.enter()};if(j)g=function(){d.nextTick(e)};else if(k){var m=1,l=document.createTextNode("");new k(e).observe(l,{characterData:!0}),g=function(){l.data=m=-m}}else g=i&&i.resolve?function(){i.resolve().then(e)}:function(){o.call(c,e)};n.exports=function asap(e){var c={fn:e,next:a,domain:j&&d.domain};f&&(f.next=c),b||(b=c,g()),f=c}},function(s,t,b){var c,g,f,k=b(12),r=b(19),n=b(14),p=b(15),a=b(4),l=a.process,h=a.setImmediate,i=a.clearImmediate,o=a.MessageChannel,j=0,d={},q="onreadystatechange",e=function(){var a=+this;if(d.hasOwnProperty(a)){var b=d[a];delete d[a],b()}},m=function(a){e.call(a.data)};h&&i||(h=function setImmediate(a){for(var b=[],e=1;arguments.length>e;)b.push(arguments[e++]);return d[++j]=function(){r("function"==typeof a?a:Function(a),b)},c(j),j},i=function clearImmediate(a){delete d[a]},"process"==b(18)(l)?c=function(a){l.nextTick(k(e,a,1))}:o?(g=new o,f=g.port2,g.port1.onmessage=m,c=k(f.postMessage,f,1)):a.addEventListener&&"function"==typeof postMessage&&!a.importScripts?(c=function(b){a.postMessage(b+"","*")},a.addEventListener("message",m,!1)):c=q in p("script")?function(a){n.appendChild(p("script"))[q]=function(){n.removeChild(this),e.call(a)}}:function(a){setTimeout(k(e,a,1),0)}),s.exports={set:h,clear:i}},function(a,d,b){var c=b(10);a.exports=function(a,b){for(var d in b)c(a,d,b[d]);return a}},function(d,e,c){var b=c(144);c(145)("Map",function(b){return function Map(){return b(this,arguments.length>0?arguments[0]:a)}},{get:function get(c){var a=b.getEntry(this,c);return a&&a.v},set:function set(a,c){return b.def(this,0===a?0:a,c)}},b,!0)},function(v,w,b){var j=b(2),m=b(6),o=b(142),n=b(12),p=b(137),r=b(22),t=b(138),l=b(108),d=b(119),f=b(11)("id"),k=b(17),h=b(16),q=b(121),i=b(8),s=Object.isExtensible||h,c=i?"_s":"size",u=0,g=function(a,b){if(!h(a))return"symbol"==typeof a?a:("string"==typeof a?"S":"P")+a;if(!k(a,f)){if(!s(a))return"F";if(!b)return"E";m(a,f,++u)}return"O"+a[f]},e=function(b,c){var a,d=g(c);if("F"!==d)return b._i[d];for(a=b._f;a;a=a.n)if(a.k==c)return a};v.exports={getConstructor:function(d,f,g,h){var b=d(function(d,e){p(d,b,f),d._i=j.create(null),d._f=a,d._l=a,d[c]=0,e!=a&&t(e,g,d[h],d)});return o(b.prototype,{clear:function clear(){for(var d=this,e=d._i,b=d._f;b;b=b.n)b.r=!0,b.p&&(b.p=b.p.n=a),delete e[b.i];d._f=d._l=a,d[c]=0},"delete":function(g){var b=this,a=e(b,g);if(a){var d=a.n,f=a.p;delete b._i[a.i],a.r=!0,f&&(f.n=d),d&&(d.p=f),b._f==a&&(b._f=d),b._l==a&&(b._l=f),b[c]--}return!!a},forEach:function forEach(c){for(var b,d=n(c,arguments.length>1?arguments[1]:a,3);b=b?b.n:this._f;)for(d(b.v,b.k,this);b&&b.r;)b=b.p},has:function has(a){return!!e(this,a)}}),i&&j.setDesc(b.prototype,"size",{get:function(){return r(this[c])}}),b},def:function(b,f,j){var h,i,d=e(b,f);return d?d.v=j:(b._l=d={i:i=g(f,!0),k:f,v:j,p:h=b._l,n:a,r:!1},b._f||(b._f=d),h&&(h.n=d),b[c]++,"F"!==i&&(b._i[i]=d)),b},getEntry:e,setStrong:function(e,b,c){l(e,b,function(b,c){this._t=b,this._k=c,this._l=a},function(){for(var c=this,e=c._k,b=c._l;b&&b.r;)b=b.p;return c._t&&(c._l=b=b?b.n:c._t._f)?"keys"==e?d(0,b.k):"values"==e?d(0,b.v):d(0,[b.k,b.v]):(c._t=a,d(1))},c?"entries":"values",!c,!0),q(b)}}},function(l,n,b){var k=b(4),c=b(3),g=b(10),f=b(142),i=b(138),j=b(137),d=b(16),e=b(9),h=b(115),m=b(35);l.exports=function(o,v,y,x,p,l){var t=k[o],b=t,s=p?"set":"add",n=b&&b.prototype,w={},r=function(b){var c=n[b];g(n,b,"delete"==b?function(a){return l&&!d(a)?!1:c.call(this,0===a?0:a)}:"has"==b?function has(a){return l&&!d(a)?!1:c.call(this,0===a?0:a)}:"get"==b?function get(b){return l&&!d(b)?a:c.call(this,0===b?0:b)}:"add"==b?function add(a){return c.call(this,0===a?0:a),this}:function set(a,b){return c.call(this,0===a?0:a,b),this})};if("function"==typeof b&&(l||n.forEach&&!e(function(){(new b).entries().next()}))){var u,q=new b,z=q[s](l?{}:-0,1)!=q,A=e(function(){q.has(1)}),B=h(function(a){new b(a)});B||(b=v(function(e,d){j(e,b,o);var c=new t;return d!=a&&i(d,p,c[s],c),c}),b.prototype=n,n.constructor=b),l||q.forEach(function(b,a){u=1/a===-(1/0)}),(A||u)&&(r("delete"),r("has"),p&&r("get")),(u||z)&&r(s),l&&n.clear&&delete n.clear}else b=x.getConstructor(v,o,p,s),f(b.prototype,y);return m(b,o),w[o]=b,c(c.G+c.W+c.F*(b!=t),w),l||x.setStrong(b,o,p),b}},function(d,e,b){var c=b(144);b(145)("Set",function(b){return function Set(){return b(this,arguments.length>0?arguments[0]:a)}},{add:function add(a){return c.def(this,a=0===a?0:a,a)}},c)},function(n,m,b){var l=b(2),k=b(10),c=b(148),d=b(16),j=b(17),i=c.frozenStore,h=c.WEAK,f=Object.isExtensible||d,e={},g=b(145)("WeakMap",function(b){return function WeakMap(){return b(this,arguments.length>0?arguments[0]:a)}},{get:function get(a){if(d(a)){if(!f(a))return i(this).get(a);if(j(a,h))return a[h][this._i]}},set:function set(a,b){return c.def(this,a,b)}},c,!0,!0);7!=(new g).set((Object.freeze||Object)(e),7).get(e)&&l.each.call(["delete","has","get","set"],function(a){var b=g.prototype,c=b[a];k(b,a,function(b,e){if(d(b)&&!f(b)){var g=i(this)[a](b,e);return"set"==a?this:g}return c.call(this,b,e)})})},function(s,t,b){var r=b(6),q=b(142),m=b(20),h=b(16),l=b(137),k=b(138),j=b(28),d=b(17),c=b(11)("weak"),g=Object.isExtensible||h,n=j(5),o=j(6),p=0,e=function(a){return a._l||(a._l=new i)},i=function(){this.a=[]},f=function(a,b){return n(a.a,function(a){return a[0]===b})};i.prototype={get:function(b){var a=f(this,b);return a?a[1]:void 0},has:function(a){return!!f(this,a)},set:function(a,b){var c=f(this,a);c?c[1]=b:this.a.push([a,b])},"delete":function(b){var a=o(this.a,function(a){return a[0]===b});return~a&&this.a.splice(a,1),!!~a}},s.exports={getConstructor:function(f,i,j,m){var b=f(function(c,d){l(c,b,i),c._i=p++,c._l=a,d!=a&&k(d,j,c[m],c)});return q(b.prototype,{"delete":function(a){return h(a)?g(a)?d(a,c)&&d(a[c],this._i)&&delete a[c][this._i]:e(this)["delete"](a):!1},has:function has(a){return h(a)?g(a)?d(a,c)&&d(a[c],this._i):e(this).has(a):!1}}),b},def:function(b,a,f){return g(m(a))?(d(a,c)||r(a,c,{}),a[c][b._i]=f):e(b).set(a,f),b},frozenStore:e,WEAK:c}},function(d,e,b){var c=b(148);b(145)("WeakSet",function(b){return function WeakSet(){return b(this,arguments.length>0?arguments[0]:a)}},{add:function add(a){return c.def(this,a,!0)}},c,!1,!0)},function(d,e,b){var a=b(3),c=Function.apply;a(a.S,"Reflect",{apply:function apply(a,b,d){return c.call(a,b,d)}})},function(i,j,b){var f=b(2),c=b(3),d=b(13),g=b(20),e=b(16),h=Function.bind||b(5).Function.prototype.bind;c(c.S+c.F*b(9)(function(){function F(){}return!(Reflect.construct(function(){},[],F)instanceof F)}),"Reflect",{construct:function construct(c,b){d(c);var j=arguments.length<3?c:d(arguments[2]);if(c==j){if(b!=a)switch(g(b).length){case 0:return new c;case 1:return new c(b[0]);case 2:return new c(b[0],b[1]);case 3:return new c(b[0],b[1],b[2]);case 4:return new c(b[0],b[1],b[2],b[3])}var i=[null];return i.push.apply(i,b),new(h.apply(c,i))}var k=j.prototype,l=f.create(e(k)?k:Object.prototype),m=Function.apply.call(c,l,b);return e(m)?m:l}})},function(e,f,a){var c=a(2),b=a(3),d=a(20);b(b.S+b.F*a(9)(function(){Reflect.defineProperty(c.setDesc({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function defineProperty(a,b,e){d(a);try{return c.setDesc(a,b,e),!0}catch(f){return!1}}})},function(e,f,a){var b=a(3),c=a(2).getDesc,d=a(20);b(b.S,"Reflect",{deleteProperty:function deleteProperty(a,b){var e=c(d(a),b);return e&&!e.configurable?!1:delete a[b]}})},function(f,g,b){var c=b(3),e=b(20),d=function(a){this._t=e(a),this._i=0;var b,c=this._k=[];for(b in a)c.push(b)};b(110)(d,"Object",function(){var c,b=this,d=b._k;do if(b._i>=d.length)return{value:a,done:!0};while(!((c=d[b._i++])in b._t));return{value:c,done:!1}}),c(c.S,"Reflect",{enumerate:function enumerate(a){return new d(a)}})},function(h,i,b){function get(b,h){var d,j,i=arguments.length<3?b:arguments[2];return g(b)===i?b[h]:(d=c.getDesc(b,h))?e(d,"value")?d.value:d.get!==a?d.get.call(i):a:f(j=c.getProto(b))?get(j,h,i):void 0}var c=b(2),e=b(17),d=b(3),f=b(16),g=b(20);d(d.S,"Reflect",{get:get})},function(e,f,a){var c=a(2),b=a(3),d=a(20);b(b.S,"Reflect",{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(a,b){return c.getDesc(d(a),b)}})},function(e,f,a){var b=a(3),c=a(2).getProto,d=a(20);b(b.S,"Reflect",{getPrototypeOf:function getPrototypeOf(a){return c(d(a))}})},function(c,d,b){var a=b(3);a(a.S,"Reflect",{has:function has(a,b){return b in a}})},function(e,f,a){var b=a(3),d=a(20),c=Object.isExtensible;b(b.S,"Reflect",{isExtensible:function isExtensible(a){return d(a),c?c(a):!0}})},function(c,d,a){var b=a(3);b(b.S,"Reflect",{ownKeys:a(161)})},function(d,f,a){var b=a(2),e=a(20),c=a(4).Reflect;d.exports=c&&c.ownKeys||function ownKeys(a){var c=b.getNames(e(a)),d=b.getSymbols;return d?c.concat(d(a)):c}},function(e,f,a){var b=a(3),d=a(20),c=Object.preventExtensions;b(b.S,"Reflect",{preventExtensions:function preventExtensions(a){d(a);try{return c&&c(a),!0}catch(b){return!1}}})},function(i,j,b){function set(j,i,k){var l,m,d=arguments.length<4?j:arguments[3],b=c.getDesc(h(j),i);if(!b){if(f(m=c.getProto(j)))return set(m,i,k,d);b=e(0)}return g(b,"value")?b.writable!==!1&&f(d)?(l=c.getDesc(d,i)||e(0),l.value=k,c.setDesc(d,i,l),!0):!1:b.set===a?!1:(b.set.call(d,k),!0)}var c=b(2),g=b(17),d=b(3),e=b(7),h=b(20),f=b(16);d(d.S,"Reflect",{set:set})},function(d,e,b){var c=b(3),a=b(45);a&&c(c.S,"Reflect",{setPrototypeOf:function setPrototypeOf(b,c){a.check(b,c);try{return a.set(b,c),!0}catch(d){return!1}}})},function(e,f,b){var c=b(3),d=b(33)(!0);c(c.P,"Array",{includes:function includes(b){return d(this,b,arguments.length>1?arguments[1]:a)}}),b(118)("includes")},function(d,e,a){var b=a(3),c=a(98)(!0);b(b.P,"String",{at:function at(a){return c(this,a)}})},function(e,f,b){var c=b(3),d=b(168);c(c.P,"String",{padLeft:function padLeft(b){return d(this,b,arguments.length>1?arguments[1]:a,!0)}})},function(c,g,b){var d=b(27),e=b(105),f=b(22);c.exports=function(l,m,i,n){var c=String(f(l)),j=c.length,g=i===a?" ":String(i),k=d(m);if(j>=k)return c;""==g&&(g=" ");var h=k-j,b=e.call(g,Math.ceil(h/g.length));return b.length>h&&(b=b.slice(0,h)),n?b+c:c+b}},function(e,f,b){var c=b(3),d=b(168);c(c.P,"String",{padRight:function padRight(b){return d(this,b,arguments.length>1?arguments[1]:a,!1)}})},function(b,c,a){a(63)("trimLeft",function(a){return function trimLeft(){return a(this,1)}})},function(b,c,a){a(63)("trimRight",function(a){return function trimRight(){return a(this,2)}})},function(d,e,a){var b=a(3),c=a(173)(/[\\^$*+?.()|[\]{}]/g,"\\$&");b(b.S,"RegExp",{escape:function escape(a){return c(a)}})},function(a,b){a.exports=function(b,a){var c=a===Object(a)?function(b){return a[b]}:a;return function(a){return String(a).replace(b,c)}}},function(g,h,a){var b=a(2),c=a(3),d=a(161),e=a(23),f=a(7);c(c.S,"Object",{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(k){for(var a,g,h=e(k),l=b.setDesc,m=b.getDesc,i=d(h),c={},j=0;i.length>j;)g=m(h,a=i[j++]),a in c?l(c,a,f(0,g)):c[a]=g;return c}})},function(d,e,a){var b=a(3),c=a(176)(!1);b(b.S,"Object",{values:function values(a){return c(a)}})},function(c,f,a){var b=a(2),d=a(23),e=b.isEnum;c.exports=function(a){return function(j){for(var c,f=d(j),g=b.getKeys(f),k=g.length,h=0,i=[];k>h;)e.call(f,c=g[h++])&&i.push(a?[c,f[c]]:f[c]);return i}}},function(d,e,a){var b=a(3),c=a(176)(!0);b(b.S,"Object",{entries:function entries(a){return c(a)}})},function(c,d,a){var b=a(3);b(b.P,"Map",{toJSON:a(179)("Map")})},function(b,e,a){var c=a(138),d=a(47);b.exports=function(a){return function toJSON(){if(d(this)!=a)throw TypeError(a+"#toJSON isn't generic");var b=[];return c(this,!1,b.push,b),b}}},function(c,d,a){var b=a(3);b(b.P,"Set",{toJSON:a(179)("Set")})},function(d,e,b){var a=b(3),c=b(141);a(a.G+a.B,{setImmediate:c.set,clearImmediate:c.clear})},function(l,k,a){a(117);var g=a(4),j=a(6),c=a(109),b=a(31)("iterator"),h=g.NodeList,i=g.HTMLCollection,e=h&&h.prototype,d=i&&i.prototype,f=c.NodeList=c.HTMLCollection=c.Array;e&&!e[b]&&j(e,b,f),d&&!d[b]&&j(d,b,f)},function(i,j,a){var c=a(4),b=a(3),g=a(19),h=a(184),d=c.navigator,e=!!d&&/MSIE .\./.test(d.userAgent),f=function(a){return e?function(b,c){return a(g(h,[].slice.call(arguments,2),"function"==typeof b?b:Function(b)),c)}:a};b(b.G+b.B+b.F*e,{setTimeout:f(c.setTimeout),setInterval:f(c.setInterval)})},function(c,f,a){var d=a(185),b=a(19),e=a(13);c.exports=function(){for(var h=e(this),a=arguments.length,c=Array(a),f=0,i=d._,g=!1;a>f;)(c[f]=arguments[f++])===i&&(g=!0);return function(){var d,k=this,f=arguments,l=f.length,e=0,j=0;if(!g&&!l)return b(h,c,k);if(d=c.slice(),g)for(;a>e;e++)d[e]===i&&(d[e]=f[j++]);for(;l>j;)d.push(f[j++]);return b(h,d,k)}}},function(a,c,b){a.exports=b(4)},function(x,w,b){function Dict(b){var c=f.create(null);return b!=a&&(r(b)?q(b,!0,function(a,b){c[a]=b}):o(c,b)),c}function reduce(g,h,l){p(h);var a,c,b=i(g),e=k(b),j=e.length,f=0;if(arguments.length<3){if(!j)throw TypeError("Reduce of empty object with no initial value");a=b[e[f++]]}else a=Object(l);for(;j>f;)d(b,c=e[f++])&&(a=h(a,b[c],c,g));return a}function includes(c,b){return(b==b?j(c,b):l(c,function(a){return a!=a}))!==a}function get(a,b){return d(a,b)?a[b]:void 0}function set(a,b,c){return v&&b in Object?f.setDesc(a,b,t(0,c)):a[b]=c,a}function isDict(a){return u(a)&&f.getProto(a)===Dict.prototype}var f=b(2),n=b(12),e=b(3),t=b(7),o=b(41),j=b(36),p=b(13),q=b(138),r=b(187),s=b(110),g=b(119),u=b(16),i=b(23),v=b(8),d=b(17),k=f.getKeys,c=function(b){var e=1==b,c=4==b;return function(l,m,o){var f,h,g,p=n(m,o,3),k=i(l),j=e||7==b||2==b?new("function"==typeof this?this:Dict):a;for(f in k)if(d(k,f)&&(h=k[f],g=p(h,f,l),b))if(e)j[f]=g;else if(g)switch(b){case 2:j[f]=h;break;case 3:return!0;case 5:return h;case 6:return f;case 7:j[g[0]]=g[1]}else if(c)return!1;return 3==b||c?c:j}},l=c(6),h=function(a){return function(b){return new m(b,a)}},m=function(a,b){this._t=i(a),this._a=k(a),this._i=0,this._k=b};s(m,"Dict",function(){var c,b=this,e=b._t,f=b._a,h=b._k;do if(b._i>=f.length)return b._t=a,g(1);while(!d(e,c=f[b._i++]));return"keys"==h?g(0,c):"values"==h?g(0,e[c]):g(0,[c,e[c]])}),Dict.prototype=null,e(e.G+e.F,{Dict:Dict}),e(e.S,"Dict",{keys:h("keys"),values:h("values"),entries:h("entries"),forEach:c(0),map:c(1),filter:c(2),some:c(3),every:c(4),find:c(5),findKey:l,mapPairs:c(7),reduce:reduce,keyOf:j,includes:includes,has:d,get:get,set:set,isDict:isDict})},function(c,g,b){var d=b(47),e=b(31)("iterator"),f=b(109);c.exports=b(5).isIterable=function(c){var b=Object(c);return b[e]!==a||"@@iterator"in b||f.hasOwnProperty(d(b))}},function(b,e,a){var c=a(20),d=a(114);b.exports=a(5).getIterator=function(a){var b=d(a);if("function"!=typeof b)throw TypeError(a+" is not iterable!");return c(b.call(a))}},function(f,g,a){var c=a(4),d=a(5),b=a(3),e=a(184);b(b.G+b.F,{delay:function delay(a){return new(d.Promise||c.Promise)(function(b){setTimeout(e.call(b,!0),a)})}})},function(d,e,a){var c=a(185),b=a(3);a(5)._=c._=c._||{},b(b.P+b.F,"Function",{part:a(184)})},function(c,d,b){var a=b(3);a(a.S+a.F,"Object",{isObject:b(16)})},function(c,d,b){var a=b(3);a(a.S+a.F,"Object",{classof:b(47)})},function(d,e,b){var a=b(3),c=b(194);a(a.S+a.F,"Object",{define:c})},function(c,f,a){var b=a(2),d=a(161),e=a(23);c.exports=function define(a,c){for(var f,g=d(e(c)),i=g.length,h=0;i>h;)b.setDesc(a,f=g[h++],b.getDesc(c,f));return a}},function(e,f,a){var b=a(3),c=a(194),d=a(2).create;b(b.S+b.F,"Object",{make:function(a,b){return c(d(a),b)}})},function(c,d,b){b(108)(Number,"Number",function(a){this._l=+a,this._i=0},function(){var b=this._i++,c=!(this._l>b);return{done:c,value:c?a:b}})},function(d,e,b){var a=b(3),c=b(173)(/[&<>"']/g,{"&":"&","<":"<",">":">",'"':""","'":"'"});a(a.P+a.F,"String",{escapeHTML:function escapeHTML(){return c(this)}})},function(d,e,b){var a=b(3),c=b(173)(/&(?:amp|lt|gt|quot|apos);/g,{"&":"&","<":"<",">":">",""":'"',"'":"'"});a(a.P+a.F,"String",{unescapeHTML:function unescapeHTML(){return c(this)}})},function(g,h,a){var e=a(2),f=a(4),b=a(3),c={},d=!0;e.each.call("assert,clear,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,isIndependentlyComposed,log,markTimeline,profile,profileEnd,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn".split(","),function(a){c[a]=function(){var b=f.console;return d&&b&&b[a]?Function.apply.call(b[a],b,arguments):void 0}}),b(b.G+b.F,{log:a(41)(c.log,c,{enable:function(){d=!0},disable:function(){d=!1}})})},function(i,j,b){var g=b(2),e=b(3),h=b(12),f=b(5).Array||Array,c={},d=function(d,b){g.each.call(d.split(","),function(d){b==a&&d in f?c[d]=f[d]:d in[]&&(c[d]=h(Function.call,[][d],b))})};d("pop,reverse,shift,keys,values,entries",1),d("indexOf,every,some,forEach,map,filter,find,findIndex,includes",3),d("join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill"),e(e.S,"Array",c)}]),"undefined"!=typeof module&&module.exports?module.exports=b:"function"==typeof define&&define.amd?define(function(){return b}):c.core=b}(1,1); -//# sourceMappingURL=core.min.js.map \ No newline at end of file diff --git a/js/node_modules/core-js/client/core.min.js.map b/js/node_modules/core-js/client/core.min.js.map deleted file mode 100644 index eaa2482..0000000 --- a/js/node_modules/core-js/client/core.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["core.js"],"names":["__e","__g","undefined","modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","IE8_DOM_DEFINE","$","$export","DESCRIPTORS","createDesc","html","cel","has","cof","invoke","fails","anObject","aFunction","isObject","toObject","toIObject","toInteger","toIndex","toLength","IObject","IE_PROTO","createArrayMethod","arrayIndexOf","ObjectProto","Object","prototype","ArrayProto","Array","arraySlice","slice","arrayJoin","join","defineProperty","setDesc","getOwnDescriptor","getDesc","defineProperties","setDescs","factories","get","a","O","P","Attributes","e","TypeError","value","propertyIsEnumerable","Properties","keys","getKeys","length","i","S","F","getOwnPropertyDescriptor","keys1","split","keys2","concat","keysLen1","createDict","iframeDocument","iframe","gt","style","display","appendChild","src","contentWindow","document","open","write","close","createGetKeys","names","object","key","result","push","Empty","getPrototypeOf","getProto","constructor","getOwnPropertyNames","getNames","create","construct","len","args","n","Function","bind","that","fn","this","partArgs","arguments","bound","begin","end","klass","start","upTo","size","cloned","charAt","separator","isArray","createArrayReduce","isRight","callbackfn","memo","index","methodize","$fn","arg1","forEach","each","map","filter","some","every","reduce","reduceRight","indexOf","lastIndexOf","el","fromIndex","Math","min","now","Date","lz","num","toISOString","NaN","isFinite","RangeError","d","y","getUTCFullYear","getUTCMilliseconds","s","abs","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","$Object","isEnum","getSymbols","getOwnPropertySymbols","global","core","hide","redefine","ctx","PROTOTYPE","type","name","source","own","out","exp","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","B","target","expProto","W","window","self","version","bitmap","enumerable","configurable","writable","exec","SRC","TO_STRING","$toString","TPL","inspectSource","it","val","safe","hasOwnProperty","String","toString","px","random","b","apply","documentElement","is","createElement","un","defined","ceil","floor","isNaN","max","asc","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","res","f","SPECIES","original","C","arg","store","uid","Symbol","SHARED","IS_INCLUDES","$fails","shared","setToStringTag","wks","keyOf","$names","enumKeys","_create","$Symbol","$JSON","JSON","_stringify","stringify","setter","HIDDEN","SymbolRegistry","AllSymbols","useNative","setSymbolDesc","D","protoDesc","wrap","tag","sym","_k","set","isSymbol","$defineProperty","$defineProperties","l","$create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","$stringify","replacer","$replacer","$$","buggyJSON","symbolStatics","for","keyFor","useSetter","useSimple","def","TAG","stat","windowNames","getWindowNames","symbols","assign","A","K","k","T","$$len","j","x","setPrototypeOf","check","proto","test","buggy","__proto__","classof","ARG","callee","$freeze","freeze","KEY","$seal","seal","$preventExtensions","preventExtensions","$isFrozen","isFrozen","$isSealed","isSealed","$isExtensible","isExtensible","$getPrototypeOf","$keys","FProto","nameRE","NAME","match","HAS_INSTANCE","FunctionProto","toPrimitive","$trim","trim","NUMBER","$Number","Base","BROKEN_COF","TRIM","toNumber","argument","third","radix","maxCode","first","charCodeAt","code","digits","parseInt","Number","valueOf","spaces","space","non","ltrim","RegExp","rtrim","exporter","string","replace","EPSILON","pow","_isFinite","isInteger","number","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","parseFloat","log1p","sqrt","$acosh","acosh","MAX_VALUE","log","LN2","asinh","atanh","sign","cbrt","clz32","LOG2E","cosh","expm1","EPSILON32","MAX32","MIN32","roundTiesToEven","fround","$abs","$sign","Infinity","hypot","value1","value2","div","sum","larg","$imul","imul","UINT16","xn","yn","xl","yl","log10","LN10","log2","sinh","tanh","trunc","fromCharCode","$fromCodePoint","fromCodePoint","raw","callSite","tpl","$at","codePointAt","pos","context","ENDS_WITH","$endsWith","endsWith","searchString","endPosition","search","isRegExp","MATCH","re","INCLUDES","includes","repeat","count","str","STARTS_WITH","$startsWith","startsWith","iterated","_t","_i","point","done","LIBRARY","Iterators","$iterCreate","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Constructor","next","DEFAULT","IS_SET","FORCED","methods","getMethod","kind","values","entries","DEF_VALUES","VALUES_BUG","$native","$default","IteratorPrototype","descriptor","isArrayIter","getIterFn","iter","from","arrayLike","step","iterator","mapfn","mapping","iterFn","ret","getIteratorMethod","SAFE_CLOSING","riter","skipClosing","arr","of","addToUnscopables","Arguments","UNSCOPABLES","copyWithin","to","inc","fill","endPos","$find","forced","find","findIndex","$flags","$RegExp","re1","re2","CORRECT_NEW","piRE","fiU","ignoreCase","multiline","unicode","sticky","flags","regexp","SYMBOL","REPLACE","$replace","searchValue","replaceValue","SEARCH","SPLIT","$split","limit","Wrapper","strictNew","forOf","setProto","same","speciesConstructor","asap","PROMISE","process","isNode","testResolve","sub","resolve","USE_NATIVE","P2","works","then","thenableThenGotten","sameConstructor","getConstructor","isThenable","PromiseCapability","reject","promise","$$resolve","$$reject","perform","error","notify","record","isReject","chain","v","ok","run","reaction","handler","fail","h","setTimeout","console","isUnhandled","emit","onunhandledrejection","reason","_d","$reject","r","$resolve","wrapper","Promise","executor","err","onFulfilled","onRejected","catch","capability","all","iterable","abrupt","remaining","results","alreadyCalled","race","head","last","macrotask","Observer","MutationObserver","WebKitMutationObserver","flush","parent","domain","exit","enter","nextTick","toggle","node","createTextNode","observe","characterData","data","task","defer","channel","port","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","counter","queue","ONREADYSTATECHANGE","listner","event","port2","port1","onmessage","postMessage","addEventListener","importScripts","removeChild","clear","strong","Map","entry","getEntry","redefineAll","$iterDefine","ID","$has","setSpecies","SIZE","fastKey","_f","ADDER","_l","delete","prev","setStrong","$iterDetect","common","IS_WEAK","fixMethod","add","BUGGY_ZERO","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","Set","weak","frozenStore","WEAK","tmp","$WeakMap","WeakMap","method","arrayFind","arrayFindIndex","FrozenStore","findFrozen","splice","WeakSet","_apply","thisArgument","argumentsList","Reflect","Target","newTarget","$args","propertyKey","attributes","deleteProperty","desc","Enumerate","enumerate","receiver","ownKeys","V","existingDescriptor","ownDesc","$includes","at","$pad","padLeft","maxLength","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","padRight","trimLeft","trimRight","$re","escape","regExp","part","getOwnPropertyDescriptors","$values","isEntries","$entries","toJSON","$task","NL","NodeList","HTC","HTMLCollection","NLProto","HTCProto","ArrayValues","partial","navigator","MSIE","userAgent","time","setInterval","path","pargs","_","holder","Dict","dict","isIterable","init","findKey","isDict","createDictMethod","createDictIter","DictIterator","_a","mapPairs","getIterator","delay","define","mixin","make","&","<",">","\"","'","escapeHTML","&","<",">",""","'","unescapeHTML","enabled","$console","enable","disable","$ctx","$Array","statics","setStatics","amd"],"mappings":"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","file":"core.min.js"} \ No newline at end of file diff --git a/js/node_modules/core-js/client/library.js b/js/node_modules/core-js/client/library.js deleted file mode 100644 index f54e39c..0000000 --- a/js/node_modules/core-js/client/library.js +++ /dev/null @@ -1,4544 +0,0 @@ -/** - * core-js 1.2.6 - * https://github.com/zloirock/core-js - * License: http://rock.mit-license.org - * © 2015 Denis Pushkarev - */ -!function(__e, __g, undefined){ -'use strict'; -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(1); - __webpack_require__(32); - __webpack_require__(40); - __webpack_require__(42); - __webpack_require__(44); - __webpack_require__(46); - __webpack_require__(48); - __webpack_require__(49); - __webpack_require__(50); - __webpack_require__(51); - __webpack_require__(52); - __webpack_require__(53); - __webpack_require__(54); - __webpack_require__(55); - __webpack_require__(56); - __webpack_require__(57); - __webpack_require__(58); - __webpack_require__(59); - __webpack_require__(60); - __webpack_require__(62); - __webpack_require__(63); - __webpack_require__(64); - __webpack_require__(65); - __webpack_require__(66); - __webpack_require__(67); - __webpack_require__(68); - __webpack_require__(70); - __webpack_require__(71); - __webpack_require__(72); - __webpack_require__(74); - __webpack_require__(75); - __webpack_require__(76); - __webpack_require__(78); - __webpack_require__(79); - __webpack_require__(80); - __webpack_require__(81); - __webpack_require__(82); - __webpack_require__(83); - __webpack_require__(84); - __webpack_require__(85); - __webpack_require__(86); - __webpack_require__(87); - __webpack_require__(88); - __webpack_require__(89); - __webpack_require__(90); - __webpack_require__(92); - __webpack_require__(94); - __webpack_require__(98); - __webpack_require__(99); - __webpack_require__(101); - __webpack_require__(102); - __webpack_require__(106); - __webpack_require__(112); - __webpack_require__(113); - __webpack_require__(116); - __webpack_require__(118); - __webpack_require__(120); - __webpack_require__(122); - __webpack_require__(123); - __webpack_require__(124); - __webpack_require__(131); - __webpack_require__(134); - __webpack_require__(135); - __webpack_require__(137); - __webpack_require__(138); - __webpack_require__(139); - __webpack_require__(140); - __webpack_require__(141); - __webpack_require__(142); - __webpack_require__(143); - __webpack_require__(144); - __webpack_require__(145); - __webpack_require__(146); - __webpack_require__(147); - __webpack_require__(148); - __webpack_require__(150); - __webpack_require__(151); - __webpack_require__(152); - __webpack_require__(153); - __webpack_require__(154); - __webpack_require__(155); - __webpack_require__(157); - __webpack_require__(158); - __webpack_require__(159); - __webpack_require__(160); - __webpack_require__(162); - __webpack_require__(163); - __webpack_require__(165); - __webpack_require__(166); - __webpack_require__(168); - __webpack_require__(169); - __webpack_require__(170); - __webpack_require__(171); - __webpack_require__(174); - __webpack_require__(109); - __webpack_require__(176); - __webpack_require__(175); - __webpack_require__(177); - __webpack_require__(178); - __webpack_require__(179); - __webpack_require__(180); - __webpack_require__(181); - __webpack_require__(183); - __webpack_require__(184); - __webpack_require__(185); - __webpack_require__(186); - __webpack_require__(187); - module.exports = __webpack_require__(188); - - -/***/ }, -/* 1 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var $ = __webpack_require__(2) - , $export = __webpack_require__(3) - , DESCRIPTORS = __webpack_require__(8) - , createDesc = __webpack_require__(10) - , html = __webpack_require__(11) - , cel = __webpack_require__(12) - , has = __webpack_require__(14) - , cof = __webpack_require__(15) - , invoke = __webpack_require__(16) - , fails = __webpack_require__(9) - , anObject = __webpack_require__(17) - , aFunction = __webpack_require__(7) - , isObject = __webpack_require__(13) - , toObject = __webpack_require__(18) - , toIObject = __webpack_require__(20) - , toInteger = __webpack_require__(22) - , toIndex = __webpack_require__(23) - , toLength = __webpack_require__(24) - , IObject = __webpack_require__(21) - , IE_PROTO = __webpack_require__(25)('__proto__') - , createArrayMethod = __webpack_require__(26) - , arrayIndexOf = __webpack_require__(31)(false) - , ObjectProto = Object.prototype - , ArrayProto = Array.prototype - , arraySlice = ArrayProto.slice - , arrayJoin = ArrayProto.join - , defineProperty = $.setDesc - , getOwnDescriptor = $.getDesc - , defineProperties = $.setDescs - , factories = {} - , IE8_DOM_DEFINE; - - if(!DESCRIPTORS){ - IE8_DOM_DEFINE = !fails(function(){ - return defineProperty(cel('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - $.setDesc = function(O, P, Attributes){ - if(IE8_DOM_DEFINE)try { - return defineProperty(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)anObject(O)[P] = Attributes.value; - return O; - }; - $.getDesc = function(O, P){ - if(IE8_DOM_DEFINE)try { - return getOwnDescriptor(O, P); - } catch(e){ /* empty */ } - if(has(O, P))return createDesc(!ObjectProto.propertyIsEnumerable.call(O, P), O[P]); - }; - $.setDescs = defineProperties = function(O, Properties){ - anObject(O); - var keys = $.getKeys(Properties) - , length = keys.length - , i = 0 - , P; - while(length > i)$.setDesc(O, P = keys[i++], Properties[P]); - return O; - }; - } - $export($export.S + $export.F * !DESCRIPTORS, 'Object', { - // 19.1.2.6 / 15.2.3.3 Object.getOwnPropertyDescriptor(O, P) - getOwnPropertyDescriptor: $.getDesc, - // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) - defineProperty: $.setDesc, - // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties) - defineProperties: defineProperties - }); - - // IE 8- don't enum bug keys - var keys1 = ('constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,' + - 'toLocaleString,toString,valueOf').split(',') - // Additional keys for getOwnPropertyNames - , keys2 = keys1.concat('length', 'prototype') - , keysLen1 = keys1.length; - - // Create object with `null` prototype: use iframe Object with cleared prototype - var createDict = function(){ - // Thrash, waste and sodomy: IE GC bug - var iframe = cel('iframe') - , i = keysLen1 - , gt = '>' - , iframeDocument; - iframe.style.display = 'none'; - html.appendChild(iframe); - iframe.src = 'javascript:'; // eslint-disable-line no-script-url - // createDict = iframe.contentWindow.Object; - // html.removeChild(iframe); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write('