Compare commits
18 Commits
v3
...
releases/v
Author | SHA1 | Date | |
---|---|---|---|
49df04613e | |||
033d472283 | |||
39c9ce7c86 | |||
8b315ca141 | |||
cd5893b2c6 | |||
c9b9c77f3b | |||
16107722cd | |||
9420096b1d | |||
15adaed2d7 | |||
addc7fa7a2 | |||
b8c38b583f | |||
d1407282e6 | |||
9130accbad | |||
9c08345130 | |||
4ad20b153f | |||
65ed8d8b59 | |||
e3eb20c3db | |||
2b219c86f3 |
6
.github/workflows/test.yml
vendored
6
.github/workflows/test.yml
vendored
@ -6,7 +6,7 @@ jobs:
|
|||||||
tests:
|
tests:
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-18.04, macos]
|
os: [ubuntu-18.04, macos-latest]
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v1
|
||||||
@ -17,4 +17,8 @@ jobs:
|
|||||||
- run: yarn test
|
- run: yarn test
|
||||||
- name: Install Nix
|
- name: Install Nix
|
||||||
uses: ./
|
uses: ./
|
||||||
|
- run: nix-env -iA cachix -f https://github.com/NixOS/nixpkgs/tarball/ab5863afada3c1b50fc43bf774b75ea71b287cde
|
||||||
|
- run: cat /etc/nix/nix.conf
|
||||||
|
# cachix should be available and be able to configure a cache
|
||||||
|
- run: cachix use cachix
|
||||||
- run: nix-build test.nix
|
- run: nix-build test.nix
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,5 +1,7 @@
|
|||||||
__tests__/runner/*
|
__tests__/runner/*
|
||||||
|
|
||||||
|
# comment out in distribution branches
|
||||||
|
|
||||||
# Rest pulled from https://github.com/github/gitignore/blob/master/Node.gitignore
|
# Rest pulled from https://github.com/github/gitignore/blob/master/Node.gitignore
|
||||||
# Logs
|
# Logs
|
||||||
logs
|
logs
|
||||||
|
@ -18,10 +18,13 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v1
|
||||||
- uses: cachix/install-nix-action@v2
|
- uses: cachix/install-nix-action@v6
|
||||||
- run: nix-build
|
- run: nix-build
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
See [action.yml](action.yml) for all options.
|
||||||
|
|
||||||
See also [cachix-action](https://github.com/cachix/cachix-action) for
|
See also [cachix-action](https://github.com/cachix/cachix-action) for
|
||||||
simple binary cache setup to speed up your builds and share binaries
|
simple binary cache setup to speed up your builds and share binaries
|
||||||
with developers.
|
with developers.
|
||||||
|
102
lib/create-darwin-volume.sh
Executable file
102
lib/create-darwin-volume.sh
Executable file
@ -0,0 +1,102 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
root_disks() {
|
||||||
|
diskutil list -plist /
|
||||||
|
}
|
||||||
|
|
||||||
|
apfs_volumes_for() {
|
||||||
|
disk=$1
|
||||||
|
diskutil apfs list -plist "$disk"
|
||||||
|
}
|
||||||
|
|
||||||
|
disk_identifier() {
|
||||||
|
xpath "/plist/dict/key[text()='WholeDisks']/following-sibling::array[1]/string/text()" 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
volume_get() {
|
||||||
|
key=$1 i=$2
|
||||||
|
xpath "/plist/dict/array/dict/key[text()='Volumes']/following-sibling::array/dict[$i]/key[text()='$key']/following-sibling::string[1]/text()" 2> /dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
find_nix_volume() {
|
||||||
|
disk=$1
|
||||||
|
i=1
|
||||||
|
volumes=$(apfs_volumes_for "$disk")
|
||||||
|
while true; do
|
||||||
|
name=$(echo "$volumes" | volume_get "Name" "$i")
|
||||||
|
if [ -z "$name" ]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
case "$name" in
|
||||||
|
[Nn]ix*)
|
||||||
|
echo "$name"
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
i=$((i+1))
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
test_fstab() {
|
||||||
|
grep -q "/nix" /etc/fstab 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
test_synthetic_conf() {
|
||||||
|
grep -q "^nix" /etc/synthetic.conf 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
test_nix() {
|
||||||
|
test -d "/nix"
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
(
|
||||||
|
echo ""
|
||||||
|
echo " ------------------------------------------------------------------ "
|
||||||
|
echo " | This installer will create a volume for the nix store and |"
|
||||||
|
echo " | configure it to mount at /nix. Follow these steps to uninstall. |"
|
||||||
|
echo " ------------------------------------------------------------------ "
|
||||||
|
echo ""
|
||||||
|
echo " 1. Remove the entry from fstab using 'sudo vifs'"
|
||||||
|
echo " 2. Destroy the data volume using 'diskutil apfs deleteVolume'"
|
||||||
|
echo " 3. Delete /etc/synthetic.conf"
|
||||||
|
echo ""
|
||||||
|
) >&2
|
||||||
|
|
||||||
|
if [ -L "/nix" ]; then
|
||||||
|
echo "error: /nix is a symlink, please remove it or edit synthetic.conf (requires reboot)" >&2
|
||||||
|
echo " /nix -> $(readlink "/nix")" >&2
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! test_synthetic_conf; then
|
||||||
|
echo "Configuring /etc/synthetic.conf..." >&2
|
||||||
|
echo nix | sudo tee /etc/synthetic.conf
|
||||||
|
/System/Library/Filesystems/apfs.fs/Contents/Resources/apfs.util -B
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! test_nix; then
|
||||||
|
echo "Creating mountpoint for /nix..." >&2
|
||||||
|
sudo mkdir /nix
|
||||||
|
fi
|
||||||
|
|
||||||
|
disk=$(root_disks | disk_identifier)
|
||||||
|
volume=$(find_nix_volume "$disk")
|
||||||
|
if [ -z "$volume" ]; then
|
||||||
|
echo "Creating a Nix Store volume..." >&2
|
||||||
|
sudo diskutil apfs addVolume "$disk" APFS 'Nix Store' -mountpoint /nix
|
||||||
|
volume="Nix Store"
|
||||||
|
else
|
||||||
|
echo "Using existing '$volume' volume" >&2
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! test_fstab; then
|
||||||
|
echo "Configuring /etc/fstab..." >&2
|
||||||
|
label=$(echo "$volume" | sed 's/ /\\040/g')
|
||||||
|
printf "\$a\nLABEL=%s /nix apfs rw\n.\nwq\n" "$label" | EDITOR=ed sudo vifs
|
||||||
|
sudo defaults write /Library/Preferences/SystemConfiguration/autodiskmount AutomountDisksWithoutUserLogin -bool true
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
63
lib/main.js
63
lib/main.js
@ -19,28 +19,46 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||||||
const core = __importStar(require("@actions/core"));
|
const core = __importStar(require("@actions/core"));
|
||||||
const exec = __importStar(require("@actions/exec"));
|
const exec = __importStar(require("@actions/exec"));
|
||||||
const tc = __importStar(require("@actions/tool-cache"));
|
const tc = __importStar(require("@actions/tool-cache"));
|
||||||
|
const child_process_1 = require("child_process");
|
||||||
const os_1 = require("os");
|
const os_1 = require("os");
|
||||||
const fs_1 = require("fs");
|
const process_1 = require("process");
|
||||||
|
const net_1 = require("net");
|
||||||
|
function nixConf() {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
// Workaround a segfault: https://github.com/NixOS/nix/issues/2733
|
||||||
|
yield exec.exec("sudo", ["mkdir", "-p", "/etc/nix"]);
|
||||||
|
yield exec.exec("sudo", ["sh", "-c", "echo http2 = false >> /etc/nix/nix.conf"]);
|
||||||
|
// Set jobs to number of cores
|
||||||
|
yield exec.exec("sudo", ["sh", "-c", "echo max-jobs = auto >> /etc/nix/nix.conf"]);
|
||||||
|
// Allow binary caches for runner user
|
||||||
|
yield exec.exec("sudo", ["sh", "-c", "echo trusted-users = root runner >> /etc/nix/nix.conf"]);
|
||||||
|
});
|
||||||
|
}
|
||||||
function run() {
|
function run() {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
try {
|
try {
|
||||||
const home = os_1.homedir();
|
|
||||||
const { username } = os_1.userInfo();
|
|
||||||
const PATH = process.env.PATH;
|
const PATH = process.env.PATH;
|
||||||
const CERTS_PATH = home + '/.nix-profile/etc/ssl/certs/ca-bundle.crt';
|
yield nixConf();
|
||||||
// Workaround a segfault: https://github.com/NixOS/nix/issues/2733
|
// Catalina workaround https://github.com/NixOS/nix/issues/2925
|
||||||
yield exec.exec("sudo", ["mkdir", "-p", "/etc/nix"]);
|
if (os_1.type() == "Darwin") {
|
||||||
yield exec.exec("sudo", ["sh", "-c", "echo http2 = false >> /etc/nix/nix.conf"]);
|
child_process_1.execFileSync(`${__dirname}/create-darwin-volume.sh`, { stdio: 'inherit' });
|
||||||
// Set jobs to number of cores
|
}
|
||||||
yield exec.exec("sudo", ["sh", "-c", "echo max-jobs = auto >> /etc/nix/nix.conf"]);
|
// Needed due to multi-user being too defensive
|
||||||
// TODO: retry due to all the things that go wrong
|
core.exportVariable('ALLOW_PREEXISTING_INSTALLATION', "1");
|
||||||
|
// TODO: retry due to all the things that can go wrong
|
||||||
const nixInstall = yield tc.downloadTool('https://nixos.org/nix/install');
|
const nixInstall = yield tc.downloadTool('https://nixos.org/nix/install');
|
||||||
yield exec.exec("sh", [nixInstall]);
|
yield exec.exec("sh", [nixInstall, "--daemon"]);
|
||||||
core.exportVariable('PATH', `${PATH}:${home}/.nix-profile/bin`);
|
// write nix.conf again as installation overwrites it, reload the daemon to pick up changes
|
||||||
core.exportVariable('NIX_PATH', `/nix/var/nix/profiles/per-user/${username}/channels`);
|
yield nixConf();
|
||||||
// macOS needs certificates hints
|
yield exec.exec("sudo", ["pkill", "-HUP", "nix-daemon"]);
|
||||||
if (fs_1.existsSync(CERTS_PATH)) {
|
// setup env
|
||||||
core.exportVariable('NIX_SSL_CERT_FILE', CERTS_PATH);
|
core.exportVariable('PATH', `${PATH}:/nix/var/nix/profiles/default/bin:/nix/var/nix/profiles/per-user/runner/profile/bin`);
|
||||||
|
core.exportVariable('NIX_PATH', `/nix/var/nix/profiles/per-user/root/channels`);
|
||||||
|
if (os_1.type() == "Darwin") {
|
||||||
|
// macOS needs certificates hints
|
||||||
|
core.exportVariable('NIX_SSL_CERT_FILE', '/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt');
|
||||||
|
// TODO: nc doesn't work correctly on macOS :(
|
||||||
|
yield awaitSocket();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
@ -49,4 +67,17 @@ function run() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
function awaitSocket() {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
const daemonSocket = net_1.createConnection({ path: '/nix/var/nix/daemon-socket/socket' });
|
||||||
|
daemonSocket.on('error', () => __awaiter(this, void 0, void 0, function* () {
|
||||||
|
console.log('Waiting for daemon socket to be available, reconnecting...');
|
||||||
|
yield new Promise(resolve => setTimeout(resolve, 500));
|
||||||
|
yield awaitSocket();
|
||||||
|
}));
|
||||||
|
daemonSocket.on('connect', () => {
|
||||||
|
process_1.exit(0);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
run();
|
run();
|
||||||
|
1
node_modules/.bin/acorn
generated
vendored
Symbolic link
1
node_modules/.bin/acorn
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../acorn/bin/acorn
|
1
node_modules/.bin/atob
generated
vendored
Symbolic link
1
node_modules/.bin/atob
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../atob/bin/atob.js
|
1
node_modules/.bin/escodegen
generated
vendored
Symbolic link
1
node_modules/.bin/escodegen
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../escodegen/bin/escodegen.js
|
1
node_modules/.bin/esgenerate
generated
vendored
Symbolic link
1
node_modules/.bin/esgenerate
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../escodegen/bin/esgenerate.js
|
1
node_modules/.bin/esparse
generated
vendored
Symbolic link
1
node_modules/.bin/esparse
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../esprima/bin/esparse.js
|
1
node_modules/.bin/esvalidate
generated
vendored
Symbolic link
1
node_modules/.bin/esvalidate
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../esprima/bin/esvalidate.js
|
1
node_modules/.bin/handlebars
generated
vendored
Symbolic link
1
node_modules/.bin/handlebars
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../handlebars/bin/handlebars
|
1
node_modules/.bin/import-local-fixture
generated
vendored
Symbolic link
1
node_modules/.bin/import-local-fixture
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../import-local/fixtures/cli.js
|
1
node_modules/.bin/is-ci
generated
vendored
Symbolic link
1
node_modules/.bin/is-ci
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../is-ci/bin.js
|
1
node_modules/.bin/jest
generated
vendored
Symbolic link
1
node_modules/.bin/jest
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../jest/bin/jest.js
|
1
node_modules/.bin/jest-runtime
generated
vendored
Symbolic link
1
node_modules/.bin/jest-runtime
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../jest-runtime/bin/jest-runtime.js
|
1
node_modules/.bin/jsesc
generated
vendored
Symbolic link
1
node_modules/.bin/jsesc
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../jsesc/bin/jsesc
|
1
node_modules/.bin/json5
generated
vendored
Symbolic link
1
node_modules/.bin/json5
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../json5/lib/cli.js
|
1
node_modules/.bin/loose-envify
generated
vendored
Symbolic link
1
node_modules/.bin/loose-envify
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../loose-envify/cli.js
|
1
node_modules/.bin/mkdirp
generated
vendored
Symbolic link
1
node_modules/.bin/mkdirp
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../mkdirp/bin/cmd.js
|
1
node_modules/.bin/parser
generated
vendored
Symbolic link
1
node_modules/.bin/parser
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../@babel/parser/bin/babel-parser.js
|
1
node_modules/.bin/rimraf
generated
vendored
Symbolic link
1
node_modules/.bin/rimraf
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../rimraf/bin.js
|
1
node_modules/.bin/sane
generated
vendored
Symbolic link
1
node_modules/.bin/sane
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../sane/src/cli.js
|
1
node_modules/.bin/sshpk-conv
generated
vendored
Symbolic link
1
node_modules/.bin/sshpk-conv
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../sshpk/bin/sshpk-conv
|
1
node_modules/.bin/sshpk-sign
generated
vendored
Symbolic link
1
node_modules/.bin/sshpk-sign
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../sshpk/bin/sshpk-sign
|
1
node_modules/.bin/sshpk-verify
generated
vendored
Symbolic link
1
node_modules/.bin/sshpk-verify
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../sshpk/bin/sshpk-verify
|
1
node_modules/.bin/ts-jest
generated
vendored
Symbolic link
1
node_modules/.bin/ts-jest
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../ts-jest/cli.js
|
1
node_modules/.bin/ts-node
generated
vendored
Symbolic link
1
node_modules/.bin/ts-node
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../ts-node/dist/bin.js
|
1
node_modules/.bin/tsc
generated
vendored
Symbolic link
1
node_modules/.bin/tsc
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../typescript/bin/tsc
|
1
node_modules/.bin/tsserver
generated
vendored
Symbolic link
1
node_modules/.bin/tsserver
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../typescript/bin/tsserver
|
1
node_modules/.bin/uglifyjs
generated
vendored
Symbolic link
1
node_modules/.bin/uglifyjs
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../uglify-js/bin/uglifyjs
|
1
node_modules/.bin/watch
generated
vendored
Symbolic link
1
node_modules/.bin/watch
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../@cnakazawa/watch/cli.js
|
1
node_modules/.bin/which
generated
vendored
Symbolic link
1
node_modules/.bin/which
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../which/bin/which
|
22
node_modules/@babel/code-frame/LICENSE
generated
vendored
Normal file
22
node_modules/@babel/code-frame/LICENSE
generated
vendored
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2014-present Sebastian McKenzie and other contributors
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
"Software"), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
19
node_modules/@babel/code-frame/README.md
generated
vendored
Normal file
19
node_modules/@babel/code-frame/README.md
generated
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# @babel/code-frame
|
||||||
|
|
||||||
|
> Generate errors that contain a code frame that point to source locations.
|
||||||
|
|
||||||
|
See our website [@babel/code-frame](https://babeljs.io/docs/en/next/babel-code-frame.html) for more information.
|
||||||
|
|
||||||
|
## Install
|
||||||
|
|
||||||
|
Using npm:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm install --save-dev @babel/code-frame
|
||||||
|
```
|
||||||
|
|
||||||
|
or using yarn:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
yarn add @babel/code-frame --dev
|
||||||
|
```
|
173
node_modules/@babel/code-frame/lib/index.js
generated
vendored
Normal file
173
node_modules/@babel/code-frame/lib/index.js
generated
vendored
Normal file
@ -0,0 +1,173 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.codeFrameColumns = codeFrameColumns;
|
||||||
|
exports.default = _default;
|
||||||
|
|
||||||
|
function _highlight() {
|
||||||
|
const data = _interopRequireWildcard(require("@babel/highlight"));
|
||||||
|
|
||||||
|
_highlight = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _interopRequireWildcard(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)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
|
||||||
|
|
||||||
|
let deprecationWarningShown = false;
|
||||||
|
|
||||||
|
function getDefs(chalk) {
|
||||||
|
return {
|
||||||
|
gutter: chalk.grey,
|
||||||
|
marker: chalk.red.bold,
|
||||||
|
message: chalk.red.bold
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
const NEWLINE = /\r\n|[\n\r\u2028\u2029]/;
|
||||||
|
|
||||||
|
function getMarkerLines(loc, source, opts) {
|
||||||
|
const startLoc = Object.assign({
|
||||||
|
column: 0,
|
||||||
|
line: -1
|
||||||
|
}, loc.start);
|
||||||
|
const endLoc = Object.assign({}, startLoc, loc.end);
|
||||||
|
const {
|
||||||
|
linesAbove = 2,
|
||||||
|
linesBelow = 3
|
||||||
|
} = opts || {};
|
||||||
|
const startLine = startLoc.line;
|
||||||
|
const startColumn = startLoc.column;
|
||||||
|
const endLine = endLoc.line;
|
||||||
|
const endColumn = endLoc.column;
|
||||||
|
let start = Math.max(startLine - (linesAbove + 1), 0);
|
||||||
|
let end = Math.min(source.length, endLine + linesBelow);
|
||||||
|
|
||||||
|
if (startLine === -1) {
|
||||||
|
start = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (endLine === -1) {
|
||||||
|
end = source.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
const lineDiff = endLine - startLine;
|
||||||
|
const markerLines = {};
|
||||||
|
|
||||||
|
if (lineDiff) {
|
||||||
|
for (let i = 0; i <= lineDiff; i++) {
|
||||||
|
const lineNumber = i + startLine;
|
||||||
|
|
||||||
|
if (!startColumn) {
|
||||||
|
markerLines[lineNumber] = true;
|
||||||
|
} else if (i === 0) {
|
||||||
|
const sourceLength = source[lineNumber - 1].length;
|
||||||
|
markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1];
|
||||||
|
} else if (i === lineDiff) {
|
||||||
|
markerLines[lineNumber] = [0, endColumn];
|
||||||
|
} else {
|
||||||
|
const sourceLength = source[lineNumber - i].length;
|
||||||
|
markerLines[lineNumber] = [0, sourceLength];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (startColumn === endColumn) {
|
||||||
|
if (startColumn) {
|
||||||
|
markerLines[startLine] = [startColumn, 0];
|
||||||
|
} else {
|
||||||
|
markerLines[startLine] = true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
markerLines[startLine] = [startColumn, endColumn - startColumn];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
start,
|
||||||
|
end,
|
||||||
|
markerLines
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function codeFrameColumns(rawLines, loc, opts = {}) {
|
||||||
|
const highlighted = (opts.highlightCode || opts.forceColor) && (0, _highlight().shouldHighlight)(opts);
|
||||||
|
const chalk = (0, _highlight().getChalk)(opts);
|
||||||
|
const defs = getDefs(chalk);
|
||||||
|
|
||||||
|
const maybeHighlight = (chalkFn, string) => {
|
||||||
|
return highlighted ? chalkFn(string) : string;
|
||||||
|
};
|
||||||
|
|
||||||
|
const lines = rawLines.split(NEWLINE);
|
||||||
|
const {
|
||||||
|
start,
|
||||||
|
end,
|
||||||
|
markerLines
|
||||||
|
} = getMarkerLines(loc, lines, opts);
|
||||||
|
const hasColumns = loc.start && typeof loc.start.column === "number";
|
||||||
|
const numberMaxWidth = String(end).length;
|
||||||
|
const highlightedLines = highlighted ? (0, _highlight().default)(rawLines, opts) : rawLines;
|
||||||
|
let frame = highlightedLines.split(NEWLINE).slice(start, end).map((line, index) => {
|
||||||
|
const number = start + 1 + index;
|
||||||
|
const paddedNumber = ` ${number}`.slice(-numberMaxWidth);
|
||||||
|
const gutter = ` ${paddedNumber} | `;
|
||||||
|
const hasMarker = markerLines[number];
|
||||||
|
const lastMarkerLine = !markerLines[number + 1];
|
||||||
|
|
||||||
|
if (hasMarker) {
|
||||||
|
let markerLine = "";
|
||||||
|
|
||||||
|
if (Array.isArray(hasMarker)) {
|
||||||
|
const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " ");
|
||||||
|
const numberOfMarkers = hasMarker[1] || 1;
|
||||||
|
markerLine = ["\n ", maybeHighlight(defs.gutter, gutter.replace(/\d/g, " ")), markerSpacing, maybeHighlight(defs.marker, "^").repeat(numberOfMarkers)].join("");
|
||||||
|
|
||||||
|
if (lastMarkerLine && opts.message) {
|
||||||
|
markerLine += " " + maybeHighlight(defs.message, opts.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return [maybeHighlight(defs.marker, ">"), maybeHighlight(defs.gutter, gutter), line, markerLine].join("");
|
||||||
|
} else {
|
||||||
|
return ` ${maybeHighlight(defs.gutter, gutter)}${line}`;
|
||||||
|
}
|
||||||
|
}).join("\n");
|
||||||
|
|
||||||
|
if (opts.message && !hasColumns) {
|
||||||
|
frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (highlighted) {
|
||||||
|
return chalk.reset(frame);
|
||||||
|
} else {
|
||||||
|
return frame;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function _default(rawLines, lineNumber, colNumber, opts = {}) {
|
||||||
|
if (!deprecationWarningShown) {
|
||||||
|
deprecationWarningShown = true;
|
||||||
|
const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";
|
||||||
|
|
||||||
|
if (process.emitWarning) {
|
||||||
|
process.emitWarning(message, "DeprecationWarning");
|
||||||
|
} else {
|
||||||
|
const deprecationError = new Error(message);
|
||||||
|
deprecationError.name = "DeprecationWarning";
|
||||||
|
console.warn(new Error(message));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
colNumber = Math.max(colNumber, 0);
|
||||||
|
const location = {
|
||||||
|
start: {
|
||||||
|
column: colNumber,
|
||||||
|
line: lineNumber
|
||||||
|
}
|
||||||
|
};
|
||||||
|
return codeFrameColumns(rawLines, location, opts);
|
||||||
|
}
|
21
node_modules/@babel/code-frame/package.json
generated
vendored
Normal file
21
node_modules/@babel/code-frame/package.json
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"name": "@babel/code-frame",
|
||||||
|
"version": "7.5.5",
|
||||||
|
"description": "Generate errors that contain a code frame that point to source locations.",
|
||||||
|
"author": "Sebastian McKenzie <sebmck@gmail.com>",
|
||||||
|
"homepage": "https://babeljs.io/",
|
||||||
|
"license": "MIT",
|
||||||
|
"publishConfig": {
|
||||||
|
"access": "public"
|
||||||
|
},
|
||||||
|
"repository": "https://github.com/babel/babel/tree/master/packages/babel-code-frame",
|
||||||
|
"main": "lib/index.js",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/highlight": "^7.0.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"chalk": "^2.0.0",
|
||||||
|
"strip-ansi": "^4.0.0"
|
||||||
|
},
|
||||||
|
"gitHead": "0407f034f09381b95e9cabefbf6b176c76485a43"
|
||||||
|
}
|
22
node_modules/@babel/core/LICENSE
generated
vendored
Normal file
22
node_modules/@babel/core/LICENSE
generated
vendored
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2014-present Sebastian McKenzie and other contributors
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
"Software"), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
19
node_modules/@babel/core/README.md
generated
vendored
Normal file
19
node_modules/@babel/core/README.md
generated
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# @babel/core
|
||||||
|
|
||||||
|
> Babel compiler core.
|
||||||
|
|
||||||
|
See our website [@babel/core](https://babeljs.io/docs/en/next/babel-core.html) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20core%22+is%3Aopen) associated with this package.
|
||||||
|
|
||||||
|
## Install
|
||||||
|
|
||||||
|
Using npm:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm install --save-dev @babel/core
|
||||||
|
```
|
||||||
|
|
||||||
|
or using yarn:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
yarn add @babel/core --dev
|
||||||
|
```
|
199
node_modules/@babel/core/lib/config/caching.js
generated
vendored
Normal file
199
node_modules/@babel/core/lib/config/caching.js
generated
vendored
Normal file
@ -0,0 +1,199 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.makeStrongCache = makeStrongCache;
|
||||||
|
exports.makeWeakCache = makeWeakCache;
|
||||||
|
exports.assertSimpleType = assertSimpleType;
|
||||||
|
|
||||||
|
function makeStrongCache(handler) {
|
||||||
|
return makeCachedFunction(new Map(), handler);
|
||||||
|
}
|
||||||
|
|
||||||
|
function makeWeakCache(handler) {
|
||||||
|
return makeCachedFunction(new WeakMap(), handler);
|
||||||
|
}
|
||||||
|
|
||||||
|
function makeCachedFunction(callCache, handler) {
|
||||||
|
return function cachedFunction(arg, data) {
|
||||||
|
let cachedValue = callCache.get(arg);
|
||||||
|
|
||||||
|
if (cachedValue) {
|
||||||
|
for (const _ref of cachedValue) {
|
||||||
|
const {
|
||||||
|
value,
|
||||||
|
valid
|
||||||
|
} = _ref;
|
||||||
|
if (valid(data)) return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const cache = new CacheConfigurator(data);
|
||||||
|
const value = handler(arg, cache);
|
||||||
|
if (!cache.configured()) cache.forever();
|
||||||
|
cache.deactivate();
|
||||||
|
|
||||||
|
switch (cache.mode()) {
|
||||||
|
case "forever":
|
||||||
|
cachedValue = [{
|
||||||
|
value,
|
||||||
|
valid: () => true
|
||||||
|
}];
|
||||||
|
callCache.set(arg, cachedValue);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "invalidate":
|
||||||
|
cachedValue = [{
|
||||||
|
value,
|
||||||
|
valid: cache.validator()
|
||||||
|
}];
|
||||||
|
callCache.set(arg, cachedValue);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "valid":
|
||||||
|
if (cachedValue) {
|
||||||
|
cachedValue.push({
|
||||||
|
value,
|
||||||
|
valid: cache.validator()
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
cachedValue = [{
|
||||||
|
value,
|
||||||
|
valid: cache.validator()
|
||||||
|
}];
|
||||||
|
callCache.set(arg, cachedValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
class CacheConfigurator {
|
||||||
|
constructor(data) {
|
||||||
|
this._active = true;
|
||||||
|
this._never = false;
|
||||||
|
this._forever = false;
|
||||||
|
this._invalidate = false;
|
||||||
|
this._configured = false;
|
||||||
|
this._pairs = [];
|
||||||
|
this._data = data;
|
||||||
|
}
|
||||||
|
|
||||||
|
simple() {
|
||||||
|
return makeSimpleConfigurator(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
mode() {
|
||||||
|
if (this._never) return "never";
|
||||||
|
if (this._forever) return "forever";
|
||||||
|
if (this._invalidate) return "invalidate";
|
||||||
|
return "valid";
|
||||||
|
}
|
||||||
|
|
||||||
|
forever() {
|
||||||
|
if (!this._active) {
|
||||||
|
throw new Error("Cannot change caching after evaluation has completed.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this._never) {
|
||||||
|
throw new Error("Caching has already been configured with .never()");
|
||||||
|
}
|
||||||
|
|
||||||
|
this._forever = true;
|
||||||
|
this._configured = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
never() {
|
||||||
|
if (!this._active) {
|
||||||
|
throw new Error("Cannot change caching after evaluation has completed.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this._forever) {
|
||||||
|
throw new Error("Caching has already been configured with .forever()");
|
||||||
|
}
|
||||||
|
|
||||||
|
this._never = true;
|
||||||
|
this._configured = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
using(handler) {
|
||||||
|
if (!this._active) {
|
||||||
|
throw new Error("Cannot change caching after evaluation has completed.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this._never || this._forever) {
|
||||||
|
throw new Error("Caching has already been configured with .never or .forever()");
|
||||||
|
}
|
||||||
|
|
||||||
|
this._configured = true;
|
||||||
|
const key = handler(this._data);
|
||||||
|
|
||||||
|
this._pairs.push([key, handler]);
|
||||||
|
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
|
||||||
|
invalidate(handler) {
|
||||||
|
if (!this._active) {
|
||||||
|
throw new Error("Cannot change caching after evaluation has completed.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this._never || this._forever) {
|
||||||
|
throw new Error("Caching has already been configured with .never or .forever()");
|
||||||
|
}
|
||||||
|
|
||||||
|
this._invalidate = true;
|
||||||
|
this._configured = true;
|
||||||
|
const key = handler(this._data);
|
||||||
|
|
||||||
|
this._pairs.push([key, handler]);
|
||||||
|
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
|
||||||
|
validator() {
|
||||||
|
const pairs = this._pairs;
|
||||||
|
return data => pairs.every(([key, fn]) => key === fn(data));
|
||||||
|
}
|
||||||
|
|
||||||
|
deactivate() {
|
||||||
|
this._active = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
configured() {
|
||||||
|
return this._configured;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function makeSimpleConfigurator(cache) {
|
||||||
|
function cacheFn(val) {
|
||||||
|
if (typeof val === "boolean") {
|
||||||
|
if (val) cache.forever();else cache.never();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
return cache.using(() => assertSimpleType(val()));
|
||||||
|
}
|
||||||
|
|
||||||
|
cacheFn.forever = () => cache.forever();
|
||||||
|
|
||||||
|
cacheFn.never = () => cache.never();
|
||||||
|
|
||||||
|
cacheFn.using = cb => cache.using(() => assertSimpleType(cb()));
|
||||||
|
|
||||||
|
cacheFn.invalidate = cb => cache.invalidate(() => assertSimpleType(cb()));
|
||||||
|
|
||||||
|
return cacheFn;
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertSimpleType(value) {
|
||||||
|
if (value != null && typeof value !== "string" && typeof value !== "boolean" && typeof value !== "number") {
|
||||||
|
throw new Error("Cache keys must be either string, boolean, number, null, or undefined.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
439
node_modules/@babel/core/lib/config/config-chain.js
generated
vendored
Normal file
439
node_modules/@babel/core/lib/config/config-chain.js
generated
vendored
Normal file
@ -0,0 +1,439 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.buildPresetChain = buildPresetChain;
|
||||||
|
exports.buildRootChain = buildRootChain;
|
||||||
|
exports.buildPresetChainWalker = void 0;
|
||||||
|
|
||||||
|
function _path() {
|
||||||
|
const data = _interopRequireDefault(require("path"));
|
||||||
|
|
||||||
|
_path = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _debug() {
|
||||||
|
const data = _interopRequireDefault(require("debug"));
|
||||||
|
|
||||||
|
_debug = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
var _options = require("./validation/options");
|
||||||
|
|
||||||
|
var _patternToRegex = _interopRequireDefault(require("./pattern-to-regex"));
|
||||||
|
|
||||||
|
var _files = require("./files");
|
||||||
|
|
||||||
|
var _caching = require("./caching");
|
||||||
|
|
||||||
|
var _configDescriptors = require("./config-descriptors");
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
const debug = (0, _debug().default)("babel:config:config-chain");
|
||||||
|
|
||||||
|
function buildPresetChain(arg, context) {
|
||||||
|
const chain = buildPresetChainWalker(arg, context);
|
||||||
|
if (!chain) return null;
|
||||||
|
return {
|
||||||
|
plugins: dedupDescriptors(chain.plugins),
|
||||||
|
presets: dedupDescriptors(chain.presets),
|
||||||
|
options: chain.options.map(o => normalizeOptions(o))
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
const buildPresetChainWalker = makeChainWalker({
|
||||||
|
init: arg => arg,
|
||||||
|
root: preset => loadPresetDescriptors(preset),
|
||||||
|
env: (preset, envName) => loadPresetEnvDescriptors(preset)(envName),
|
||||||
|
overrides: (preset, index) => loadPresetOverridesDescriptors(preset)(index),
|
||||||
|
overridesEnv: (preset, index, envName) => loadPresetOverridesEnvDescriptors(preset)(index)(envName)
|
||||||
|
});
|
||||||
|
exports.buildPresetChainWalker = buildPresetChainWalker;
|
||||||
|
const loadPresetDescriptors = (0, _caching.makeWeakCache)(preset => buildRootDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors));
|
||||||
|
const loadPresetEnvDescriptors = (0, _caching.makeWeakCache)(preset => (0, _caching.makeStrongCache)(envName => buildEnvDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, envName)));
|
||||||
|
const loadPresetOverridesDescriptors = (0, _caching.makeWeakCache)(preset => (0, _caching.makeStrongCache)(index => buildOverrideDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, index)));
|
||||||
|
const loadPresetOverridesEnvDescriptors = (0, _caching.makeWeakCache)(preset => (0, _caching.makeStrongCache)(index => (0, _caching.makeStrongCache)(envName => buildOverrideEnvDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, index, envName))));
|
||||||
|
|
||||||
|
function buildRootChain(opts, context) {
|
||||||
|
const programmaticChain = loadProgrammaticChain({
|
||||||
|
options: opts,
|
||||||
|
dirname: context.cwd
|
||||||
|
}, context);
|
||||||
|
if (!programmaticChain) return null;
|
||||||
|
let configFile;
|
||||||
|
|
||||||
|
if (typeof opts.configFile === "string") {
|
||||||
|
configFile = (0, _files.loadConfig)(opts.configFile, context.cwd, context.envName, context.caller);
|
||||||
|
} else if (opts.configFile !== false) {
|
||||||
|
configFile = (0, _files.findRootConfig)(context.root, context.envName, context.caller);
|
||||||
|
}
|
||||||
|
|
||||||
|
let {
|
||||||
|
babelrc,
|
||||||
|
babelrcRoots
|
||||||
|
} = opts;
|
||||||
|
let babelrcRootsDirectory = context.cwd;
|
||||||
|
const configFileChain = emptyChain();
|
||||||
|
|
||||||
|
if (configFile) {
|
||||||
|
const validatedFile = validateConfigFile(configFile);
|
||||||
|
const result = loadFileChain(validatedFile, context);
|
||||||
|
if (!result) return null;
|
||||||
|
|
||||||
|
if (babelrc === undefined) {
|
||||||
|
babelrc = validatedFile.options.babelrc;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (babelrcRoots === undefined) {
|
||||||
|
babelrcRootsDirectory = validatedFile.dirname;
|
||||||
|
babelrcRoots = validatedFile.options.babelrcRoots;
|
||||||
|
}
|
||||||
|
|
||||||
|
mergeChain(configFileChain, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
const pkgData = typeof context.filename === "string" ? (0, _files.findPackageData)(context.filename) : null;
|
||||||
|
let ignoreFile, babelrcFile;
|
||||||
|
const fileChain = emptyChain();
|
||||||
|
|
||||||
|
if ((babelrc === true || babelrc === undefined) && pkgData && babelrcLoadEnabled(context, pkgData, babelrcRoots, babelrcRootsDirectory)) {
|
||||||
|
({
|
||||||
|
ignore: ignoreFile,
|
||||||
|
config: babelrcFile
|
||||||
|
} = (0, _files.findRelativeConfig)(pkgData, context.envName, context.caller));
|
||||||
|
|
||||||
|
if (ignoreFile && shouldIgnore(context, ignoreFile.ignore, null, ignoreFile.dirname)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (babelrcFile) {
|
||||||
|
const result = loadFileChain(validateBabelrcFile(babelrcFile), context);
|
||||||
|
if (!result) return null;
|
||||||
|
mergeChain(fileChain, result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const chain = mergeChain(mergeChain(mergeChain(emptyChain(), configFileChain), fileChain), programmaticChain);
|
||||||
|
return {
|
||||||
|
plugins: dedupDescriptors(chain.plugins),
|
||||||
|
presets: dedupDescriptors(chain.presets),
|
||||||
|
options: chain.options.map(o => normalizeOptions(o)),
|
||||||
|
ignore: ignoreFile || undefined,
|
||||||
|
babelrc: babelrcFile || undefined,
|
||||||
|
config: configFile || undefined
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function babelrcLoadEnabled(context, pkgData, babelrcRoots, babelrcRootsDirectory) {
|
||||||
|
if (typeof babelrcRoots === "boolean") return babelrcRoots;
|
||||||
|
const absoluteRoot = context.root;
|
||||||
|
|
||||||
|
if (babelrcRoots === undefined) {
|
||||||
|
return pkgData.directories.indexOf(absoluteRoot) !== -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
let babelrcPatterns = babelrcRoots;
|
||||||
|
if (!Array.isArray(babelrcPatterns)) babelrcPatterns = [babelrcPatterns];
|
||||||
|
babelrcPatterns = babelrcPatterns.map(pat => {
|
||||||
|
return typeof pat === "string" ? _path().default.resolve(babelrcRootsDirectory, pat) : pat;
|
||||||
|
});
|
||||||
|
|
||||||
|
if (babelrcPatterns.length === 1 && babelrcPatterns[0] === absoluteRoot) {
|
||||||
|
return pkgData.directories.indexOf(absoluteRoot) !== -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return babelrcPatterns.some(pat => {
|
||||||
|
if (typeof pat === "string") {
|
||||||
|
pat = (0, _patternToRegex.default)(pat, babelrcRootsDirectory);
|
||||||
|
}
|
||||||
|
|
||||||
|
return pkgData.directories.some(directory => {
|
||||||
|
return matchPattern(pat, babelrcRootsDirectory, directory, context);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const validateConfigFile = (0, _caching.makeWeakCache)(file => ({
|
||||||
|
filepath: file.filepath,
|
||||||
|
dirname: file.dirname,
|
||||||
|
options: (0, _options.validate)("configfile", file.options)
|
||||||
|
}));
|
||||||
|
const validateBabelrcFile = (0, _caching.makeWeakCache)(file => ({
|
||||||
|
filepath: file.filepath,
|
||||||
|
dirname: file.dirname,
|
||||||
|
options: (0, _options.validate)("babelrcfile", file.options)
|
||||||
|
}));
|
||||||
|
const validateExtendFile = (0, _caching.makeWeakCache)(file => ({
|
||||||
|
filepath: file.filepath,
|
||||||
|
dirname: file.dirname,
|
||||||
|
options: (0, _options.validate)("extendsfile", file.options)
|
||||||
|
}));
|
||||||
|
const loadProgrammaticChain = makeChainWalker({
|
||||||
|
root: input => buildRootDescriptors(input, "base", _configDescriptors.createCachedDescriptors),
|
||||||
|
env: (input, envName) => buildEnvDescriptors(input, "base", _configDescriptors.createCachedDescriptors, envName),
|
||||||
|
overrides: (input, index) => buildOverrideDescriptors(input, "base", _configDescriptors.createCachedDescriptors, index),
|
||||||
|
overridesEnv: (input, index, envName) => buildOverrideEnvDescriptors(input, "base", _configDescriptors.createCachedDescriptors, index, envName)
|
||||||
|
});
|
||||||
|
const loadFileChain = makeChainWalker({
|
||||||
|
root: file => loadFileDescriptors(file),
|
||||||
|
env: (file, envName) => loadFileEnvDescriptors(file)(envName),
|
||||||
|
overrides: (file, index) => loadFileOverridesDescriptors(file)(index),
|
||||||
|
overridesEnv: (file, index, envName) => loadFileOverridesEnvDescriptors(file)(index)(envName)
|
||||||
|
});
|
||||||
|
const loadFileDescriptors = (0, _caching.makeWeakCache)(file => buildRootDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors));
|
||||||
|
const loadFileEnvDescriptors = (0, _caching.makeWeakCache)(file => (0, _caching.makeStrongCache)(envName => buildEnvDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, envName)));
|
||||||
|
const loadFileOverridesDescriptors = (0, _caching.makeWeakCache)(file => (0, _caching.makeStrongCache)(index => buildOverrideDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, index)));
|
||||||
|
const loadFileOverridesEnvDescriptors = (0, _caching.makeWeakCache)(file => (0, _caching.makeStrongCache)(index => (0, _caching.makeStrongCache)(envName => buildOverrideEnvDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, index, envName))));
|
||||||
|
|
||||||
|
function buildRootDescriptors({
|
||||||
|
dirname,
|
||||||
|
options
|
||||||
|
}, alias, descriptors) {
|
||||||
|
return descriptors(dirname, options, alias);
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildEnvDescriptors({
|
||||||
|
dirname,
|
||||||
|
options
|
||||||
|
}, alias, descriptors, envName) {
|
||||||
|
const opts = options.env && options.env[envName];
|
||||||
|
return opts ? descriptors(dirname, opts, `${alias}.env["${envName}"]`) : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildOverrideDescriptors({
|
||||||
|
dirname,
|
||||||
|
options
|
||||||
|
}, alias, descriptors, index) {
|
||||||
|
const opts = options.overrides && options.overrides[index];
|
||||||
|
if (!opts) throw new Error("Assertion failure - missing override");
|
||||||
|
return descriptors(dirname, opts, `${alias}.overrides[${index}]`);
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildOverrideEnvDescriptors({
|
||||||
|
dirname,
|
||||||
|
options
|
||||||
|
}, alias, descriptors, index, envName) {
|
||||||
|
const override = options.overrides && options.overrides[index];
|
||||||
|
if (!override) throw new Error("Assertion failure - missing override");
|
||||||
|
const opts = override.env && override.env[envName];
|
||||||
|
return opts ? descriptors(dirname, opts, `${alias}.overrides[${index}].env["${envName}"]`) : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function makeChainWalker({
|
||||||
|
root,
|
||||||
|
env,
|
||||||
|
overrides,
|
||||||
|
overridesEnv
|
||||||
|
}) {
|
||||||
|
return (input, context, files = new Set()) => {
|
||||||
|
const {
|
||||||
|
dirname
|
||||||
|
} = input;
|
||||||
|
const flattenedConfigs = [];
|
||||||
|
const rootOpts = root(input);
|
||||||
|
|
||||||
|
if (configIsApplicable(rootOpts, dirname, context)) {
|
||||||
|
flattenedConfigs.push(rootOpts);
|
||||||
|
const envOpts = env(input, context.envName);
|
||||||
|
|
||||||
|
if (envOpts && configIsApplicable(envOpts, dirname, context)) {
|
||||||
|
flattenedConfigs.push(envOpts);
|
||||||
|
}
|
||||||
|
|
||||||
|
(rootOpts.options.overrides || []).forEach((_, index) => {
|
||||||
|
const overrideOps = overrides(input, index);
|
||||||
|
|
||||||
|
if (configIsApplicable(overrideOps, dirname, context)) {
|
||||||
|
flattenedConfigs.push(overrideOps);
|
||||||
|
const overrideEnvOpts = overridesEnv(input, index, context.envName);
|
||||||
|
|
||||||
|
if (overrideEnvOpts && configIsApplicable(overrideEnvOpts, dirname, context)) {
|
||||||
|
flattenedConfigs.push(overrideEnvOpts);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (flattenedConfigs.some(({
|
||||||
|
options: {
|
||||||
|
ignore,
|
||||||
|
only
|
||||||
|
}
|
||||||
|
}) => shouldIgnore(context, ignore, only, dirname))) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
const chain = emptyChain();
|
||||||
|
|
||||||
|
for (const op of flattenedConfigs) {
|
||||||
|
if (!mergeExtendsChain(chain, op.options, dirname, context, files)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
mergeChainOpts(chain, op);
|
||||||
|
}
|
||||||
|
|
||||||
|
return chain;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function mergeExtendsChain(chain, opts, dirname, context, files) {
|
||||||
|
if (opts.extends === undefined) return true;
|
||||||
|
const file = (0, _files.loadConfig)(opts.extends, dirname, context.envName, context.caller);
|
||||||
|
|
||||||
|
if (files.has(file)) {
|
||||||
|
throw new Error(`Configuration cycle detected loading ${file.filepath}.\n` + `File already loaded following the config chain:\n` + Array.from(files, file => ` - ${file.filepath}`).join("\n"));
|
||||||
|
}
|
||||||
|
|
||||||
|
files.add(file);
|
||||||
|
const fileChain = loadFileChain(validateExtendFile(file), context, files);
|
||||||
|
files.delete(file);
|
||||||
|
if (!fileChain) return false;
|
||||||
|
mergeChain(chain, fileChain);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function mergeChain(target, source) {
|
||||||
|
target.options.push(...source.options);
|
||||||
|
target.plugins.push(...source.plugins);
|
||||||
|
target.presets.push(...source.presets);
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
function mergeChainOpts(target, {
|
||||||
|
options,
|
||||||
|
plugins,
|
||||||
|
presets
|
||||||
|
}) {
|
||||||
|
target.options.push(options);
|
||||||
|
target.plugins.push(...plugins());
|
||||||
|
target.presets.push(...presets());
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
function emptyChain() {
|
||||||
|
return {
|
||||||
|
options: [],
|
||||||
|
presets: [],
|
||||||
|
plugins: []
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function normalizeOptions(opts) {
|
||||||
|
const options = Object.assign({}, opts);
|
||||||
|
delete options.extends;
|
||||||
|
delete options.env;
|
||||||
|
delete options.overrides;
|
||||||
|
delete options.plugins;
|
||||||
|
delete options.presets;
|
||||||
|
delete options.passPerPreset;
|
||||||
|
delete options.ignore;
|
||||||
|
delete options.only;
|
||||||
|
delete options.test;
|
||||||
|
delete options.include;
|
||||||
|
delete options.exclude;
|
||||||
|
|
||||||
|
if (Object.prototype.hasOwnProperty.call(options, "sourceMap")) {
|
||||||
|
options.sourceMaps = options.sourceMap;
|
||||||
|
delete options.sourceMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
return options;
|
||||||
|
}
|
||||||
|
|
||||||
|
function dedupDescriptors(items) {
|
||||||
|
const map = new Map();
|
||||||
|
const descriptors = [];
|
||||||
|
|
||||||
|
for (const item of items) {
|
||||||
|
if (typeof item.value === "function") {
|
||||||
|
const fnKey = item.value;
|
||||||
|
let nameMap = map.get(fnKey);
|
||||||
|
|
||||||
|
if (!nameMap) {
|
||||||
|
nameMap = new Map();
|
||||||
|
map.set(fnKey, nameMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
let desc = nameMap.get(item.name);
|
||||||
|
|
||||||
|
if (!desc) {
|
||||||
|
desc = {
|
||||||
|
value: item
|
||||||
|
};
|
||||||
|
descriptors.push(desc);
|
||||||
|
if (!item.ownPass) nameMap.set(item.name, desc);
|
||||||
|
} else {
|
||||||
|
desc.value = item;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
descriptors.push({
|
||||||
|
value: item
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return descriptors.reduce((acc, desc) => {
|
||||||
|
acc.push(desc.value);
|
||||||
|
return acc;
|
||||||
|
}, []);
|
||||||
|
}
|
||||||
|
|
||||||
|
function configIsApplicable({
|
||||||
|
options
|
||||||
|
}, dirname, context) {
|
||||||
|
return (options.test === undefined || configFieldIsApplicable(context, options.test, dirname)) && (options.include === undefined || configFieldIsApplicable(context, options.include, dirname)) && (options.exclude === undefined || !configFieldIsApplicable(context, options.exclude, dirname));
|
||||||
|
}
|
||||||
|
|
||||||
|
function configFieldIsApplicable(context, test, dirname) {
|
||||||
|
const patterns = Array.isArray(test) ? test : [test];
|
||||||
|
return matchesPatterns(context, patterns, dirname);
|
||||||
|
}
|
||||||
|
|
||||||
|
function shouldIgnore(context, ignore, only, dirname) {
|
||||||
|
if (ignore && matchesPatterns(context, ignore, dirname)) {
|
||||||
|
debug("Ignored %o because it matched one of %O from %o", context.filename, ignore, dirname);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (only && !matchesPatterns(context, only, dirname)) {
|
||||||
|
debug("Ignored %o because it failed to match one of %O from %o", context.filename, only, dirname);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function matchesPatterns(context, patterns, dirname) {
|
||||||
|
return patterns.some(pattern => matchPattern(pattern, dirname, context.filename, context));
|
||||||
|
}
|
||||||
|
|
||||||
|
function matchPattern(pattern, dirname, pathToTest, context) {
|
||||||
|
if (typeof pattern === "function") {
|
||||||
|
return !!pattern(pathToTest, {
|
||||||
|
dirname,
|
||||||
|
envName: context.envName,
|
||||||
|
caller: context.caller
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof pathToTest !== "string") {
|
||||||
|
throw new Error(`Configuration contains string/RegExp pattern, but no filename was passed to Babel`);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof pattern === "string") {
|
||||||
|
pattern = (0, _patternToRegex.default)(pattern, dirname);
|
||||||
|
}
|
||||||
|
|
||||||
|
return pattern.test(pathToTest);
|
||||||
|
}
|
210
node_modules/@babel/core/lib/config/config-descriptors.js
generated
vendored
Normal file
210
node_modules/@babel/core/lib/config/config-descriptors.js
generated
vendored
Normal file
@ -0,0 +1,210 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.createCachedDescriptors = createCachedDescriptors;
|
||||||
|
exports.createUncachedDescriptors = createUncachedDescriptors;
|
||||||
|
exports.createDescriptor = createDescriptor;
|
||||||
|
|
||||||
|
var _files = require("./files");
|
||||||
|
|
||||||
|
var _item = require("./item");
|
||||||
|
|
||||||
|
var _caching = require("./caching");
|
||||||
|
|
||||||
|
function isEqualDescriptor(a, b) {
|
||||||
|
return a.name === b.name && a.value === b.value && a.options === b.options && a.dirname === b.dirname && a.alias === b.alias && a.ownPass === b.ownPass && (a.file && a.file.request) === (b.file && b.file.request) && (a.file && a.file.resolved) === (b.file && b.file.resolved);
|
||||||
|
}
|
||||||
|
|
||||||
|
function createCachedDescriptors(dirname, options, alias) {
|
||||||
|
const {
|
||||||
|
plugins,
|
||||||
|
presets,
|
||||||
|
passPerPreset
|
||||||
|
} = options;
|
||||||
|
return {
|
||||||
|
options,
|
||||||
|
plugins: plugins ? () => createCachedPluginDescriptors(plugins, dirname)(alias) : () => [],
|
||||||
|
presets: presets ? () => createCachedPresetDescriptors(presets, dirname)(alias)(!!passPerPreset) : () => []
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function createUncachedDescriptors(dirname, options, alias) {
|
||||||
|
let plugins;
|
||||||
|
let presets;
|
||||||
|
return {
|
||||||
|
options,
|
||||||
|
plugins: () => {
|
||||||
|
if (!plugins) {
|
||||||
|
plugins = createPluginDescriptors(options.plugins || [], dirname, alias);
|
||||||
|
}
|
||||||
|
|
||||||
|
return plugins;
|
||||||
|
},
|
||||||
|
presets: () => {
|
||||||
|
if (!presets) {
|
||||||
|
presets = createPresetDescriptors(options.presets || [], dirname, alias, !!options.passPerPreset);
|
||||||
|
}
|
||||||
|
|
||||||
|
return presets;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
const PRESET_DESCRIPTOR_CACHE = new WeakMap();
|
||||||
|
const createCachedPresetDescriptors = (0, _caching.makeWeakCache)((items, cache) => {
|
||||||
|
const dirname = cache.using(dir => dir);
|
||||||
|
return (0, _caching.makeStrongCache)(alias => (0, _caching.makeStrongCache)(passPerPreset => createPresetDescriptors(items, dirname, alias, passPerPreset).map(desc => loadCachedDescriptor(PRESET_DESCRIPTOR_CACHE, desc))));
|
||||||
|
});
|
||||||
|
const PLUGIN_DESCRIPTOR_CACHE = new WeakMap();
|
||||||
|
const createCachedPluginDescriptors = (0, _caching.makeWeakCache)((items, cache) => {
|
||||||
|
const dirname = cache.using(dir => dir);
|
||||||
|
return (0, _caching.makeStrongCache)(alias => createPluginDescriptors(items, dirname, alias).map(desc => loadCachedDescriptor(PLUGIN_DESCRIPTOR_CACHE, desc)));
|
||||||
|
});
|
||||||
|
const DEFAULT_OPTIONS = {};
|
||||||
|
|
||||||
|
function loadCachedDescriptor(cache, desc) {
|
||||||
|
const {
|
||||||
|
value,
|
||||||
|
options = DEFAULT_OPTIONS
|
||||||
|
} = desc;
|
||||||
|
if (options === false) return desc;
|
||||||
|
let cacheByOptions = cache.get(value);
|
||||||
|
|
||||||
|
if (!cacheByOptions) {
|
||||||
|
cacheByOptions = new WeakMap();
|
||||||
|
cache.set(value, cacheByOptions);
|
||||||
|
}
|
||||||
|
|
||||||
|
let possibilities = cacheByOptions.get(options);
|
||||||
|
|
||||||
|
if (!possibilities) {
|
||||||
|
possibilities = [];
|
||||||
|
cacheByOptions.set(options, possibilities);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (possibilities.indexOf(desc) === -1) {
|
||||||
|
const matches = possibilities.filter(possibility => isEqualDescriptor(possibility, desc));
|
||||||
|
|
||||||
|
if (matches.length > 0) {
|
||||||
|
return matches[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
possibilities.push(desc);
|
||||||
|
}
|
||||||
|
|
||||||
|
return desc;
|
||||||
|
}
|
||||||
|
|
||||||
|
function createPresetDescriptors(items, dirname, alias, passPerPreset) {
|
||||||
|
return createDescriptors("preset", items, dirname, alias, passPerPreset);
|
||||||
|
}
|
||||||
|
|
||||||
|
function createPluginDescriptors(items, dirname, alias) {
|
||||||
|
return createDescriptors("plugin", items, dirname, alias);
|
||||||
|
}
|
||||||
|
|
||||||
|
function createDescriptors(type, items, dirname, alias, ownPass) {
|
||||||
|
const descriptors = items.map((item, index) => createDescriptor(item, dirname, {
|
||||||
|
type,
|
||||||
|
alias: `${alias}$${index}`,
|
||||||
|
ownPass: !!ownPass
|
||||||
|
}));
|
||||||
|
assertNoDuplicates(descriptors);
|
||||||
|
return descriptors;
|
||||||
|
}
|
||||||
|
|
||||||
|
function createDescriptor(pair, dirname, {
|
||||||
|
type,
|
||||||
|
alias,
|
||||||
|
ownPass
|
||||||
|
}) {
|
||||||
|
const desc = (0, _item.getItemDescriptor)(pair);
|
||||||
|
|
||||||
|
if (desc) {
|
||||||
|
return desc;
|
||||||
|
}
|
||||||
|
|
||||||
|
let name;
|
||||||
|
let options;
|
||||||
|
let value = pair;
|
||||||
|
|
||||||
|
if (Array.isArray(value)) {
|
||||||
|
if (value.length === 3) {
|
||||||
|
[value, options, name] = value;
|
||||||
|
} else {
|
||||||
|
[value, options] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let file = undefined;
|
||||||
|
let filepath = null;
|
||||||
|
|
||||||
|
if (typeof value === "string") {
|
||||||
|
if (typeof type !== "string") {
|
||||||
|
throw new Error("To resolve a string-based item, the type of item must be given");
|
||||||
|
}
|
||||||
|
|
||||||
|
const resolver = type === "plugin" ? _files.loadPlugin : _files.loadPreset;
|
||||||
|
const request = value;
|
||||||
|
({
|
||||||
|
filepath,
|
||||||
|
value
|
||||||
|
} = resolver(value, dirname));
|
||||||
|
file = {
|
||||||
|
request,
|
||||||
|
resolved: filepath
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!value) {
|
||||||
|
throw new Error(`Unexpected falsy value: ${String(value)}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof value === "object" && value.__esModule) {
|
||||||
|
if (value.default) {
|
||||||
|
value = value.default;
|
||||||
|
} else {
|
||||||
|
throw new Error("Must export a default export when using ES6 modules.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof value !== "object" && typeof value !== "function") {
|
||||||
|
throw new Error(`Unsupported format: ${typeof value}. Expected an object or a function.`);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (filepath !== null && typeof value === "object" && value) {
|
||||||
|
throw new Error(`Plugin/Preset files are not allowed to export objects, only functions. In ${filepath}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
name,
|
||||||
|
alias: filepath || alias,
|
||||||
|
value,
|
||||||
|
options,
|
||||||
|
dirname,
|
||||||
|
ownPass,
|
||||||
|
file
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertNoDuplicates(items) {
|
||||||
|
const map = new Map();
|
||||||
|
|
||||||
|
for (const item of items) {
|
||||||
|
if (typeof item.value !== "function") continue;
|
||||||
|
let nameMap = map.get(item.value);
|
||||||
|
|
||||||
|
if (!nameMap) {
|
||||||
|
nameMap = new Set();
|
||||||
|
map.set(item.value, nameMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (nameMap.has(item.name)) {
|
||||||
|
throw new Error([`Duplicate plugin/preset detected.`, `If you'd like to use two separate instances of a plugin,`, `they need separate names, e.g.`, ``, ` plugins: [`, ` ['some-plugin', {}],`, ` ['some-plugin', {}, 'some unique name'],`, ` ]`].join("\n"));
|
||||||
|
}
|
||||||
|
|
||||||
|
nameMap.add(item.name);
|
||||||
|
}
|
||||||
|
}
|
323
node_modules/@babel/core/lib/config/files/configuration.js
generated
vendored
Normal file
323
node_modules/@babel/core/lib/config/files/configuration.js
generated
vendored
Normal file
@ -0,0 +1,323 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.findConfigUpwards = findConfigUpwards;
|
||||||
|
exports.findRelativeConfig = findRelativeConfig;
|
||||||
|
exports.findRootConfig = findRootConfig;
|
||||||
|
exports.loadConfig = loadConfig;
|
||||||
|
|
||||||
|
function _debug() {
|
||||||
|
const data = _interopRequireDefault(require("debug"));
|
||||||
|
|
||||||
|
_debug = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _path() {
|
||||||
|
const data = _interopRequireDefault(require("path"));
|
||||||
|
|
||||||
|
_path = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _fs() {
|
||||||
|
const data = _interopRequireDefault(require("fs"));
|
||||||
|
|
||||||
|
_fs = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _json() {
|
||||||
|
const data = _interopRequireDefault(require("json5"));
|
||||||
|
|
||||||
|
_json = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _resolve() {
|
||||||
|
const data = _interopRequireDefault(require("resolve"));
|
||||||
|
|
||||||
|
_resolve = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
var _caching = require("../caching");
|
||||||
|
|
||||||
|
var _configApi = _interopRequireDefault(require("../helpers/config-api"));
|
||||||
|
|
||||||
|
var _utils = require("./utils");
|
||||||
|
|
||||||
|
var _patternToRegex = _interopRequireDefault(require("../pattern-to-regex"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
const debug = (0, _debug().default)("babel:config:loading:files:configuration");
|
||||||
|
const BABEL_CONFIG_JS_FILENAME = "babel.config.js";
|
||||||
|
const BABELRC_FILENAME = ".babelrc";
|
||||||
|
const BABELRC_JS_FILENAME = ".babelrc.js";
|
||||||
|
const BABELIGNORE_FILENAME = ".babelignore";
|
||||||
|
|
||||||
|
function findConfigUpwards(rootDir) {
|
||||||
|
let dirname = rootDir;
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
if (_fs().default.existsSync(_path().default.join(dirname, BABEL_CONFIG_JS_FILENAME))) {
|
||||||
|
return dirname;
|
||||||
|
}
|
||||||
|
|
||||||
|
const nextDir = _path().default.dirname(dirname);
|
||||||
|
|
||||||
|
if (dirname === nextDir) break;
|
||||||
|
dirname = nextDir;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function findRelativeConfig(packageData, envName, caller) {
|
||||||
|
let config = null;
|
||||||
|
let ignore = null;
|
||||||
|
|
||||||
|
const dirname = _path().default.dirname(packageData.filepath);
|
||||||
|
|
||||||
|
for (const loc of packageData.directories) {
|
||||||
|
if (!config) {
|
||||||
|
config = [BABELRC_FILENAME, BABELRC_JS_FILENAME].reduce((previousConfig, name) => {
|
||||||
|
const filepath = _path().default.join(loc, name);
|
||||||
|
|
||||||
|
const config = readConfig(filepath, envName, caller);
|
||||||
|
|
||||||
|
if (config && previousConfig) {
|
||||||
|
throw new Error(`Multiple configuration files found. Please remove one:\n` + ` - ${_path().default.basename(previousConfig.filepath)}\n` + ` - ${name}\n` + `from ${loc}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return config || previousConfig;
|
||||||
|
}, null);
|
||||||
|
const pkgConfig = packageData.pkg && packageData.pkg.dirname === loc ? packageToBabelConfig(packageData.pkg) : null;
|
||||||
|
|
||||||
|
if (pkgConfig) {
|
||||||
|
if (config) {
|
||||||
|
throw new Error(`Multiple configuration files found. Please remove one:\n` + ` - ${_path().default.basename(pkgConfig.filepath)}#babel\n` + ` - ${_path().default.basename(config.filepath)}\n` + `from ${loc}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
config = pkgConfig;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (config) {
|
||||||
|
debug("Found configuration %o from %o.", config.filepath, dirname);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!ignore) {
|
||||||
|
const ignoreLoc = _path().default.join(loc, BABELIGNORE_FILENAME);
|
||||||
|
|
||||||
|
ignore = readIgnoreConfig(ignoreLoc);
|
||||||
|
|
||||||
|
if (ignore) {
|
||||||
|
debug("Found ignore %o from %o.", ignore.filepath, dirname);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
config,
|
||||||
|
ignore
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function findRootConfig(dirname, envName, caller) {
|
||||||
|
const filepath = _path().default.resolve(dirname, BABEL_CONFIG_JS_FILENAME);
|
||||||
|
|
||||||
|
const conf = readConfig(filepath, envName, caller);
|
||||||
|
|
||||||
|
if (conf) {
|
||||||
|
debug("Found root config %o in %o.", BABEL_CONFIG_JS_FILENAME, dirname);
|
||||||
|
}
|
||||||
|
|
||||||
|
return conf;
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadConfig(name, dirname, envName, caller) {
|
||||||
|
const filepath = _resolve().default.sync(name, {
|
||||||
|
basedir: dirname
|
||||||
|
});
|
||||||
|
|
||||||
|
const conf = readConfig(filepath, envName, caller);
|
||||||
|
|
||||||
|
if (!conf) {
|
||||||
|
throw new Error(`Config file ${filepath} contains no configuration data`);
|
||||||
|
}
|
||||||
|
|
||||||
|
debug("Loaded config %o from %o.", name, dirname);
|
||||||
|
return conf;
|
||||||
|
}
|
||||||
|
|
||||||
|
function readConfig(filepath, envName, caller) {
|
||||||
|
return _path().default.extname(filepath) === ".js" ? readConfigJS(filepath, {
|
||||||
|
envName,
|
||||||
|
caller
|
||||||
|
}) : readConfigJSON5(filepath);
|
||||||
|
}
|
||||||
|
|
||||||
|
const LOADING_CONFIGS = new Set();
|
||||||
|
const readConfigJS = (0, _caching.makeStrongCache)((filepath, cache) => {
|
||||||
|
if (!_fs().default.existsSync(filepath)) {
|
||||||
|
cache.forever();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (LOADING_CONFIGS.has(filepath)) {
|
||||||
|
cache.never();
|
||||||
|
debug("Auto-ignoring usage of config %o.", filepath);
|
||||||
|
return {
|
||||||
|
filepath,
|
||||||
|
dirname: _path().default.dirname(filepath),
|
||||||
|
options: {}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
let options;
|
||||||
|
|
||||||
|
try {
|
||||||
|
LOADING_CONFIGS.add(filepath);
|
||||||
|
|
||||||
|
const configModule = require(filepath);
|
||||||
|
|
||||||
|
options = configModule && configModule.__esModule ? configModule.default || undefined : configModule;
|
||||||
|
} catch (err) {
|
||||||
|
err.message = `${filepath}: Error while loading config - ${err.message}`;
|
||||||
|
throw err;
|
||||||
|
} finally {
|
||||||
|
LOADING_CONFIGS.delete(filepath);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof options === "function") {
|
||||||
|
options = options((0, _configApi.default)(cache));
|
||||||
|
if (!cache.configured()) throwConfigError();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!options || typeof options !== "object" || Array.isArray(options)) {
|
||||||
|
throw new Error(`${filepath}: Configuration should be an exported JavaScript object.`);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof options.then === "function") {
|
||||||
|
throw new Error(`You appear to be using an async configuration, ` + `which your current version of Babel does not support. ` + `We may add support for this in the future, ` + `but if you're on the most recent version of @babel/core and still ` + `seeing this error, then you'll need to synchronously return your config.`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
filepath,
|
||||||
|
dirname: _path().default.dirname(filepath),
|
||||||
|
options
|
||||||
|
};
|
||||||
|
});
|
||||||
|
const packageToBabelConfig = (0, _caching.makeWeakCache)(file => {
|
||||||
|
const babel = file.options["babel"];
|
||||||
|
if (typeof babel === "undefined") return null;
|
||||||
|
|
||||||
|
if (typeof babel !== "object" || Array.isArray(babel) || babel === null) {
|
||||||
|
throw new Error(`${file.filepath}: .babel property must be an object`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
filepath: file.filepath,
|
||||||
|
dirname: file.dirname,
|
||||||
|
options: babel
|
||||||
|
};
|
||||||
|
});
|
||||||
|
const readConfigJSON5 = (0, _utils.makeStaticFileCache)((filepath, content) => {
|
||||||
|
let options;
|
||||||
|
|
||||||
|
try {
|
||||||
|
options = _json().default.parse(content);
|
||||||
|
} catch (err) {
|
||||||
|
err.message = `${filepath}: Error while parsing config - ${err.message}`;
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!options) throw new Error(`${filepath}: No config detected`);
|
||||||
|
|
||||||
|
if (typeof options !== "object") {
|
||||||
|
throw new Error(`${filepath}: Config returned typeof ${typeof options}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Array.isArray(options)) {
|
||||||
|
throw new Error(`${filepath}: Expected config object but found array`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
filepath,
|
||||||
|
dirname: _path().default.dirname(filepath),
|
||||||
|
options
|
||||||
|
};
|
||||||
|
});
|
||||||
|
const readIgnoreConfig = (0, _utils.makeStaticFileCache)((filepath, content) => {
|
||||||
|
const ignoreDir = _path().default.dirname(filepath);
|
||||||
|
|
||||||
|
const ignorePatterns = content.split("\n").map(line => line.replace(/#(.*?)$/, "").trim()).filter(line => !!line);
|
||||||
|
|
||||||
|
for (const pattern of ignorePatterns) {
|
||||||
|
if (pattern[0] === "!") {
|
||||||
|
throw new Error(`Negation of file paths is not supported.`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
filepath,
|
||||||
|
dirname: _path().default.dirname(filepath),
|
||||||
|
ignore: ignorePatterns.map(pattern => (0, _patternToRegex.default)(pattern, ignoreDir))
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
function throwConfigError() {
|
||||||
|
throw new Error(`\
|
||||||
|
Caching was left unconfigured. Babel's plugins, presets, and .babelrc.js files can be configured
|
||||||
|
for various types of caching, using the first param of their handler functions:
|
||||||
|
|
||||||
|
module.exports = function(api) {
|
||||||
|
// The API exposes the following:
|
||||||
|
|
||||||
|
// Cache the returned value forever and don't call this function again.
|
||||||
|
api.cache(true);
|
||||||
|
|
||||||
|
// Don't cache at all. Not recommended because it will be very slow.
|
||||||
|
api.cache(false);
|
||||||
|
|
||||||
|
// Cached based on the value of some function. If this function returns a value different from
|
||||||
|
// a previously-encountered value, the plugins will re-evaluate.
|
||||||
|
var env = api.cache(() => process.env.NODE_ENV);
|
||||||
|
|
||||||
|
// If testing for a specific env, we recommend specifics to avoid instantiating a plugin for
|
||||||
|
// any possible NODE_ENV value that might come up during plugin execution.
|
||||||
|
var isProd = api.cache(() => process.env.NODE_ENV === "production");
|
||||||
|
|
||||||
|
// .cache(fn) will perform a linear search though instances to find the matching plugin based
|
||||||
|
// based on previous instantiated plugins. If you want to recreate the plugin and discard the
|
||||||
|
// previous instance whenever something changes, you may use:
|
||||||
|
var isProd = api.cache.invalidate(() => process.env.NODE_ENV === "production");
|
||||||
|
|
||||||
|
// Note, we also expose the following more-verbose versions of the above examples:
|
||||||
|
api.cache.forever(); // api.cache(true)
|
||||||
|
api.cache.never(); // api.cache(false)
|
||||||
|
api.cache.using(fn); // api.cache(fn)
|
||||||
|
|
||||||
|
// Return the value that will be cached.
|
||||||
|
return { };
|
||||||
|
};`);
|
||||||
|
}
|
59
node_modules/@babel/core/lib/config/files/index-browser.js
generated
vendored
Normal file
59
node_modules/@babel/core/lib/config/files/index-browser.js
generated
vendored
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.findConfigUpwards = findConfigUpwards;
|
||||||
|
exports.findPackageData = findPackageData;
|
||||||
|
exports.findRelativeConfig = findRelativeConfig;
|
||||||
|
exports.findRootConfig = findRootConfig;
|
||||||
|
exports.loadConfig = loadConfig;
|
||||||
|
exports.resolvePlugin = resolvePlugin;
|
||||||
|
exports.resolvePreset = resolvePreset;
|
||||||
|
exports.loadPlugin = loadPlugin;
|
||||||
|
exports.loadPreset = loadPreset;
|
||||||
|
|
||||||
|
function findConfigUpwards(rootDir) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function findPackageData(filepath) {
|
||||||
|
return {
|
||||||
|
filepath,
|
||||||
|
directories: [],
|
||||||
|
pkg: null,
|
||||||
|
isPackage: false
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function findRelativeConfig(pkgData, envName, caller) {
|
||||||
|
return {
|
||||||
|
pkg: null,
|
||||||
|
config: null,
|
||||||
|
ignore: null
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function findRootConfig(dirname, envName, caller) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadConfig(name, dirname, envName, caller) {
|
||||||
|
throw new Error(`Cannot load ${name} relative to ${dirname} in a browser`);
|
||||||
|
}
|
||||||
|
|
||||||
|
function resolvePlugin(name, dirname) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function resolvePreset(name, dirname) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadPlugin(name, dirname) {
|
||||||
|
throw new Error(`Cannot load plugin ${name} relative to ${dirname} in a browser`);
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadPreset(name, dirname) {
|
||||||
|
throw new Error(`Cannot load preset ${name} relative to ${dirname} in a browser`);
|
||||||
|
}
|
67
node_modules/@babel/core/lib/config/files/index.js
generated
vendored
Normal file
67
node_modules/@babel/core/lib/config/files/index.js
generated
vendored
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "findPackageData", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _package.findPackageData;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "findConfigUpwards", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _configuration.findConfigUpwards;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "findRelativeConfig", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _configuration.findRelativeConfig;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "findRootConfig", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _configuration.findRootConfig;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "loadConfig", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _configuration.loadConfig;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "resolvePlugin", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _plugins.resolvePlugin;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "resolvePreset", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _plugins.resolvePreset;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "loadPlugin", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _plugins.loadPlugin;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "loadPreset", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _plugins.loadPreset;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
var _package = require("./package");
|
||||||
|
|
||||||
|
var _configuration = require("./configuration");
|
||||||
|
|
||||||
|
var _plugins = require("./plugins");
|
||||||
|
|
||||||
|
({});
|
76
node_modules/@babel/core/lib/config/files/package.js
generated
vendored
Normal file
76
node_modules/@babel/core/lib/config/files/package.js
generated
vendored
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.findPackageData = findPackageData;
|
||||||
|
|
||||||
|
function _path() {
|
||||||
|
const data = _interopRequireDefault(require("path"));
|
||||||
|
|
||||||
|
_path = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
var _utils = require("./utils");
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
const PACKAGE_FILENAME = "package.json";
|
||||||
|
|
||||||
|
function findPackageData(filepath) {
|
||||||
|
let pkg = null;
|
||||||
|
const directories = [];
|
||||||
|
let isPackage = true;
|
||||||
|
|
||||||
|
let dirname = _path().default.dirname(filepath);
|
||||||
|
|
||||||
|
while (!pkg && _path().default.basename(dirname) !== "node_modules") {
|
||||||
|
directories.push(dirname);
|
||||||
|
pkg = readConfigPackage(_path().default.join(dirname, PACKAGE_FILENAME));
|
||||||
|
|
||||||
|
const nextLoc = _path().default.dirname(dirname);
|
||||||
|
|
||||||
|
if (dirname === nextLoc) {
|
||||||
|
isPackage = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
dirname = nextLoc;
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
filepath,
|
||||||
|
directories,
|
||||||
|
pkg,
|
||||||
|
isPackage
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
const readConfigPackage = (0, _utils.makeStaticFileCache)((filepath, content) => {
|
||||||
|
let options;
|
||||||
|
|
||||||
|
try {
|
||||||
|
options = JSON.parse(content);
|
||||||
|
} catch (err) {
|
||||||
|
err.message = `${filepath}: Error while parsing JSON - ${err.message}`;
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof options !== "object") {
|
||||||
|
throw new Error(`${filepath}: Config returned typeof ${typeof options}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Array.isArray(options)) {
|
||||||
|
throw new Error(`${filepath}: Expected config object but found array`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
filepath,
|
||||||
|
dirname: _path().default.dirname(filepath),
|
||||||
|
options
|
||||||
|
};
|
||||||
|
});
|
169
node_modules/@babel/core/lib/config/files/plugins.js
generated
vendored
Normal file
169
node_modules/@babel/core/lib/config/files/plugins.js
generated
vendored
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.resolvePlugin = resolvePlugin;
|
||||||
|
exports.resolvePreset = resolvePreset;
|
||||||
|
exports.loadPlugin = loadPlugin;
|
||||||
|
exports.loadPreset = loadPreset;
|
||||||
|
|
||||||
|
function _debug() {
|
||||||
|
const data = _interopRequireDefault(require("debug"));
|
||||||
|
|
||||||
|
_debug = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _resolve() {
|
||||||
|
const data = _interopRequireDefault(require("resolve"));
|
||||||
|
|
||||||
|
_resolve = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _path() {
|
||||||
|
const data = _interopRequireDefault(require("path"));
|
||||||
|
|
||||||
|
_path = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
const debug = (0, _debug().default)("babel:config:loading:files:plugins");
|
||||||
|
const EXACT_RE = /^module:/;
|
||||||
|
const BABEL_PLUGIN_PREFIX_RE = /^(?!@|module:|[^/]+\/|babel-plugin-)/;
|
||||||
|
const BABEL_PRESET_PREFIX_RE = /^(?!@|module:|[^/]+\/|babel-preset-)/;
|
||||||
|
const BABEL_PLUGIN_ORG_RE = /^(@babel\/)(?!plugin-|[^/]+\/)/;
|
||||||
|
const BABEL_PRESET_ORG_RE = /^(@babel\/)(?!preset-|[^/]+\/)/;
|
||||||
|
const OTHER_PLUGIN_ORG_RE = /^(@(?!babel\/)[^/]+\/)(?![^/]*babel-plugin(?:-|\/|$)|[^/]+\/)/;
|
||||||
|
const OTHER_PRESET_ORG_RE = /^(@(?!babel\/)[^/]+\/)(?![^/]*babel-preset(?:-|\/|$)|[^/]+\/)/;
|
||||||
|
const OTHER_ORG_DEFAULT_RE = /^(@(?!babel$)[^/]+)$/;
|
||||||
|
|
||||||
|
function resolvePlugin(name, dirname) {
|
||||||
|
return resolveStandardizedName("plugin", name, dirname);
|
||||||
|
}
|
||||||
|
|
||||||
|
function resolvePreset(name, dirname) {
|
||||||
|
return resolveStandardizedName("preset", name, dirname);
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadPlugin(name, dirname) {
|
||||||
|
const filepath = resolvePlugin(name, dirname);
|
||||||
|
|
||||||
|
if (!filepath) {
|
||||||
|
throw new Error(`Plugin ${name} not found relative to ${dirname}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
const value = requireModule("plugin", filepath);
|
||||||
|
debug("Loaded plugin %o from %o.", name, dirname);
|
||||||
|
return {
|
||||||
|
filepath,
|
||||||
|
value
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadPreset(name, dirname) {
|
||||||
|
const filepath = resolvePreset(name, dirname);
|
||||||
|
|
||||||
|
if (!filepath) {
|
||||||
|
throw new Error(`Preset ${name} not found relative to ${dirname}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
const value = requireModule("preset", filepath);
|
||||||
|
debug("Loaded preset %o from %o.", name, dirname);
|
||||||
|
return {
|
||||||
|
filepath,
|
||||||
|
value
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function standardizeName(type, name) {
|
||||||
|
if (_path().default.isAbsolute(name)) return name;
|
||||||
|
const isPreset = type === "preset";
|
||||||
|
return name.replace(isPreset ? BABEL_PRESET_PREFIX_RE : BABEL_PLUGIN_PREFIX_RE, `babel-${type}-`).replace(isPreset ? BABEL_PRESET_ORG_RE : BABEL_PLUGIN_ORG_RE, `$1${type}-`).replace(isPreset ? OTHER_PRESET_ORG_RE : OTHER_PLUGIN_ORG_RE, `$1babel-${type}-`).replace(OTHER_ORG_DEFAULT_RE, `$1/babel-${type}`).replace(EXACT_RE, "");
|
||||||
|
}
|
||||||
|
|
||||||
|
function resolveStandardizedName(type, name, dirname = process.cwd()) {
|
||||||
|
const standardizedName = standardizeName(type, name);
|
||||||
|
|
||||||
|
try {
|
||||||
|
return _resolve().default.sync(standardizedName, {
|
||||||
|
basedir: dirname
|
||||||
|
});
|
||||||
|
} catch (e) {
|
||||||
|
if (e.code !== "MODULE_NOT_FOUND") throw e;
|
||||||
|
|
||||||
|
if (standardizedName !== name) {
|
||||||
|
let resolvedOriginal = false;
|
||||||
|
|
||||||
|
try {
|
||||||
|
_resolve().default.sync(name, {
|
||||||
|
basedir: dirname
|
||||||
|
});
|
||||||
|
|
||||||
|
resolvedOriginal = true;
|
||||||
|
} catch (e2) {}
|
||||||
|
|
||||||
|
if (resolvedOriginal) {
|
||||||
|
e.message += `\n- If you want to resolve "${name}", use "module:${name}"`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let resolvedBabel = false;
|
||||||
|
|
||||||
|
try {
|
||||||
|
_resolve().default.sync(standardizeName(type, "@babel/" + name), {
|
||||||
|
basedir: dirname
|
||||||
|
});
|
||||||
|
|
||||||
|
resolvedBabel = true;
|
||||||
|
} catch (e2) {}
|
||||||
|
|
||||||
|
if (resolvedBabel) {
|
||||||
|
e.message += `\n- Did you mean "@babel/${name}"?`;
|
||||||
|
}
|
||||||
|
|
||||||
|
let resolvedOppositeType = false;
|
||||||
|
const oppositeType = type === "preset" ? "plugin" : "preset";
|
||||||
|
|
||||||
|
try {
|
||||||
|
_resolve().default.sync(standardizeName(oppositeType, name), {
|
||||||
|
basedir: dirname
|
||||||
|
});
|
||||||
|
|
||||||
|
resolvedOppositeType = true;
|
||||||
|
} catch (e2) {}
|
||||||
|
|
||||||
|
if (resolvedOppositeType) {
|
||||||
|
e.message += `\n- Did you accidentally pass a ${oppositeType} as a ${type}?`;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const LOADING_MODULES = new Set();
|
||||||
|
|
||||||
|
function requireModule(type, name) {
|
||||||
|
if (LOADING_MODULES.has(name)) {
|
||||||
|
throw new Error(`Reentrant ${type} detected trying to load "${name}". This module is not ignored ` + "and is trying to load itself while compiling itself, leading to a dependency cycle. " + 'We recommend adding it to your "ignore" list in your babelrc, or to a .babelignore.');
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
LOADING_MODULES.add(name);
|
||||||
|
return require(name);
|
||||||
|
} finally {
|
||||||
|
LOADING_MODULES.delete(name);
|
||||||
|
}
|
||||||
|
}
|
0
node_modules/@babel/core/lib/config/files/types.js
generated
vendored
Normal file
0
node_modules/@babel/core/lib/config/files/types.js
generated
vendored
Normal file
41
node_modules/@babel/core/lib/config/files/utils.js
generated
vendored
Normal file
41
node_modules/@babel/core/lib/config/files/utils.js
generated
vendored
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.makeStaticFileCache = makeStaticFileCache;
|
||||||
|
|
||||||
|
function _fs() {
|
||||||
|
const data = _interopRequireDefault(require("fs"));
|
||||||
|
|
||||||
|
_fs = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
var _caching = require("../caching");
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
function makeStaticFileCache(fn) {
|
||||||
|
return (0, _caching.makeStrongCache)((filepath, cache) => {
|
||||||
|
if (cache.invalidate(() => fileMtime(filepath)) === null) {
|
||||||
|
cache.forever();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return fn(filepath, _fs().default.readFileSync(filepath, "utf8"));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function fileMtime(filepath) {
|
||||||
|
try {
|
||||||
|
return +_fs().default.statSync(filepath).mtime;
|
||||||
|
} catch (e) {
|
||||||
|
if (e.code !== "ENOENT" && e.code !== "ENOTDIR") throw e;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
282
node_modules/@babel/core/lib/config/full.js
generated
vendored
Normal file
282
node_modules/@babel/core/lib/config/full.js
generated
vendored
Normal file
@ -0,0 +1,282 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = loadFullConfig;
|
||||||
|
|
||||||
|
var _util = require("./util");
|
||||||
|
|
||||||
|
var context = _interopRequireWildcard(require("../index"));
|
||||||
|
|
||||||
|
var _plugin = _interopRequireDefault(require("./plugin"));
|
||||||
|
|
||||||
|
var _item = require("./item");
|
||||||
|
|
||||||
|
var _configChain = require("./config-chain");
|
||||||
|
|
||||||
|
function _traverse() {
|
||||||
|
const data = _interopRequireDefault(require("@babel/traverse"));
|
||||||
|
|
||||||
|
_traverse = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
var _caching = require("./caching");
|
||||||
|
|
||||||
|
var _options = require("./validation/options");
|
||||||
|
|
||||||
|
var _plugins = require("./validation/plugins");
|
||||||
|
|
||||||
|
var _configApi = _interopRequireDefault(require("./helpers/config-api"));
|
||||||
|
|
||||||
|
var _partial = _interopRequireDefault(require("./partial"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
||||||
|
|
||||||
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; if (obj != null) { var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||||||
|
|
||||||
|
function loadFullConfig(inputOpts) {
|
||||||
|
const result = (0, _partial.default)(inputOpts);
|
||||||
|
|
||||||
|
if (!result) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
const {
|
||||||
|
options,
|
||||||
|
context
|
||||||
|
} = result;
|
||||||
|
const optionDefaults = {};
|
||||||
|
const passes = [[]];
|
||||||
|
|
||||||
|
try {
|
||||||
|
const {
|
||||||
|
plugins,
|
||||||
|
presets
|
||||||
|
} = options;
|
||||||
|
|
||||||
|
if (!plugins || !presets) {
|
||||||
|
throw new Error("Assertion failure - plugins and presets exist");
|
||||||
|
}
|
||||||
|
|
||||||
|
const ignored = function recurseDescriptors(config, pass) {
|
||||||
|
const plugins = config.plugins.reduce((acc, descriptor) => {
|
||||||
|
if (descriptor.options !== false) {
|
||||||
|
acc.push(loadPluginDescriptor(descriptor, context));
|
||||||
|
}
|
||||||
|
|
||||||
|
return acc;
|
||||||
|
}, []);
|
||||||
|
const presets = config.presets.reduce((acc, descriptor) => {
|
||||||
|
if (descriptor.options !== false) {
|
||||||
|
acc.push({
|
||||||
|
preset: loadPresetDescriptor(descriptor, context),
|
||||||
|
pass: descriptor.ownPass ? [] : pass
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return acc;
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
if (presets.length > 0) {
|
||||||
|
passes.splice(1, 0, ...presets.map(o => o.pass).filter(p => p !== pass));
|
||||||
|
|
||||||
|
for (const _ref of presets) {
|
||||||
|
const {
|
||||||
|
preset,
|
||||||
|
pass
|
||||||
|
} = _ref;
|
||||||
|
if (!preset) return true;
|
||||||
|
const ignored = recurseDescriptors({
|
||||||
|
plugins: preset.plugins,
|
||||||
|
presets: preset.presets
|
||||||
|
}, pass);
|
||||||
|
if (ignored) return true;
|
||||||
|
preset.options.forEach(opts => {
|
||||||
|
(0, _util.mergeOptions)(optionDefaults, opts);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (plugins.length > 0) {
|
||||||
|
pass.unshift(...plugins);
|
||||||
|
}
|
||||||
|
}({
|
||||||
|
plugins: plugins.map(item => {
|
||||||
|
const desc = (0, _item.getItemDescriptor)(item);
|
||||||
|
|
||||||
|
if (!desc) {
|
||||||
|
throw new Error("Assertion failure - must be config item");
|
||||||
|
}
|
||||||
|
|
||||||
|
return desc;
|
||||||
|
}),
|
||||||
|
presets: presets.map(item => {
|
||||||
|
const desc = (0, _item.getItemDescriptor)(item);
|
||||||
|
|
||||||
|
if (!desc) {
|
||||||
|
throw new Error("Assertion failure - must be config item");
|
||||||
|
}
|
||||||
|
|
||||||
|
return desc;
|
||||||
|
})
|
||||||
|
}, passes[0]);
|
||||||
|
|
||||||
|
if (ignored) return null;
|
||||||
|
} catch (e) {
|
||||||
|
if (!/^\[BABEL\]/.test(e.message)) {
|
||||||
|
e.message = `[BABEL] ${context.filename || "unknown"}: ${e.message}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
|
||||||
|
const opts = optionDefaults;
|
||||||
|
(0, _util.mergeOptions)(opts, options);
|
||||||
|
opts.plugins = passes[0];
|
||||||
|
opts.presets = passes.slice(1).filter(plugins => plugins.length > 0).map(plugins => ({
|
||||||
|
plugins
|
||||||
|
}));
|
||||||
|
opts.passPerPreset = opts.presets.length > 0;
|
||||||
|
return {
|
||||||
|
options: opts,
|
||||||
|
passes: passes
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
const loadDescriptor = (0, _caching.makeWeakCache)(({
|
||||||
|
value,
|
||||||
|
options,
|
||||||
|
dirname,
|
||||||
|
alias
|
||||||
|
}, cache) => {
|
||||||
|
if (options === false) throw new Error("Assertion failure");
|
||||||
|
options = options || {};
|
||||||
|
let item = value;
|
||||||
|
|
||||||
|
if (typeof value === "function") {
|
||||||
|
const api = Object.assign({}, context, {}, (0, _configApi.default)(cache));
|
||||||
|
|
||||||
|
try {
|
||||||
|
item = value(api, options, dirname);
|
||||||
|
} catch (e) {
|
||||||
|
if (alias) {
|
||||||
|
e.message += ` (While processing: ${JSON.stringify(alias)})`;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!item || typeof item !== "object") {
|
||||||
|
throw new Error("Plugin/Preset did not return an object.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof item.then === "function") {
|
||||||
|
throw new Error(`You appear to be using an async plugin, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, ` + `you may need to upgrade your @babel/core version.`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
value: item,
|
||||||
|
options,
|
||||||
|
dirname,
|
||||||
|
alias
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
function loadPluginDescriptor(descriptor, context) {
|
||||||
|
if (descriptor.value instanceof _plugin.default) {
|
||||||
|
if (descriptor.options) {
|
||||||
|
throw new Error("Passed options to an existing Plugin instance will not work.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return descriptor.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return instantiatePlugin(loadDescriptor(descriptor, context), context);
|
||||||
|
}
|
||||||
|
|
||||||
|
const instantiatePlugin = (0, _caching.makeWeakCache)(({
|
||||||
|
value,
|
||||||
|
options,
|
||||||
|
dirname,
|
||||||
|
alias
|
||||||
|
}, cache) => {
|
||||||
|
const pluginObj = (0, _plugins.validatePluginObject)(value);
|
||||||
|
const plugin = Object.assign({}, pluginObj);
|
||||||
|
|
||||||
|
if (plugin.visitor) {
|
||||||
|
plugin.visitor = _traverse().default.explode(Object.assign({}, plugin.visitor));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (plugin.inherits) {
|
||||||
|
const inheritsDescriptor = {
|
||||||
|
name: undefined,
|
||||||
|
alias: `${alias}$inherits`,
|
||||||
|
value: plugin.inherits,
|
||||||
|
options,
|
||||||
|
dirname
|
||||||
|
};
|
||||||
|
const inherits = cache.invalidate(data => loadPluginDescriptor(inheritsDescriptor, data));
|
||||||
|
plugin.pre = chain(inherits.pre, plugin.pre);
|
||||||
|
plugin.post = chain(inherits.post, plugin.post);
|
||||||
|
plugin.manipulateOptions = chain(inherits.manipulateOptions, plugin.manipulateOptions);
|
||||||
|
plugin.visitor = _traverse().default.visitors.merge([inherits.visitor || {}, plugin.visitor || {}]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new _plugin.default(plugin, options, alias);
|
||||||
|
});
|
||||||
|
|
||||||
|
const validateIfOptionNeedsFilename = (options, descriptor) => {
|
||||||
|
if (options.test || options.include || options.exclude) {
|
||||||
|
const formattedPresetName = descriptor.name ? `"${descriptor.name}"` : "/* your preset */";
|
||||||
|
throw new Error([`Preset ${formattedPresetName} requires a filename to be set when babel is called directly,`, `\`\`\``, `babel.transform(code, { filename: 'file.ts', presets: [${formattedPresetName}] });`, `\`\`\``, `See https://babeljs.io/docs/en/options#filename for more information.`].join("\n"));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const validatePreset = (preset, context, descriptor) => {
|
||||||
|
if (!context.filename) {
|
||||||
|
const {
|
||||||
|
options
|
||||||
|
} = preset;
|
||||||
|
validateIfOptionNeedsFilename(options, descriptor);
|
||||||
|
|
||||||
|
if (options.overrides) {
|
||||||
|
options.overrides.forEach(overrideOptions => validateIfOptionNeedsFilename(overrideOptions, descriptor));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const loadPresetDescriptor = (descriptor, context) => {
|
||||||
|
const preset = instantiatePreset(loadDescriptor(descriptor, context));
|
||||||
|
validatePreset(preset, context, descriptor);
|
||||||
|
return (0, _configChain.buildPresetChain)(preset, context);
|
||||||
|
};
|
||||||
|
|
||||||
|
const instantiatePreset = (0, _caching.makeWeakCache)(({
|
||||||
|
value,
|
||||||
|
dirname,
|
||||||
|
alias
|
||||||
|
}) => {
|
||||||
|
return {
|
||||||
|
options: (0, _options.validate)("preset", value),
|
||||||
|
alias,
|
||||||
|
dirname
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
function chain(a, b) {
|
||||||
|
const fns = [a, b].filter(Boolean);
|
||||||
|
if (fns.length <= 1) return fns[0];
|
||||||
|
return function (...args) {
|
||||||
|
for (const fn of fns) {
|
||||||
|
fn.apply(this, args);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
86
node_modules/@babel/core/lib/config/helpers/config-api.js
generated
vendored
Normal file
86
node_modules/@babel/core/lib/config/helpers/config-api.js
generated
vendored
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = makeAPI;
|
||||||
|
|
||||||
|
function _semver() {
|
||||||
|
const data = _interopRequireDefault(require("semver"));
|
||||||
|
|
||||||
|
_semver = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ = require("../../");
|
||||||
|
|
||||||
|
var _caching = require("../caching");
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
function makeAPI(cache) {
|
||||||
|
const env = value => cache.using(data => {
|
||||||
|
if (typeof value === "undefined") return data.envName;
|
||||||
|
|
||||||
|
if (typeof value === "function") {
|
||||||
|
return (0, _caching.assertSimpleType)(value(data.envName));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Array.isArray(value)) value = [value];
|
||||||
|
return value.some(entry => {
|
||||||
|
if (typeof entry !== "string") {
|
||||||
|
throw new Error("Unexpected non-string value");
|
||||||
|
}
|
||||||
|
|
||||||
|
return entry === data.envName;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
const caller = cb => cache.using(data => (0, _caching.assertSimpleType)(cb(data.caller)));
|
||||||
|
|
||||||
|
return {
|
||||||
|
version: _.version,
|
||||||
|
cache: cache.simple(),
|
||||||
|
env,
|
||||||
|
async: () => false,
|
||||||
|
caller,
|
||||||
|
assertVersion,
|
||||||
|
tokTypes: undefined
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertVersion(range) {
|
||||||
|
if (typeof range === "number") {
|
||||||
|
if (!Number.isInteger(range)) {
|
||||||
|
throw new Error("Expected string or integer value.");
|
||||||
|
}
|
||||||
|
|
||||||
|
range = `^${range}.0.0-0`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof range !== "string") {
|
||||||
|
throw new Error("Expected string or integer value.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_semver().default.satisfies(_.version, range)) return;
|
||||||
|
const limit = Error.stackTraceLimit;
|
||||||
|
|
||||||
|
if (typeof limit === "number" && limit < 25) {
|
||||||
|
Error.stackTraceLimit = 25;
|
||||||
|
}
|
||||||
|
|
||||||
|
const err = new Error(`Requires Babel "${range}", but was loaded with "${_.version}". ` + `If you are sure you have a compatible version of @babel/core, ` + `it is likely that something in your build process is loading the ` + `wrong version. Inspect the stack trace of this error to look for ` + `the first entry that doesn't mention "@babel/core" or "babel-core" ` + `to see what is calling Babel.`);
|
||||||
|
|
||||||
|
if (typeof limit === "number") {
|
||||||
|
Error.stackTraceLimit = limit;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw Object.assign(err, {
|
||||||
|
code: "BABEL_VERSION_UNSUPPORTED",
|
||||||
|
version: _.version,
|
||||||
|
range
|
||||||
|
});
|
||||||
|
}
|
10
node_modules/@babel/core/lib/config/helpers/environment.js
generated
vendored
Normal file
10
node_modules/@babel/core/lib/config/helpers/environment.js
generated
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.getEnv = getEnv;
|
||||||
|
|
||||||
|
function getEnv(defaultValue = "development") {
|
||||||
|
return process.env.BABEL_ENV || process.env.NODE_ENV || defaultValue;
|
||||||
|
}
|
29
node_modules/@babel/core/lib/config/index.js
generated
vendored
Normal file
29
node_modules/@babel/core/lib/config/index.js
generated
vendored
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.loadOptions = loadOptions;
|
||||||
|
Object.defineProperty(exports, "default", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _full.default;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "loadPartialConfig", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _partial.loadPartialConfig;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
var _full = _interopRequireDefault(require("./full"));
|
||||||
|
|
||||||
|
var _partial = require("./partial");
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
function loadOptions(opts) {
|
||||||
|
const config = (0, _full.default)(opts);
|
||||||
|
return config ? config.options : null;
|
||||||
|
}
|
66
node_modules/@babel/core/lib/config/item.js
generated
vendored
Normal file
66
node_modules/@babel/core/lib/config/item.js
generated
vendored
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.createItemFromDescriptor = createItemFromDescriptor;
|
||||||
|
exports.createConfigItem = createConfigItem;
|
||||||
|
exports.getItemDescriptor = getItemDescriptor;
|
||||||
|
|
||||||
|
function _path() {
|
||||||
|
const data = _interopRequireDefault(require("path"));
|
||||||
|
|
||||||
|
_path = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
var _configDescriptors = require("./config-descriptors");
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
function createItemFromDescriptor(desc) {
|
||||||
|
return new ConfigItem(desc);
|
||||||
|
}
|
||||||
|
|
||||||
|
function createConfigItem(value, {
|
||||||
|
dirname = ".",
|
||||||
|
type
|
||||||
|
} = {}) {
|
||||||
|
const descriptor = (0, _configDescriptors.createDescriptor)(value, _path().default.resolve(dirname), {
|
||||||
|
type,
|
||||||
|
alias: "programmatic item"
|
||||||
|
});
|
||||||
|
return createItemFromDescriptor(descriptor);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getItemDescriptor(item) {
|
||||||
|
if (item instanceof ConfigItem) {
|
||||||
|
return item._descriptor;
|
||||||
|
}
|
||||||
|
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
class ConfigItem {
|
||||||
|
constructor(descriptor) {
|
||||||
|
this._descriptor = descriptor;
|
||||||
|
Object.defineProperty(this, "_descriptor", {
|
||||||
|
enumerable: false
|
||||||
|
});
|
||||||
|
this.value = this._descriptor.value;
|
||||||
|
this.options = this._descriptor.options;
|
||||||
|
this.dirname = this._descriptor.dirname;
|
||||||
|
this.name = this._descriptor.name;
|
||||||
|
this.file = this._descriptor.file ? {
|
||||||
|
request: this._descriptor.file.request,
|
||||||
|
resolved: this._descriptor.file.resolved
|
||||||
|
} : undefined;
|
||||||
|
Object.freeze(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Object.freeze(ConfigItem.prototype);
|
141
node_modules/@babel/core/lib/config/partial.js
generated
vendored
Normal file
141
node_modules/@babel/core/lib/config/partial.js
generated
vendored
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = loadPrivatePartialConfig;
|
||||||
|
exports.loadPartialConfig = loadPartialConfig;
|
||||||
|
|
||||||
|
function _path() {
|
||||||
|
const data = _interopRequireDefault(require("path"));
|
||||||
|
|
||||||
|
_path = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
var _plugin = _interopRequireDefault(require("./plugin"));
|
||||||
|
|
||||||
|
var _util = require("./util");
|
||||||
|
|
||||||
|
var _item = require("./item");
|
||||||
|
|
||||||
|
var _configChain = require("./config-chain");
|
||||||
|
|
||||||
|
var _environment = require("./helpers/environment");
|
||||||
|
|
||||||
|
var _options = require("./validation/options");
|
||||||
|
|
||||||
|
var _files = require("./files");
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
function resolveRootMode(rootDir, rootMode) {
|
||||||
|
switch (rootMode) {
|
||||||
|
case "root":
|
||||||
|
return rootDir;
|
||||||
|
|
||||||
|
case "upward-optional":
|
||||||
|
{
|
||||||
|
const upwardRootDir = (0, _files.findConfigUpwards)(rootDir);
|
||||||
|
return upwardRootDir === null ? rootDir : upwardRootDir;
|
||||||
|
}
|
||||||
|
|
||||||
|
case "upward":
|
||||||
|
{
|
||||||
|
const upwardRootDir = (0, _files.findConfigUpwards)(rootDir);
|
||||||
|
if (upwardRootDir !== null) return upwardRootDir;
|
||||||
|
throw Object.assign(new Error(`Babel was run with rootMode:"upward" but a root could not ` + `be found when searching upward from "${rootDir}"`), {
|
||||||
|
code: "BABEL_ROOT_NOT_FOUND",
|
||||||
|
dirname: rootDir
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new Error(`Assertion failure - unknown rootMode value`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadPrivatePartialConfig(inputOpts) {
|
||||||
|
if (inputOpts != null && (typeof inputOpts !== "object" || Array.isArray(inputOpts))) {
|
||||||
|
throw new Error("Babel options must be an object, null, or undefined");
|
||||||
|
}
|
||||||
|
|
||||||
|
const args = inputOpts ? (0, _options.validate)("arguments", inputOpts) : {};
|
||||||
|
const {
|
||||||
|
envName = (0, _environment.getEnv)(),
|
||||||
|
cwd = ".",
|
||||||
|
root: rootDir = ".",
|
||||||
|
rootMode = "root",
|
||||||
|
caller
|
||||||
|
} = args;
|
||||||
|
|
||||||
|
const absoluteCwd = _path().default.resolve(cwd);
|
||||||
|
|
||||||
|
const absoluteRootDir = resolveRootMode(_path().default.resolve(absoluteCwd, rootDir), rootMode);
|
||||||
|
const context = {
|
||||||
|
filename: typeof args.filename === "string" ? _path().default.resolve(cwd, args.filename) : undefined,
|
||||||
|
cwd: absoluteCwd,
|
||||||
|
root: absoluteRootDir,
|
||||||
|
envName,
|
||||||
|
caller
|
||||||
|
};
|
||||||
|
const configChain = (0, _configChain.buildRootChain)(args, context);
|
||||||
|
if (!configChain) return null;
|
||||||
|
const options = {};
|
||||||
|
configChain.options.forEach(opts => {
|
||||||
|
(0, _util.mergeOptions)(options, opts);
|
||||||
|
});
|
||||||
|
options.babelrc = false;
|
||||||
|
options.configFile = false;
|
||||||
|
options.passPerPreset = false;
|
||||||
|
options.envName = context.envName;
|
||||||
|
options.cwd = context.cwd;
|
||||||
|
options.root = context.root;
|
||||||
|
options.filename = typeof context.filename === "string" ? context.filename : undefined;
|
||||||
|
options.plugins = configChain.plugins.map(descriptor => (0, _item.createItemFromDescriptor)(descriptor));
|
||||||
|
options.presets = configChain.presets.map(descriptor => (0, _item.createItemFromDescriptor)(descriptor));
|
||||||
|
return {
|
||||||
|
options,
|
||||||
|
context,
|
||||||
|
ignore: configChain.ignore,
|
||||||
|
babelrc: configChain.babelrc,
|
||||||
|
config: configChain.config
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadPartialConfig(inputOpts) {
|
||||||
|
const result = loadPrivatePartialConfig(inputOpts);
|
||||||
|
if (!result) return null;
|
||||||
|
const {
|
||||||
|
options,
|
||||||
|
babelrc,
|
||||||
|
ignore,
|
||||||
|
config
|
||||||
|
} = result;
|
||||||
|
(options.plugins || []).forEach(item => {
|
||||||
|
if (item.value instanceof _plugin.default) {
|
||||||
|
throw new Error("Passing cached plugin instances is not supported in " + "babel.loadPartialConfig()");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return new PartialConfig(options, babelrc ? babelrc.filepath : undefined, ignore ? ignore.filepath : undefined, config ? config.filepath : undefined);
|
||||||
|
}
|
||||||
|
|
||||||
|
class PartialConfig {
|
||||||
|
constructor(options, babelrc, ignore, config) {
|
||||||
|
this.options = options;
|
||||||
|
this.babelignore = ignore;
|
||||||
|
this.babelrc = babelrc;
|
||||||
|
this.config = config;
|
||||||
|
Object.freeze(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
hasFilesystemConfig() {
|
||||||
|
return this.babelrc !== undefined || this.config !== undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Object.freeze(PartialConfig.prototype);
|
52
node_modules/@babel/core/lib/config/pattern-to-regex.js
generated
vendored
Normal file
52
node_modules/@babel/core/lib/config/pattern-to-regex.js
generated
vendored
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = pathToPattern;
|
||||||
|
|
||||||
|
function _path() {
|
||||||
|
const data = _interopRequireDefault(require("path"));
|
||||||
|
|
||||||
|
_path = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _escapeRegExp() {
|
||||||
|
const data = _interopRequireDefault(require("lodash/escapeRegExp"));
|
||||||
|
|
||||||
|
_escapeRegExp = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
const sep = `\\${_path().default.sep}`;
|
||||||
|
const endSep = `(?:${sep}|$)`;
|
||||||
|
const substitution = `[^${sep}]+`;
|
||||||
|
const starPat = `(?:${substitution}${sep})`;
|
||||||
|
const starPatLast = `(?:${substitution}${endSep})`;
|
||||||
|
const starStarPat = `${starPat}*?`;
|
||||||
|
const starStarPatLast = `${starPat}*?${starPatLast}?`;
|
||||||
|
|
||||||
|
function pathToPattern(pattern, dirname) {
|
||||||
|
const parts = _path().default.resolve(dirname, pattern).split(_path().default.sep);
|
||||||
|
|
||||||
|
return new RegExp(["^", ...parts.map((part, i) => {
|
||||||
|
const last = i === parts.length - 1;
|
||||||
|
if (part === "**") return last ? starStarPatLast : starStarPat;
|
||||||
|
if (part === "*") return last ? starPatLast : starPat;
|
||||||
|
|
||||||
|
if (part.indexOf("*.") === 0) {
|
||||||
|
return substitution + (0, _escapeRegExp().default)(part.slice(1)) + (last ? endSep : sep);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (0, _escapeRegExp().default)(part) + (last ? endSep : sep);
|
||||||
|
})].join(""));
|
||||||
|
}
|
22
node_modules/@babel/core/lib/config/plugin.js
generated
vendored
Normal file
22
node_modules/@babel/core/lib/config/plugin.js
generated
vendored
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
class Plugin {
|
||||||
|
constructor(plugin, options, key) {
|
||||||
|
this.key = plugin.name || key;
|
||||||
|
this.manipulateOptions = plugin.manipulateOptions;
|
||||||
|
this.post = plugin.post;
|
||||||
|
this.pre = plugin.pre;
|
||||||
|
this.visitor = plugin.visitor || {};
|
||||||
|
this.parserOverride = plugin.parserOverride;
|
||||||
|
this.generatorOverride = plugin.generatorOverride;
|
||||||
|
this.options = options;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.default = Plugin;
|
30
node_modules/@babel/core/lib/config/util.js
generated
vendored
Normal file
30
node_modules/@babel/core/lib/config/util.js
generated
vendored
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.mergeOptions = mergeOptions;
|
||||||
|
|
||||||
|
function mergeOptions(target, source) {
|
||||||
|
for (const k of Object.keys(source)) {
|
||||||
|
if (k === "parserOpts" && source.parserOpts) {
|
||||||
|
const parserOpts = source.parserOpts;
|
||||||
|
const targetObj = target.parserOpts = target.parserOpts || {};
|
||||||
|
mergeDefaultFields(targetObj, parserOpts);
|
||||||
|
} else if (k === "generatorOpts" && source.generatorOpts) {
|
||||||
|
const generatorOpts = source.generatorOpts;
|
||||||
|
const targetObj = target.generatorOpts = target.generatorOpts || {};
|
||||||
|
mergeDefaultFields(targetObj, generatorOpts);
|
||||||
|
} else {
|
||||||
|
const val = source[k];
|
||||||
|
if (val !== undefined) target[k] = val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function mergeDefaultFields(target, source) {
|
||||||
|
for (const k of Object.keys(source)) {
|
||||||
|
const val = source[k];
|
||||||
|
if (val !== undefined) target[k] = val;
|
||||||
|
}
|
||||||
|
}
|
268
node_modules/@babel/core/lib/config/validation/option-assertions.js
generated
vendored
Normal file
268
node_modules/@babel/core/lib/config/validation/option-assertions.js
generated
vendored
Normal file
@ -0,0 +1,268 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.msg = msg;
|
||||||
|
exports.access = access;
|
||||||
|
exports.assertRootMode = assertRootMode;
|
||||||
|
exports.assertSourceMaps = assertSourceMaps;
|
||||||
|
exports.assertCompact = assertCompact;
|
||||||
|
exports.assertSourceType = assertSourceType;
|
||||||
|
exports.assertCallerMetadata = assertCallerMetadata;
|
||||||
|
exports.assertInputSourceMap = assertInputSourceMap;
|
||||||
|
exports.assertString = assertString;
|
||||||
|
exports.assertFunction = assertFunction;
|
||||||
|
exports.assertBoolean = assertBoolean;
|
||||||
|
exports.assertObject = assertObject;
|
||||||
|
exports.assertArray = assertArray;
|
||||||
|
exports.assertIgnoreList = assertIgnoreList;
|
||||||
|
exports.assertConfigApplicableTest = assertConfigApplicableTest;
|
||||||
|
exports.assertConfigFileSearch = assertConfigFileSearch;
|
||||||
|
exports.assertBabelrcSearch = assertBabelrcSearch;
|
||||||
|
exports.assertPluginList = assertPluginList;
|
||||||
|
|
||||||
|
function msg(loc) {
|
||||||
|
switch (loc.type) {
|
||||||
|
case "root":
|
||||||
|
return ``;
|
||||||
|
|
||||||
|
case "env":
|
||||||
|
return `${msg(loc.parent)}.env["${loc.name}"]`;
|
||||||
|
|
||||||
|
case "overrides":
|
||||||
|
return `${msg(loc.parent)}.overrides[${loc.index}]`;
|
||||||
|
|
||||||
|
case "option":
|
||||||
|
return `${msg(loc.parent)}.${loc.name}`;
|
||||||
|
|
||||||
|
case "access":
|
||||||
|
return `${msg(loc.parent)}[${JSON.stringify(loc.name)}]`;
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new Error(`Assertion failure: Unknown type ${loc.type}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function access(loc, name) {
|
||||||
|
return {
|
||||||
|
type: "access",
|
||||||
|
name,
|
||||||
|
parent: loc
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertRootMode(loc, value) {
|
||||||
|
if (value !== undefined && value !== "root" && value !== "upward" && value !== "upward-optional") {
|
||||||
|
throw new Error(`${msg(loc)} must be a "root", "upward", "upward-optional" or undefined`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertSourceMaps(loc, value) {
|
||||||
|
if (value !== undefined && typeof value !== "boolean" && value !== "inline" && value !== "both") {
|
||||||
|
throw new Error(`${msg(loc)} must be a boolean, "inline", "both", or undefined`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertCompact(loc, value) {
|
||||||
|
if (value !== undefined && typeof value !== "boolean" && value !== "auto") {
|
||||||
|
throw new Error(`${msg(loc)} must be a boolean, "auto", or undefined`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertSourceType(loc, value) {
|
||||||
|
if (value !== undefined && value !== "module" && value !== "script" && value !== "unambiguous") {
|
||||||
|
throw new Error(`${msg(loc)} must be "module", "script", "unambiguous", or undefined`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertCallerMetadata(loc, value) {
|
||||||
|
const obj = assertObject(loc, value);
|
||||||
|
|
||||||
|
if (obj) {
|
||||||
|
if (typeof obj["name"] !== "string") {
|
||||||
|
throw new Error(`${msg(loc)} set but does not contain "name" property string`);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const prop of Object.keys(obj)) {
|
||||||
|
const propLoc = access(loc, prop);
|
||||||
|
const value = obj[prop];
|
||||||
|
|
||||||
|
if (value != null && typeof value !== "boolean" && typeof value !== "string" && typeof value !== "number") {
|
||||||
|
throw new Error(`${msg(propLoc)} must be null, undefined, a boolean, a string, or a number.`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertInputSourceMap(loc, value) {
|
||||||
|
if (value !== undefined && typeof value !== "boolean" && (typeof value !== "object" || !value)) {
|
||||||
|
throw new Error(`${msg(loc)} must be a boolean, object, or undefined`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertString(loc, value) {
|
||||||
|
if (value !== undefined && typeof value !== "string") {
|
||||||
|
throw new Error(`${msg(loc)} must be a string, or undefined`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertFunction(loc, value) {
|
||||||
|
if (value !== undefined && typeof value !== "function") {
|
||||||
|
throw new Error(`${msg(loc)} must be a function, or undefined`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertBoolean(loc, value) {
|
||||||
|
if (value !== undefined && typeof value !== "boolean") {
|
||||||
|
throw new Error(`${msg(loc)} must be a boolean, or undefined`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertObject(loc, value) {
|
||||||
|
if (value !== undefined && (typeof value !== "object" || Array.isArray(value) || !value)) {
|
||||||
|
throw new Error(`${msg(loc)} must be an object, or undefined`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertArray(loc, value) {
|
||||||
|
if (value != null && !Array.isArray(value)) {
|
||||||
|
throw new Error(`${msg(loc)} must be an array, or undefined`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertIgnoreList(loc, value) {
|
||||||
|
const arr = assertArray(loc, value);
|
||||||
|
|
||||||
|
if (arr) {
|
||||||
|
arr.forEach((item, i) => assertIgnoreItem(access(loc, i), item));
|
||||||
|
}
|
||||||
|
|
||||||
|
return arr;
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertIgnoreItem(loc, value) {
|
||||||
|
if (typeof value !== "string" && typeof value !== "function" && !(value instanceof RegExp)) {
|
||||||
|
throw new Error(`${msg(loc)} must be an array of string/Function/RegExp values, or undefined`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertConfigApplicableTest(loc, value) {
|
||||||
|
if (value === undefined) return value;
|
||||||
|
|
||||||
|
if (Array.isArray(value)) {
|
||||||
|
value.forEach((item, i) => {
|
||||||
|
if (!checkValidTest(item)) {
|
||||||
|
throw new Error(`${msg(access(loc, i))} must be a string/Function/RegExp.`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else if (!checkValidTest(value)) {
|
||||||
|
throw new Error(`${msg(loc)} must be a string/Function/RegExp, or an array of those`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkValidTest(value) {
|
||||||
|
return typeof value === "string" || typeof value === "function" || value instanceof RegExp;
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertConfigFileSearch(loc, value) {
|
||||||
|
if (value !== undefined && typeof value !== "boolean" && typeof value !== "string") {
|
||||||
|
throw new Error(`${msg(loc)} must be a undefined, a boolean, a string, ` + `got ${JSON.stringify(value)}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertBabelrcSearch(loc, value) {
|
||||||
|
if (value === undefined || typeof value === "boolean") return value;
|
||||||
|
|
||||||
|
if (Array.isArray(value)) {
|
||||||
|
value.forEach((item, i) => {
|
||||||
|
if (!checkValidTest(item)) {
|
||||||
|
throw new Error(`${msg(access(loc, i))} must be a string/Function/RegExp.`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else if (!checkValidTest(value)) {
|
||||||
|
throw new Error(`${msg(loc)} must be a undefined, a boolean, a string/Function/RegExp ` + `or an array of those, got ${JSON.stringify(value)}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertPluginList(loc, value) {
|
||||||
|
const arr = assertArray(loc, value);
|
||||||
|
|
||||||
|
if (arr) {
|
||||||
|
arr.forEach((item, i) => assertPluginItem(access(loc, i), item));
|
||||||
|
}
|
||||||
|
|
||||||
|
return arr;
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertPluginItem(loc, value) {
|
||||||
|
if (Array.isArray(value)) {
|
||||||
|
if (value.length === 0) {
|
||||||
|
throw new Error(`${msg(loc)} must include an object`);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (value.length > 3) {
|
||||||
|
throw new Error(`${msg(loc)} may only be a two-tuple or three-tuple`);
|
||||||
|
}
|
||||||
|
|
||||||
|
assertPluginTarget(access(loc, 0), value[0]);
|
||||||
|
|
||||||
|
if (value.length > 1) {
|
||||||
|
const opts = value[1];
|
||||||
|
|
||||||
|
if (opts !== undefined && opts !== false && (typeof opts !== "object" || Array.isArray(opts) || opts === null)) {
|
||||||
|
throw new Error(`${msg(access(loc, 1))} must be an object, false, or undefined`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (value.length === 3) {
|
||||||
|
const name = value[2];
|
||||||
|
|
||||||
|
if (name !== undefined && typeof name !== "string") {
|
||||||
|
throw new Error(`${msg(access(loc, 2))} must be a string, or undefined`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
assertPluginTarget(loc, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertPluginTarget(loc, value) {
|
||||||
|
if ((typeof value !== "object" || !value) && typeof value !== "string" && typeof value !== "function") {
|
||||||
|
throw new Error(`${msg(loc)} must be a string, object, function`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
188
node_modules/@babel/core/lib/config/validation/options.js
generated
vendored
Normal file
188
node_modules/@babel/core/lib/config/validation/options.js
generated
vendored
Normal file
@ -0,0 +1,188 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.validate = validate;
|
||||||
|
|
||||||
|
var _plugin = _interopRequireDefault(require("../plugin"));
|
||||||
|
|
||||||
|
var _removed = _interopRequireDefault(require("./removed"));
|
||||||
|
|
||||||
|
var _optionAssertions = require("./option-assertions");
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
const ROOT_VALIDATORS = {
|
||||||
|
cwd: _optionAssertions.assertString,
|
||||||
|
root: _optionAssertions.assertString,
|
||||||
|
rootMode: _optionAssertions.assertRootMode,
|
||||||
|
configFile: _optionAssertions.assertConfigFileSearch,
|
||||||
|
caller: _optionAssertions.assertCallerMetadata,
|
||||||
|
filename: _optionAssertions.assertString,
|
||||||
|
filenameRelative: _optionAssertions.assertString,
|
||||||
|
code: _optionAssertions.assertBoolean,
|
||||||
|
ast: _optionAssertions.assertBoolean,
|
||||||
|
envName: _optionAssertions.assertString
|
||||||
|
};
|
||||||
|
const BABELRC_VALIDATORS = {
|
||||||
|
babelrc: _optionAssertions.assertBoolean,
|
||||||
|
babelrcRoots: _optionAssertions.assertBabelrcSearch
|
||||||
|
};
|
||||||
|
const NONPRESET_VALIDATORS = {
|
||||||
|
extends: _optionAssertions.assertString,
|
||||||
|
ignore: _optionAssertions.assertIgnoreList,
|
||||||
|
only: _optionAssertions.assertIgnoreList
|
||||||
|
};
|
||||||
|
const COMMON_VALIDATORS = {
|
||||||
|
inputSourceMap: _optionAssertions.assertInputSourceMap,
|
||||||
|
presets: _optionAssertions.assertPluginList,
|
||||||
|
plugins: _optionAssertions.assertPluginList,
|
||||||
|
passPerPreset: _optionAssertions.assertBoolean,
|
||||||
|
env: assertEnvSet,
|
||||||
|
overrides: assertOverridesList,
|
||||||
|
test: _optionAssertions.assertConfigApplicableTest,
|
||||||
|
include: _optionAssertions.assertConfigApplicableTest,
|
||||||
|
exclude: _optionAssertions.assertConfigApplicableTest,
|
||||||
|
retainLines: _optionAssertions.assertBoolean,
|
||||||
|
comments: _optionAssertions.assertBoolean,
|
||||||
|
shouldPrintComment: _optionAssertions.assertFunction,
|
||||||
|
compact: _optionAssertions.assertCompact,
|
||||||
|
minified: _optionAssertions.assertBoolean,
|
||||||
|
auxiliaryCommentBefore: _optionAssertions.assertString,
|
||||||
|
auxiliaryCommentAfter: _optionAssertions.assertString,
|
||||||
|
sourceType: _optionAssertions.assertSourceType,
|
||||||
|
wrapPluginVisitorMethod: _optionAssertions.assertFunction,
|
||||||
|
highlightCode: _optionAssertions.assertBoolean,
|
||||||
|
sourceMaps: _optionAssertions.assertSourceMaps,
|
||||||
|
sourceMap: _optionAssertions.assertSourceMaps,
|
||||||
|
sourceFileName: _optionAssertions.assertString,
|
||||||
|
sourceRoot: _optionAssertions.assertString,
|
||||||
|
getModuleId: _optionAssertions.assertFunction,
|
||||||
|
moduleRoot: _optionAssertions.assertString,
|
||||||
|
moduleIds: _optionAssertions.assertBoolean,
|
||||||
|
moduleId: _optionAssertions.assertString,
|
||||||
|
parserOpts: _optionAssertions.assertObject,
|
||||||
|
generatorOpts: _optionAssertions.assertObject
|
||||||
|
};
|
||||||
|
|
||||||
|
function getSource(loc) {
|
||||||
|
return loc.type === "root" ? loc.source : getSource(loc.parent);
|
||||||
|
}
|
||||||
|
|
||||||
|
function validate(type, opts) {
|
||||||
|
return validateNested({
|
||||||
|
type: "root",
|
||||||
|
source: type
|
||||||
|
}, opts);
|
||||||
|
}
|
||||||
|
|
||||||
|
function validateNested(loc, opts) {
|
||||||
|
const type = getSource(loc);
|
||||||
|
assertNoDuplicateSourcemap(opts);
|
||||||
|
Object.keys(opts).forEach(key => {
|
||||||
|
const optLoc = {
|
||||||
|
type: "option",
|
||||||
|
name: key,
|
||||||
|
parent: loc
|
||||||
|
};
|
||||||
|
|
||||||
|
if (type === "preset" && NONPRESET_VALIDATORS[key]) {
|
||||||
|
throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is not allowed in preset options`);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (type !== "arguments" && ROOT_VALIDATORS[key]) {
|
||||||
|
throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is only allowed in root programmatic options`);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (type !== "arguments" && type !== "configfile" && BABELRC_VALIDATORS[key]) {
|
||||||
|
if (type === "babelrcfile" || type === "extendsfile") {
|
||||||
|
throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is not allowed in .babelrc or "extends"ed files, only in root programmatic options, ` + `or babel.config.js/config file options`);
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is only allowed in root programmatic options, or babel.config.js/config file options`);
|
||||||
|
}
|
||||||
|
|
||||||
|
const validator = COMMON_VALIDATORS[key] || NONPRESET_VALIDATORS[key] || BABELRC_VALIDATORS[key] || ROOT_VALIDATORS[key] || throwUnknownError;
|
||||||
|
validator(optLoc, opts[key]);
|
||||||
|
});
|
||||||
|
return opts;
|
||||||
|
}
|
||||||
|
|
||||||
|
function throwUnknownError(loc) {
|
||||||
|
const key = loc.name;
|
||||||
|
|
||||||
|
if (_removed.default[key]) {
|
||||||
|
const {
|
||||||
|
message,
|
||||||
|
version = 5
|
||||||
|
} = _removed.default[key];
|
||||||
|
throw new ReferenceError(`Using removed Babel ${version} option: ${(0, _optionAssertions.msg)(loc)} - ${message}`);
|
||||||
|
} else {
|
||||||
|
const unknownOptErr = `Unknown option: ${(0, _optionAssertions.msg)(loc)}. Check out https://babeljs.io/docs/en/babel-core/#options for more information about options.`;
|
||||||
|
throw new ReferenceError(unknownOptErr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function has(obj, key) {
|
||||||
|
return Object.prototype.hasOwnProperty.call(obj, key);
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertNoDuplicateSourcemap(opts) {
|
||||||
|
if (has(opts, "sourceMap") && has(opts, "sourceMaps")) {
|
||||||
|
throw new Error(".sourceMap is an alias for .sourceMaps, cannot use both");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertEnvSet(loc, value) {
|
||||||
|
if (loc.parent.type === "env") {
|
||||||
|
throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside of another .env block`);
|
||||||
|
}
|
||||||
|
|
||||||
|
const parent = loc.parent;
|
||||||
|
const obj = (0, _optionAssertions.assertObject)(loc, value);
|
||||||
|
|
||||||
|
if (obj) {
|
||||||
|
for (const envName of Object.keys(obj)) {
|
||||||
|
const env = (0, _optionAssertions.assertObject)((0, _optionAssertions.access)(loc, envName), obj[envName]);
|
||||||
|
if (!env) continue;
|
||||||
|
const envLoc = {
|
||||||
|
type: "env",
|
||||||
|
name: envName,
|
||||||
|
parent
|
||||||
|
};
|
||||||
|
validateNested(envLoc, env);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertOverridesList(loc, value) {
|
||||||
|
if (loc.parent.type === "env") {
|
||||||
|
throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside an .env block`);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (loc.parent.type === "overrides") {
|
||||||
|
throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside an .overrides block`);
|
||||||
|
}
|
||||||
|
|
||||||
|
const parent = loc.parent;
|
||||||
|
const arr = (0, _optionAssertions.assertArray)(loc, value);
|
||||||
|
|
||||||
|
if (arr) {
|
||||||
|
for (const [index, item] of arr.entries()) {
|
||||||
|
const objLoc = (0, _optionAssertions.access)(loc, index);
|
||||||
|
const env = (0, _optionAssertions.assertObject)(objLoc, item);
|
||||||
|
if (!env) throw new Error(`${(0, _optionAssertions.msg)(objLoc)} must be an object`);
|
||||||
|
const overridesLoc = {
|
||||||
|
type: "overrides",
|
||||||
|
index,
|
||||||
|
parent
|
||||||
|
};
|
||||||
|
validateNested(overridesLoc, env);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return arr;
|
||||||
|
}
|
64
node_modules/@babel/core/lib/config/validation/plugins.js
generated
vendored
Normal file
64
node_modules/@babel/core/lib/config/validation/plugins.js
generated
vendored
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.validatePluginObject = validatePluginObject;
|
||||||
|
|
||||||
|
var _optionAssertions = require("./option-assertions");
|
||||||
|
|
||||||
|
const VALIDATORS = {
|
||||||
|
name: _optionAssertions.assertString,
|
||||||
|
manipulateOptions: _optionAssertions.assertFunction,
|
||||||
|
pre: _optionAssertions.assertFunction,
|
||||||
|
post: _optionAssertions.assertFunction,
|
||||||
|
inherits: _optionAssertions.assertFunction,
|
||||||
|
visitor: assertVisitorMap,
|
||||||
|
parserOverride: _optionAssertions.assertFunction,
|
||||||
|
generatorOverride: _optionAssertions.assertFunction
|
||||||
|
};
|
||||||
|
|
||||||
|
function assertVisitorMap(key, value) {
|
||||||
|
const obj = (0, _optionAssertions.assertObject)(key, value);
|
||||||
|
|
||||||
|
if (obj) {
|
||||||
|
Object.keys(obj).forEach(prop => assertVisitorHandler(prop, obj[prop]));
|
||||||
|
|
||||||
|
if (obj.enter || obj.exit) {
|
||||||
|
throw new Error(`.${key} cannot contain catch-all "enter" or "exit" handlers. Please target individual nodes.`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
function assertVisitorHandler(key, value) {
|
||||||
|
if (value && typeof value === "object") {
|
||||||
|
Object.keys(value).forEach(handler => {
|
||||||
|
if (handler !== "enter" && handler !== "exit") {
|
||||||
|
throw new Error(`.visitor["${key}"] may only have .enter and/or .exit handlers.`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else if (typeof value !== "function") {
|
||||||
|
throw new Error(`.visitor["${key}"] must be a function`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function validatePluginObject(obj) {
|
||||||
|
const rootPath = {
|
||||||
|
type: "root",
|
||||||
|
source: "plugin"
|
||||||
|
};
|
||||||
|
Object.keys(obj).forEach(key => {
|
||||||
|
const validator = VALIDATORS[key];
|
||||||
|
const optLoc = {
|
||||||
|
type: "option",
|
||||||
|
name: key,
|
||||||
|
parent: rootPath
|
||||||
|
};
|
||||||
|
if (validator) validator(optLoc, obj[key]);else throw new Error(`.${key} is not a valid Plugin property`);
|
||||||
|
});
|
||||||
|
return obj;
|
||||||
|
}
|
66
node_modules/@babel/core/lib/config/validation/removed.js
generated
vendored
Normal file
66
node_modules/@babel/core/lib/config/validation/removed.js
generated
vendored
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
var _default = {
|
||||||
|
auxiliaryComment: {
|
||||||
|
message: "Use `auxiliaryCommentBefore` or `auxiliaryCommentAfter`"
|
||||||
|
},
|
||||||
|
blacklist: {
|
||||||
|
message: "Put the specific transforms you want in the `plugins` option"
|
||||||
|
},
|
||||||
|
breakConfig: {
|
||||||
|
message: "This is not a necessary option in Babel 6"
|
||||||
|
},
|
||||||
|
experimental: {
|
||||||
|
message: "Put the specific transforms you want in the `plugins` option"
|
||||||
|
},
|
||||||
|
externalHelpers: {
|
||||||
|
message: "Use the `external-helpers` plugin instead. " + "Check out http://babeljs.io/docs/plugins/external-helpers/"
|
||||||
|
},
|
||||||
|
extra: {
|
||||||
|
message: ""
|
||||||
|
},
|
||||||
|
jsxPragma: {
|
||||||
|
message: "use the `pragma` option in the `react-jsx` plugin. " + "Check out http://babeljs.io/docs/plugins/transform-react-jsx/"
|
||||||
|
},
|
||||||
|
loose: {
|
||||||
|
message: "Specify the `loose` option for the relevant plugin you are using " + "or use a preset that sets the option."
|
||||||
|
},
|
||||||
|
metadataUsedHelpers: {
|
||||||
|
message: "Not required anymore as this is enabled by default"
|
||||||
|
},
|
||||||
|
modules: {
|
||||||
|
message: "Use the corresponding module transform plugin in the `plugins` option. " + "Check out http://babeljs.io/docs/plugins/#modules"
|
||||||
|
},
|
||||||
|
nonStandard: {
|
||||||
|
message: "Use the `react-jsx` and `flow-strip-types` plugins to support JSX and Flow. " + "Also check out the react preset http://babeljs.io/docs/plugins/preset-react/"
|
||||||
|
},
|
||||||
|
optional: {
|
||||||
|
message: "Put the specific transforms you want in the `plugins` option"
|
||||||
|
},
|
||||||
|
sourceMapName: {
|
||||||
|
message: "The `sourceMapName` option has been removed because it makes more sense for the " + "tooling that calls Babel to assign `map.file` themselves."
|
||||||
|
},
|
||||||
|
stage: {
|
||||||
|
message: "Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets"
|
||||||
|
},
|
||||||
|
whitelist: {
|
||||||
|
message: "Put the specific transforms you want in the `plugins` option"
|
||||||
|
},
|
||||||
|
resolveModuleSource: {
|
||||||
|
version: 6,
|
||||||
|
message: "Use `babel-plugin-module-resolver@3`'s 'resolvePath' options"
|
||||||
|
},
|
||||||
|
metadata: {
|
||||||
|
version: 6,
|
||||||
|
message: "Generated plugin metadata is always included in the output result"
|
||||||
|
},
|
||||||
|
sourceMapTarget: {
|
||||||
|
version: 6,
|
||||||
|
message: "The `sourceMapTarget` option has been removed because it makes more sense for the tooling " + "that calls Babel to assign `map.file` themselves."
|
||||||
|
}
|
||||||
|
};
|
||||||
|
exports.default = _default;
|
242
node_modules/@babel/core/lib/index.js
generated
vendored
Normal file
242
node_modules/@babel/core/lib/index.js
generated
vendored
Normal file
@ -0,0 +1,242 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.Plugin = Plugin;
|
||||||
|
Object.defineProperty(exports, "File", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _file.default;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "buildExternalHelpers", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _buildExternalHelpers.default;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "resolvePlugin", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _files.resolvePlugin;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "resolvePreset", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _files.resolvePreset;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "version", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _package.version;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "getEnv", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _environment.getEnv;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "tokTypes", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _parser().tokTypes;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "traverse", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _traverse().default;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "template", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _template().default;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "createConfigItem", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _item.createConfigItem;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "loadPartialConfig", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _config.loadPartialConfig;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "loadOptions", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _config.loadOptions;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "transform", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _transform.transform;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "transformSync", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _transform.transformSync;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "transformAsync", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _transform.transformAsync;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "transformFile", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _transformFile.transformFile;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "transformFileSync", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _transformFile.transformFileSync;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "transformFileAsync", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _transformFile.transformFileAsync;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "transformFromAst", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _transformAst.transformFromAst;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "transformFromAstSync", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _transformAst.transformFromAstSync;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "transformFromAstAsync", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _transformAst.transformFromAstAsync;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "parse", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _parse.parse;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "parseSync", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _parse.parseSync;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Object.defineProperty(exports, "parseAsync", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _parse.parseAsync;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
exports.types = exports.OptionManager = exports.DEFAULT_EXTENSIONS = void 0;
|
||||||
|
|
||||||
|
var _file = _interopRequireDefault(require("./transformation/file/file"));
|
||||||
|
|
||||||
|
var _buildExternalHelpers = _interopRequireDefault(require("./tools/build-external-helpers"));
|
||||||
|
|
||||||
|
var _files = require("./config/files");
|
||||||
|
|
||||||
|
var _package = require("../package.json");
|
||||||
|
|
||||||
|
var _environment = require("./config/helpers/environment");
|
||||||
|
|
||||||
|
function _types() {
|
||||||
|
const data = _interopRequireWildcard(require("@babel/types"));
|
||||||
|
|
||||||
|
_types = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "types", {
|
||||||
|
enumerable: true,
|
||||||
|
get: function () {
|
||||||
|
return _types();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
function _parser() {
|
||||||
|
const data = require("@babel/parser");
|
||||||
|
|
||||||
|
_parser = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _traverse() {
|
||||||
|
const data = _interopRequireDefault(require("@babel/traverse"));
|
||||||
|
|
||||||
|
_traverse = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _template() {
|
||||||
|
const data = _interopRequireDefault(require("@babel/template"));
|
||||||
|
|
||||||
|
_template = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
var _item = require("./config/item");
|
||||||
|
|
||||||
|
var _config = require("./config");
|
||||||
|
|
||||||
|
var _transform = require("./transform");
|
||||||
|
|
||||||
|
var _transformFile = require("./transform-file");
|
||||||
|
|
||||||
|
var _transformAst = require("./transform-ast");
|
||||||
|
|
||||||
|
var _parse = require("./parse");
|
||||||
|
|
||||||
|
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
||||||
|
|
||||||
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; if (obj != null) { var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
const DEFAULT_EXTENSIONS = Object.freeze([".js", ".jsx", ".es6", ".es", ".mjs"]);
|
||||||
|
exports.DEFAULT_EXTENSIONS = DEFAULT_EXTENSIONS;
|
||||||
|
|
||||||
|
class OptionManager {
|
||||||
|
init(opts) {
|
||||||
|
return (0, _config.loadOptions)(opts);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.OptionManager = OptionManager;
|
||||||
|
|
||||||
|
function Plugin(alias) {
|
||||||
|
throw new Error(`The (${alias}) Babel 5 plugin is being run with an unsupported Babel version.`);
|
||||||
|
}
|
65
node_modules/@babel/core/lib/parse.js
generated
vendored
Normal file
65
node_modules/@babel/core/lib/parse.js
generated
vendored
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.parseSync = parseSync;
|
||||||
|
exports.parseAsync = parseAsync;
|
||||||
|
exports.parse = void 0;
|
||||||
|
|
||||||
|
var _config = _interopRequireDefault(require("./config"));
|
||||||
|
|
||||||
|
var _normalizeFile = _interopRequireDefault(require("./transformation/normalize-file"));
|
||||||
|
|
||||||
|
var _normalizeOpts = _interopRequireDefault(require("./transformation/normalize-opts"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
const parse = function parse(code, opts, callback) {
|
||||||
|
if (typeof opts === "function") {
|
||||||
|
callback = opts;
|
||||||
|
opts = undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (callback === undefined) return parseSync(code, opts);
|
||||||
|
const config = (0, _config.default)(opts);
|
||||||
|
|
||||||
|
if (config === null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
const cb = callback;
|
||||||
|
process.nextTick(() => {
|
||||||
|
let ast = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
const cfg = (0, _config.default)(opts);
|
||||||
|
if (cfg === null) return cb(null, null);
|
||||||
|
ast = (0, _normalizeFile.default)(cfg.passes, (0, _normalizeOpts.default)(cfg), code).ast;
|
||||||
|
} catch (err) {
|
||||||
|
return cb(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
cb(null, ast);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.parse = parse;
|
||||||
|
|
||||||
|
function parseSync(code, opts) {
|
||||||
|
const config = (0, _config.default)(opts);
|
||||||
|
|
||||||
|
if (config === null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (0, _normalizeFile.default)(config.passes, (0, _normalizeOpts.default)(config), code).ast;
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseAsync(code, opts) {
|
||||||
|
return new Promise((res, rej) => {
|
||||||
|
parse(code, opts, (err, result) => {
|
||||||
|
if (err == null) res(result);else rej(err);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
145
node_modules/@babel/core/lib/tools/build-external-helpers.js
generated
vendored
Normal file
145
node_modules/@babel/core/lib/tools/build-external-helpers.js
generated
vendored
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = _default;
|
||||||
|
|
||||||
|
function helpers() {
|
||||||
|
const data = _interopRequireWildcard(require("@babel/helpers"));
|
||||||
|
|
||||||
|
helpers = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _generator() {
|
||||||
|
const data = _interopRequireDefault(require("@babel/generator"));
|
||||||
|
|
||||||
|
_generator = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _template() {
|
||||||
|
const data = _interopRequireDefault(require("@babel/template"));
|
||||||
|
|
||||||
|
_template = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function t() {
|
||||||
|
const data = _interopRequireWildcard(require("@babel/types"));
|
||||||
|
|
||||||
|
t = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
||||||
|
|
||||||
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; if (obj != null) { var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||||||
|
|
||||||
|
const buildUmdWrapper = replacements => _template().default`
|
||||||
|
(function (root, factory) {
|
||||||
|
if (typeof define === "function" && define.amd) {
|
||||||
|
define(AMD_ARGUMENTS, factory);
|
||||||
|
} else if (typeof exports === "object") {
|
||||||
|
factory(COMMON_ARGUMENTS);
|
||||||
|
} else {
|
||||||
|
factory(BROWSER_ARGUMENTS);
|
||||||
|
}
|
||||||
|
})(UMD_ROOT, function (FACTORY_PARAMETERS) {
|
||||||
|
FACTORY_BODY
|
||||||
|
});
|
||||||
|
`(replacements);
|
||||||
|
|
||||||
|
function buildGlobal(whitelist) {
|
||||||
|
const namespace = t().identifier("babelHelpers");
|
||||||
|
const body = [];
|
||||||
|
const container = t().functionExpression(null, [t().identifier("global")], t().blockStatement(body));
|
||||||
|
const tree = t().program([t().expressionStatement(t().callExpression(container, [t().conditionalExpression(t().binaryExpression("===", t().unaryExpression("typeof", t().identifier("global")), t().stringLiteral("undefined")), t().identifier("self"), t().identifier("global"))]))]);
|
||||||
|
body.push(t().variableDeclaration("var", [t().variableDeclarator(namespace, t().assignmentExpression("=", t().memberExpression(t().identifier("global"), namespace), t().objectExpression([])))]));
|
||||||
|
buildHelpers(body, namespace, whitelist);
|
||||||
|
return tree;
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildModule(whitelist) {
|
||||||
|
const body = [];
|
||||||
|
const refs = buildHelpers(body, null, whitelist);
|
||||||
|
body.unshift(t().exportNamedDeclaration(null, Object.keys(refs).map(name => {
|
||||||
|
return t().exportSpecifier(t().cloneNode(refs[name]), t().identifier(name));
|
||||||
|
})));
|
||||||
|
return t().program(body, [], "module");
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildUmd(whitelist) {
|
||||||
|
const namespace = t().identifier("babelHelpers");
|
||||||
|
const body = [];
|
||||||
|
body.push(t().variableDeclaration("var", [t().variableDeclarator(namespace, t().identifier("global"))]));
|
||||||
|
buildHelpers(body, namespace, whitelist);
|
||||||
|
return t().program([buildUmdWrapper({
|
||||||
|
FACTORY_PARAMETERS: t().identifier("global"),
|
||||||
|
BROWSER_ARGUMENTS: t().assignmentExpression("=", t().memberExpression(t().identifier("root"), namespace), t().objectExpression([])),
|
||||||
|
COMMON_ARGUMENTS: t().identifier("exports"),
|
||||||
|
AMD_ARGUMENTS: t().arrayExpression([t().stringLiteral("exports")]),
|
||||||
|
FACTORY_BODY: body,
|
||||||
|
UMD_ROOT: t().identifier("this")
|
||||||
|
})]);
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildVar(whitelist) {
|
||||||
|
const namespace = t().identifier("babelHelpers");
|
||||||
|
const body = [];
|
||||||
|
body.push(t().variableDeclaration("var", [t().variableDeclarator(namespace, t().objectExpression([]))]));
|
||||||
|
const tree = t().program(body);
|
||||||
|
buildHelpers(body, namespace, whitelist);
|
||||||
|
body.push(t().expressionStatement(namespace));
|
||||||
|
return tree;
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildHelpers(body, namespace, whitelist) {
|
||||||
|
const getHelperReference = name => {
|
||||||
|
return namespace ? t().memberExpression(namespace, t().identifier(name)) : t().identifier(`_${name}`);
|
||||||
|
};
|
||||||
|
|
||||||
|
const refs = {};
|
||||||
|
helpers().list.forEach(function (name) {
|
||||||
|
if (whitelist && whitelist.indexOf(name) < 0) return;
|
||||||
|
const ref = refs[name] = getHelperReference(name);
|
||||||
|
const {
|
||||||
|
nodes
|
||||||
|
} = helpers().get(name, getHelperReference, ref);
|
||||||
|
body.push(...nodes);
|
||||||
|
});
|
||||||
|
return refs;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _default(whitelist, outputType = "global") {
|
||||||
|
let tree;
|
||||||
|
const build = {
|
||||||
|
global: buildGlobal,
|
||||||
|
module: buildModule,
|
||||||
|
umd: buildUmd,
|
||||||
|
var: buildVar
|
||||||
|
}[outputType];
|
||||||
|
|
||||||
|
if (build) {
|
||||||
|
tree = build(whitelist);
|
||||||
|
} else {
|
||||||
|
throw new Error(`Unsupported output type ${outputType}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (0, _generator().default)(tree).code;
|
||||||
|
}
|
54
node_modules/@babel/core/lib/transform-ast.js
generated
vendored
Normal file
54
node_modules/@babel/core/lib/transform-ast.js
generated
vendored
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.transformFromAstSync = transformFromAstSync;
|
||||||
|
exports.transformFromAstAsync = transformFromAstAsync;
|
||||||
|
exports.transformFromAst = void 0;
|
||||||
|
|
||||||
|
var _config = _interopRequireDefault(require("./config"));
|
||||||
|
|
||||||
|
var _transformation = require("./transformation");
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
const transformFromAst = function transformFromAst(ast, code, opts, callback) {
|
||||||
|
if (typeof opts === "function") {
|
||||||
|
callback = opts;
|
||||||
|
opts = undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (callback === undefined) return transformFromAstSync(ast, code, opts);
|
||||||
|
const cb = callback;
|
||||||
|
process.nextTick(() => {
|
||||||
|
let cfg;
|
||||||
|
|
||||||
|
try {
|
||||||
|
cfg = (0, _config.default)(opts);
|
||||||
|
if (cfg === null) return cb(null, null);
|
||||||
|
} catch (err) {
|
||||||
|
return cb(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!ast) return cb(new Error("No AST given"));
|
||||||
|
(0, _transformation.runAsync)(cfg, code, ast, cb);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.transformFromAst = transformFromAst;
|
||||||
|
|
||||||
|
function transformFromAstSync(ast, code, opts) {
|
||||||
|
const config = (0, _config.default)(opts);
|
||||||
|
if (config === null) return null;
|
||||||
|
if (!ast) throw new Error("No AST given");
|
||||||
|
return (0, _transformation.runSync)(config, code, ast);
|
||||||
|
}
|
||||||
|
|
||||||
|
function transformFromAstAsync(ast, code, opts) {
|
||||||
|
return new Promise((res, rej) => {
|
||||||
|
transformFromAst(ast, code, opts, (err, result) => {
|
||||||
|
if (err == null) res(result);else rej(err);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
26
node_modules/@babel/core/lib/transform-file-browser.js
generated
vendored
Normal file
26
node_modules/@babel/core/lib/transform-file-browser.js
generated
vendored
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.transformFileSync = transformFileSync;
|
||||||
|
exports.transformFileAsync = transformFileAsync;
|
||||||
|
exports.transformFile = void 0;
|
||||||
|
|
||||||
|
const transformFile = function transformFile(filename, opts, callback) {
|
||||||
|
if (typeof opts === "function") {
|
||||||
|
callback = opts;
|
||||||
|
}
|
||||||
|
|
||||||
|
callback(new Error("Transforming files is not supported in browsers"), null);
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.transformFile = transformFile;
|
||||||
|
|
||||||
|
function transformFileSync() {
|
||||||
|
throw new Error("Transforming files is not supported in browsers");
|
||||||
|
}
|
||||||
|
|
||||||
|
function transformFileAsync() {
|
||||||
|
return Promise.reject(new Error("Transforming files is not supported in browsers"));
|
||||||
|
}
|
91
node_modules/@babel/core/lib/transform-file.js
generated
vendored
Normal file
91
node_modules/@babel/core/lib/transform-file.js
generated
vendored
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.transformFileSync = transformFileSync;
|
||||||
|
exports.transformFileAsync = transformFileAsync;
|
||||||
|
exports.transformFile = void 0;
|
||||||
|
|
||||||
|
function _fs() {
|
||||||
|
const data = _interopRequireDefault(require("fs"));
|
||||||
|
|
||||||
|
_fs = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
var _config = _interopRequireDefault(require("./config"));
|
||||||
|
|
||||||
|
var _transformation = require("./transformation");
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
({});
|
||||||
|
|
||||||
|
const transformFile = function transformFile(filename, opts, callback) {
|
||||||
|
let options;
|
||||||
|
|
||||||
|
if (typeof opts === "function") {
|
||||||
|
callback = opts;
|
||||||
|
opts = undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (opts == null) {
|
||||||
|
options = {
|
||||||
|
filename
|
||||||
|
};
|
||||||
|
} else if (opts && typeof opts === "object") {
|
||||||
|
options = Object.assign({}, opts, {
|
||||||
|
filename
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
process.nextTick(() => {
|
||||||
|
let cfg;
|
||||||
|
|
||||||
|
try {
|
||||||
|
cfg = (0, _config.default)(options);
|
||||||
|
if (cfg === null) return callback(null, null);
|
||||||
|
} catch (err) {
|
||||||
|
return callback(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
const config = cfg;
|
||||||
|
|
||||||
|
_fs().default.readFile(filename, "utf8", function (err, code) {
|
||||||
|
if (err) return callback(err, null);
|
||||||
|
(0, _transformation.runAsync)(config, code, null, callback);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.transformFile = transformFile;
|
||||||
|
|
||||||
|
function transformFileSync(filename, opts) {
|
||||||
|
let options;
|
||||||
|
|
||||||
|
if (opts == null) {
|
||||||
|
options = {
|
||||||
|
filename
|
||||||
|
};
|
||||||
|
} else if (opts && typeof opts === "object") {
|
||||||
|
options = Object.assign({}, opts, {
|
||||||
|
filename
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const config = (0, _config.default)(options);
|
||||||
|
if (config === null) return null;
|
||||||
|
return (0, _transformation.runSync)(config, _fs().default.readFileSync(filename, "utf8"));
|
||||||
|
}
|
||||||
|
|
||||||
|
function transformFileAsync(filename, opts) {
|
||||||
|
return new Promise((res, rej) => {
|
||||||
|
transformFile(filename, opts, (err, result) => {
|
||||||
|
if (err == null) res(result);else rej(err);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
52
node_modules/@babel/core/lib/transform.js
generated
vendored
Normal file
52
node_modules/@babel/core/lib/transform.js
generated
vendored
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.transformSync = transformSync;
|
||||||
|
exports.transformAsync = transformAsync;
|
||||||
|
exports.transform = void 0;
|
||||||
|
|
||||||
|
var _config = _interopRequireDefault(require("./config"));
|
||||||
|
|
||||||
|
var _transformation = require("./transformation");
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
const transform = function transform(code, opts, callback) {
|
||||||
|
if (typeof opts === "function") {
|
||||||
|
callback = opts;
|
||||||
|
opts = undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (callback === undefined) return transformSync(code, opts);
|
||||||
|
const cb = callback;
|
||||||
|
process.nextTick(() => {
|
||||||
|
let cfg;
|
||||||
|
|
||||||
|
try {
|
||||||
|
cfg = (0, _config.default)(opts);
|
||||||
|
if (cfg === null) return cb(null, null);
|
||||||
|
} catch (err) {
|
||||||
|
return cb(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
(0, _transformation.runAsync)(cfg, code, null, cb);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.transform = transform;
|
||||||
|
|
||||||
|
function transformSync(code, opts) {
|
||||||
|
const config = (0, _config.default)(opts);
|
||||||
|
if (config === null) return null;
|
||||||
|
return (0, _transformation.runSync)(config, code);
|
||||||
|
}
|
||||||
|
|
||||||
|
function transformAsync(code, opts) {
|
||||||
|
return new Promise((res, rej) => {
|
||||||
|
transform(code, opts, (err, result) => {
|
||||||
|
if (err == null) res(result);else rej(err);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
67
node_modules/@babel/core/lib/transformation/block-hoist-plugin.js
generated
vendored
Normal file
67
node_modules/@babel/core/lib/transformation/block-hoist-plugin.js
generated
vendored
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = loadBlockHoistPlugin;
|
||||||
|
|
||||||
|
function _sortBy() {
|
||||||
|
const data = _interopRequireDefault(require("lodash/sortBy"));
|
||||||
|
|
||||||
|
_sortBy = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
var _config = _interopRequireDefault(require("../config"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
let LOADED_PLUGIN;
|
||||||
|
|
||||||
|
function loadBlockHoistPlugin() {
|
||||||
|
if (!LOADED_PLUGIN) {
|
||||||
|
const config = (0, _config.default)({
|
||||||
|
babelrc: false,
|
||||||
|
configFile: false,
|
||||||
|
plugins: [blockHoistPlugin]
|
||||||
|
});
|
||||||
|
LOADED_PLUGIN = config ? config.passes[0][0] : undefined;
|
||||||
|
if (!LOADED_PLUGIN) throw new Error("Assertion failure");
|
||||||
|
}
|
||||||
|
|
||||||
|
return LOADED_PLUGIN;
|
||||||
|
}
|
||||||
|
|
||||||
|
const blockHoistPlugin = {
|
||||||
|
name: "internal.blockHoist",
|
||||||
|
visitor: {
|
||||||
|
Block: {
|
||||||
|
exit({
|
||||||
|
node
|
||||||
|
}) {
|
||||||
|
let hasChange = false;
|
||||||
|
|
||||||
|
for (let i = 0; i < node.body.length; i++) {
|
||||||
|
const bodyNode = node.body[i];
|
||||||
|
|
||||||
|
if (bodyNode && bodyNode._blockHoist != null) {
|
||||||
|
hasChange = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!hasChange) return;
|
||||||
|
node.body = (0, _sortBy().default)(node.body, function (bodyNode) {
|
||||||
|
let priority = bodyNode && bodyNode._blockHoist;
|
||||||
|
if (priority == null) priority = 1;
|
||||||
|
if (priority === true) priority = 2;
|
||||||
|
return -1 * priority;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
269
node_modules/@babel/core/lib/transformation/file/file.js
generated
vendored
Normal file
269
node_modules/@babel/core/lib/transformation/file/file.js
generated
vendored
Normal file
@ -0,0 +1,269 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
function helpers() {
|
||||||
|
const data = _interopRequireWildcard(require("@babel/helpers"));
|
||||||
|
|
||||||
|
helpers = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _traverse() {
|
||||||
|
const data = _interopRequireWildcard(require("@babel/traverse"));
|
||||||
|
|
||||||
|
_traverse = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _codeFrame() {
|
||||||
|
const data = require("@babel/code-frame");
|
||||||
|
|
||||||
|
_codeFrame = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function t() {
|
||||||
|
const data = _interopRequireWildcard(require("@babel/types"));
|
||||||
|
|
||||||
|
t = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _semver() {
|
||||||
|
const data = _interopRequireDefault(require("semver"));
|
||||||
|
|
||||||
|
_semver = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
||||||
|
|
||||||
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; if (obj != null) { var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||||||
|
|
||||||
|
const errorVisitor = {
|
||||||
|
enter(path, state) {
|
||||||
|
const loc = path.node.loc;
|
||||||
|
|
||||||
|
if (loc) {
|
||||||
|
state.loc = loc;
|
||||||
|
path.stop();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
class File {
|
||||||
|
constructor(options, {
|
||||||
|
code,
|
||||||
|
ast,
|
||||||
|
inputMap
|
||||||
|
}) {
|
||||||
|
this._map = new Map();
|
||||||
|
this.declarations = {};
|
||||||
|
this.path = null;
|
||||||
|
this.ast = {};
|
||||||
|
this.metadata = {};
|
||||||
|
this.code = "";
|
||||||
|
this.inputMap = null;
|
||||||
|
this.hub = {
|
||||||
|
file: this,
|
||||||
|
getCode: () => this.code,
|
||||||
|
getScope: () => this.scope,
|
||||||
|
addHelper: this.addHelper.bind(this),
|
||||||
|
buildError: this.buildCodeFrameError.bind(this)
|
||||||
|
};
|
||||||
|
this.opts = options;
|
||||||
|
this.code = code;
|
||||||
|
this.ast = ast;
|
||||||
|
this.inputMap = inputMap;
|
||||||
|
this.path = _traverse().NodePath.get({
|
||||||
|
hub: this.hub,
|
||||||
|
parentPath: null,
|
||||||
|
parent: this.ast,
|
||||||
|
container: this.ast,
|
||||||
|
key: "program"
|
||||||
|
}).setContext();
|
||||||
|
this.scope = this.path.scope;
|
||||||
|
}
|
||||||
|
|
||||||
|
get shebang() {
|
||||||
|
const {
|
||||||
|
interpreter
|
||||||
|
} = this.path.node;
|
||||||
|
return interpreter ? interpreter.value : "";
|
||||||
|
}
|
||||||
|
|
||||||
|
set shebang(value) {
|
||||||
|
if (value) {
|
||||||
|
this.path.get("interpreter").replaceWith(t().interpreterDirective(value));
|
||||||
|
} else {
|
||||||
|
this.path.get("interpreter").remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
set(key, val) {
|
||||||
|
if (key === "helpersNamespace") {
|
||||||
|
throw new Error("Babel 7.0.0-beta.56 has dropped support for the 'helpersNamespace' utility." + "If you are using @babel/plugin-external-helpers you will need to use a newer " + "version than the one you currently have installed. " + "If you have your own implementation, you'll want to explore using 'helperGenerator' " + "alongside 'file.availableHelper()'.");
|
||||||
|
}
|
||||||
|
|
||||||
|
this._map.set(key, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
get(key) {
|
||||||
|
return this._map.get(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
has(key) {
|
||||||
|
return this._map.has(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
getModuleName() {
|
||||||
|
const {
|
||||||
|
filename,
|
||||||
|
filenameRelative = filename,
|
||||||
|
moduleId,
|
||||||
|
moduleIds = !!moduleId,
|
||||||
|
getModuleId,
|
||||||
|
sourceRoot: sourceRootTmp,
|
||||||
|
moduleRoot = sourceRootTmp,
|
||||||
|
sourceRoot = moduleRoot
|
||||||
|
} = this.opts;
|
||||||
|
if (!moduleIds) return null;
|
||||||
|
|
||||||
|
if (moduleId != null && !getModuleId) {
|
||||||
|
return moduleId;
|
||||||
|
}
|
||||||
|
|
||||||
|
let moduleName = moduleRoot != null ? moduleRoot + "/" : "";
|
||||||
|
|
||||||
|
if (filenameRelative) {
|
||||||
|
const sourceRootReplacer = sourceRoot != null ? new RegExp("^" + sourceRoot + "/?") : "";
|
||||||
|
moduleName += filenameRelative.replace(sourceRootReplacer, "").replace(/\.(\w*?)$/, "");
|
||||||
|
}
|
||||||
|
|
||||||
|
moduleName = moduleName.replace(/\\/g, "/");
|
||||||
|
|
||||||
|
if (getModuleId) {
|
||||||
|
return getModuleId(moduleName) || moduleName;
|
||||||
|
} else {
|
||||||
|
return moduleName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
addImport() {
|
||||||
|
throw new Error("This API has been removed. If you're looking for this " + "functionality in Babel 7, you should import the " + "'@babel/helper-module-imports' module and use the functions exposed " + " from that module, such as 'addNamed' or 'addDefault'.");
|
||||||
|
}
|
||||||
|
|
||||||
|
availableHelper(name, versionRange) {
|
||||||
|
let minVersion;
|
||||||
|
|
||||||
|
try {
|
||||||
|
minVersion = helpers().minVersion(name);
|
||||||
|
} catch (err) {
|
||||||
|
if (err.code !== "BABEL_HELPER_UNKNOWN") throw err;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof versionRange !== "string") return true;
|
||||||
|
if (_semver().default.valid(versionRange)) versionRange = `^${versionRange}`;
|
||||||
|
return !_semver().default.intersects(`<${minVersion}`, versionRange) && !_semver().default.intersects(`>=8.0.0`, versionRange);
|
||||||
|
}
|
||||||
|
|
||||||
|
addHelper(name) {
|
||||||
|
const declar = this.declarations[name];
|
||||||
|
if (declar) return t().cloneNode(declar);
|
||||||
|
const generator = this.get("helperGenerator");
|
||||||
|
|
||||||
|
if (generator) {
|
||||||
|
const res = generator(name);
|
||||||
|
if (res) return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
helpers().ensure(name);
|
||||||
|
const uid = this.declarations[name] = this.scope.generateUidIdentifier(name);
|
||||||
|
const dependencies = {};
|
||||||
|
|
||||||
|
for (const dep of helpers().getDependencies(name)) {
|
||||||
|
dependencies[dep] = this.addHelper(dep);
|
||||||
|
}
|
||||||
|
|
||||||
|
const {
|
||||||
|
nodes,
|
||||||
|
globals
|
||||||
|
} = helpers().get(name, dep => dependencies[dep], uid, Object.keys(this.scope.getAllBindings()));
|
||||||
|
globals.forEach(name => {
|
||||||
|
if (this.path.scope.hasBinding(name, true)) {
|
||||||
|
this.path.scope.rename(name);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
nodes.forEach(node => {
|
||||||
|
node._compact = true;
|
||||||
|
});
|
||||||
|
this.path.unshiftContainer("body", nodes);
|
||||||
|
this.path.get("body").forEach(path => {
|
||||||
|
if (nodes.indexOf(path.node) === -1) return;
|
||||||
|
if (path.isVariableDeclaration()) this.scope.registerDeclaration(path);
|
||||||
|
});
|
||||||
|
return uid;
|
||||||
|
}
|
||||||
|
|
||||||
|
addTemplateObject() {
|
||||||
|
throw new Error("This function has been moved into the template literal transform itself.");
|
||||||
|
}
|
||||||
|
|
||||||
|
buildCodeFrameError(node, msg, Error = SyntaxError) {
|
||||||
|
let loc = node && (node.loc || node._loc);
|
||||||
|
msg = `${this.opts.filename}: ${msg}`;
|
||||||
|
|
||||||
|
if (!loc && node) {
|
||||||
|
const state = {
|
||||||
|
loc: null
|
||||||
|
};
|
||||||
|
(0, _traverse().default)(node, errorVisitor, this.scope, state);
|
||||||
|
loc = state.loc;
|
||||||
|
let txt = "This is an error on an internal node. Probably an internal error.";
|
||||||
|
if (loc) txt += " Location has been estimated.";
|
||||||
|
msg += ` (${txt})`;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (loc) {
|
||||||
|
const {
|
||||||
|
highlightCode = true
|
||||||
|
} = this.opts;
|
||||||
|
msg += "\n" + (0, _codeFrame().codeFrameColumns)(this.code, {
|
||||||
|
start: {
|
||||||
|
line: loc.start.line,
|
||||||
|
column: loc.start.column + 1
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
highlightCode
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Error(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.default = File;
|
89
node_modules/@babel/core/lib/transformation/file/generate.js
generated
vendored
Normal file
89
node_modules/@babel/core/lib/transformation/file/generate.js
generated
vendored
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = generateCode;
|
||||||
|
|
||||||
|
function _convertSourceMap() {
|
||||||
|
const data = _interopRequireDefault(require("convert-source-map"));
|
||||||
|
|
||||||
|
_convertSourceMap = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _generator() {
|
||||||
|
const data = _interopRequireDefault(require("@babel/generator"));
|
||||||
|
|
||||||
|
_generator = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
var _mergeMap = _interopRequireDefault(require("./merge-map"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
function generateCode(pluginPasses, file) {
|
||||||
|
const {
|
||||||
|
opts,
|
||||||
|
ast,
|
||||||
|
code,
|
||||||
|
inputMap
|
||||||
|
} = file;
|
||||||
|
const results = [];
|
||||||
|
|
||||||
|
for (const plugins of pluginPasses) {
|
||||||
|
for (const plugin of plugins) {
|
||||||
|
const {
|
||||||
|
generatorOverride
|
||||||
|
} = plugin;
|
||||||
|
|
||||||
|
if (generatorOverride) {
|
||||||
|
const result = generatorOverride(ast, opts.generatorOpts, code, _generator().default);
|
||||||
|
if (result !== undefined) results.push(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let result;
|
||||||
|
|
||||||
|
if (results.length === 0) {
|
||||||
|
result = (0, _generator().default)(ast, opts.generatorOpts, code);
|
||||||
|
} else if (results.length === 1) {
|
||||||
|
result = results[0];
|
||||||
|
|
||||||
|
if (typeof result.then === "function") {
|
||||||
|
throw new Error(`You appear to be using an async parser plugin, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, ` + `you may need to upgrade your @babel/core version.`);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new Error("More than one plugin attempted to override codegen.");
|
||||||
|
}
|
||||||
|
|
||||||
|
let {
|
||||||
|
code: outputCode,
|
||||||
|
map: outputMap
|
||||||
|
} = result;
|
||||||
|
|
||||||
|
if (outputMap && inputMap) {
|
||||||
|
outputMap = (0, _mergeMap.default)(inputMap.toObject(), outputMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (opts.sourceMaps === "inline" || opts.sourceMaps === "both") {
|
||||||
|
outputCode += "\n" + _convertSourceMap().default.fromObject(outputMap).toComment();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (opts.sourceMaps === "inline") {
|
||||||
|
outputMap = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
outputCode,
|
||||||
|
outputMap
|
||||||
|
};
|
||||||
|
}
|
255
node_modules/@babel/core/lib/transformation/file/merge-map.js
generated
vendored
Normal file
255
node_modules/@babel/core/lib/transformation/file/merge-map.js
generated
vendored
Normal file
@ -0,0 +1,255 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = mergeSourceMap;
|
||||||
|
|
||||||
|
function _sourceMap() {
|
||||||
|
const data = _interopRequireDefault(require("source-map"));
|
||||||
|
|
||||||
|
_sourceMap = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
function mergeSourceMap(inputMap, map) {
|
||||||
|
const input = buildMappingData(inputMap);
|
||||||
|
const output = buildMappingData(map);
|
||||||
|
const mergedGenerator = new (_sourceMap().default.SourceMapGenerator)();
|
||||||
|
|
||||||
|
for (const _ref of input.sources) {
|
||||||
|
const {
|
||||||
|
source
|
||||||
|
} = _ref;
|
||||||
|
|
||||||
|
if (typeof source.content === "string") {
|
||||||
|
mergedGenerator.setSourceContent(source.path, source.content);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (output.sources.length === 1) {
|
||||||
|
const defaultSource = output.sources[0];
|
||||||
|
const insertedMappings = new Map();
|
||||||
|
eachInputGeneratedRange(input, (generated, original, source) => {
|
||||||
|
eachOverlappingGeneratedOutputRange(defaultSource, generated, item => {
|
||||||
|
const key = makeMappingKey(item);
|
||||||
|
if (insertedMappings.has(key)) return;
|
||||||
|
insertedMappings.set(key, item);
|
||||||
|
mergedGenerator.addMapping({
|
||||||
|
source: source.path,
|
||||||
|
original: {
|
||||||
|
line: original.line,
|
||||||
|
column: original.columnStart
|
||||||
|
},
|
||||||
|
generated: {
|
||||||
|
line: item.line,
|
||||||
|
column: item.columnStart
|
||||||
|
},
|
||||||
|
name: original.name
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
for (const item of insertedMappings.values()) {
|
||||||
|
if (item.columnEnd === Infinity) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
const clearItem = {
|
||||||
|
line: item.line,
|
||||||
|
columnStart: item.columnEnd
|
||||||
|
};
|
||||||
|
const key = makeMappingKey(clearItem);
|
||||||
|
|
||||||
|
if (insertedMappings.has(key)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
mergedGenerator.addMapping({
|
||||||
|
generated: {
|
||||||
|
line: clearItem.line,
|
||||||
|
column: clearItem.columnStart
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const result = mergedGenerator.toJSON();
|
||||||
|
|
||||||
|
if (typeof input.sourceRoot === "string") {
|
||||||
|
result.sourceRoot = input.sourceRoot;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function makeMappingKey(item) {
|
||||||
|
return `${item.line}/${item.columnStart}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
function eachOverlappingGeneratedOutputRange(outputFile, inputGeneratedRange, callback) {
|
||||||
|
const overlappingOriginal = filterApplicableOriginalRanges(outputFile, inputGeneratedRange);
|
||||||
|
|
||||||
|
for (const _ref2 of overlappingOriginal) {
|
||||||
|
const {
|
||||||
|
generated
|
||||||
|
} = _ref2;
|
||||||
|
|
||||||
|
for (const item of generated) {
|
||||||
|
callback(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function filterApplicableOriginalRanges({
|
||||||
|
mappings
|
||||||
|
}, {
|
||||||
|
line,
|
||||||
|
columnStart,
|
||||||
|
columnEnd
|
||||||
|
}) {
|
||||||
|
return filterSortedArray(mappings, ({
|
||||||
|
original: outOriginal
|
||||||
|
}) => {
|
||||||
|
if (line > outOriginal.line) return -1;
|
||||||
|
if (line < outOriginal.line) return 1;
|
||||||
|
if (columnStart >= outOriginal.columnEnd) return -1;
|
||||||
|
if (columnEnd <= outOriginal.columnStart) return 1;
|
||||||
|
return 0;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function eachInputGeneratedRange(map, callback) {
|
||||||
|
for (const _ref3 of map.sources) {
|
||||||
|
const {
|
||||||
|
source,
|
||||||
|
mappings
|
||||||
|
} = _ref3;
|
||||||
|
|
||||||
|
for (const _ref4 of mappings) {
|
||||||
|
const {
|
||||||
|
original,
|
||||||
|
generated
|
||||||
|
} = _ref4;
|
||||||
|
|
||||||
|
for (const item of generated) {
|
||||||
|
callback(item, original, source);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildMappingData(map) {
|
||||||
|
const consumer = new (_sourceMap().default.SourceMapConsumer)(Object.assign({}, map, {
|
||||||
|
sourceRoot: null
|
||||||
|
}));
|
||||||
|
const sources = new Map();
|
||||||
|
const mappings = new Map();
|
||||||
|
let last = null;
|
||||||
|
consumer.computeColumnSpans();
|
||||||
|
consumer.eachMapping(m => {
|
||||||
|
if (m.originalLine === null) return;
|
||||||
|
let source = sources.get(m.source);
|
||||||
|
|
||||||
|
if (!source) {
|
||||||
|
source = {
|
||||||
|
path: m.source,
|
||||||
|
content: consumer.sourceContentFor(m.source, true)
|
||||||
|
};
|
||||||
|
sources.set(m.source, source);
|
||||||
|
}
|
||||||
|
|
||||||
|
let sourceData = mappings.get(source);
|
||||||
|
|
||||||
|
if (!sourceData) {
|
||||||
|
sourceData = {
|
||||||
|
source,
|
||||||
|
mappings: []
|
||||||
|
};
|
||||||
|
mappings.set(source, sourceData);
|
||||||
|
}
|
||||||
|
|
||||||
|
const obj = {
|
||||||
|
line: m.originalLine,
|
||||||
|
columnStart: m.originalColumn,
|
||||||
|
columnEnd: Infinity,
|
||||||
|
name: m.name
|
||||||
|
};
|
||||||
|
|
||||||
|
if (last && last.source === source && last.mapping.line === m.originalLine) {
|
||||||
|
last.mapping.columnEnd = m.originalColumn;
|
||||||
|
}
|
||||||
|
|
||||||
|
last = {
|
||||||
|
source,
|
||||||
|
mapping: obj
|
||||||
|
};
|
||||||
|
sourceData.mappings.push({
|
||||||
|
original: obj,
|
||||||
|
generated: consumer.allGeneratedPositionsFor({
|
||||||
|
source: m.source,
|
||||||
|
line: m.originalLine,
|
||||||
|
column: m.originalColumn
|
||||||
|
}).map(item => ({
|
||||||
|
line: item.line,
|
||||||
|
columnStart: item.column,
|
||||||
|
columnEnd: item.lastColumn + 1
|
||||||
|
}))
|
||||||
|
});
|
||||||
|
}, null, _sourceMap().default.SourceMapConsumer.ORIGINAL_ORDER);
|
||||||
|
return {
|
||||||
|
file: map.file,
|
||||||
|
sourceRoot: map.sourceRoot,
|
||||||
|
sources: Array.from(mappings.values())
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function findInsertionLocation(array, callback) {
|
||||||
|
let left = 0;
|
||||||
|
let right = array.length;
|
||||||
|
|
||||||
|
while (left < right) {
|
||||||
|
const mid = Math.floor((left + right) / 2);
|
||||||
|
const item = array[mid];
|
||||||
|
const result = callback(item);
|
||||||
|
|
||||||
|
if (result === 0) {
|
||||||
|
left = mid;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (result >= 0) {
|
||||||
|
right = mid;
|
||||||
|
} else {
|
||||||
|
left = mid + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let i = left;
|
||||||
|
|
||||||
|
if (i < array.length) {
|
||||||
|
while (i >= 0 && callback(array[i]) >= 0) {
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
|
||||||
|
return i + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
|
function filterSortedArray(array, callback) {
|
||||||
|
const start = findInsertionLocation(array, callback);
|
||||||
|
const results = [];
|
||||||
|
|
||||||
|
for (let i = start; i < array.length && callback(array[i]) === 0; i++) {
|
||||||
|
results.push(array[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return results;
|
||||||
|
}
|
106
node_modules/@babel/core/lib/transformation/index.js
generated
vendored
Normal file
106
node_modules/@babel/core/lib/transformation/index.js
generated
vendored
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.runAsync = runAsync;
|
||||||
|
exports.runSync = runSync;
|
||||||
|
|
||||||
|
function _traverse() {
|
||||||
|
const data = _interopRequireDefault(require("@babel/traverse"));
|
||||||
|
|
||||||
|
_traverse = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
var _pluginPass = _interopRequireDefault(require("./plugin-pass"));
|
||||||
|
|
||||||
|
var _blockHoistPlugin = _interopRequireDefault(require("./block-hoist-plugin"));
|
||||||
|
|
||||||
|
var _normalizeOpts = _interopRequireDefault(require("./normalize-opts"));
|
||||||
|
|
||||||
|
var _normalizeFile = _interopRequireDefault(require("./normalize-file"));
|
||||||
|
|
||||||
|
var _generate = _interopRequireDefault(require("./file/generate"));
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
function runAsync(config, code, ast, callback) {
|
||||||
|
let result;
|
||||||
|
|
||||||
|
try {
|
||||||
|
result = runSync(config, code, ast);
|
||||||
|
} catch (err) {
|
||||||
|
return callback(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
return callback(null, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
function runSync(config, code, ast) {
|
||||||
|
const file = (0, _normalizeFile.default)(config.passes, (0, _normalizeOpts.default)(config), code, ast);
|
||||||
|
transformFile(file, config.passes);
|
||||||
|
const opts = file.opts;
|
||||||
|
const {
|
||||||
|
outputCode,
|
||||||
|
outputMap
|
||||||
|
} = opts.code !== false ? (0, _generate.default)(config.passes, file) : {};
|
||||||
|
return {
|
||||||
|
metadata: file.metadata,
|
||||||
|
options: opts,
|
||||||
|
ast: opts.ast === true ? file.ast : null,
|
||||||
|
code: outputCode === undefined ? null : outputCode,
|
||||||
|
map: outputMap === undefined ? null : outputMap,
|
||||||
|
sourceType: file.ast.program.sourceType
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function transformFile(file, pluginPasses) {
|
||||||
|
for (const pluginPairs of pluginPasses) {
|
||||||
|
const passPairs = [];
|
||||||
|
const passes = [];
|
||||||
|
const visitors = [];
|
||||||
|
|
||||||
|
for (const plugin of pluginPairs.concat([(0, _blockHoistPlugin.default)()])) {
|
||||||
|
const pass = new _pluginPass.default(file, plugin.key, plugin.options);
|
||||||
|
passPairs.push([plugin, pass]);
|
||||||
|
passes.push(pass);
|
||||||
|
visitors.push(plugin.visitor);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const [plugin, pass] of passPairs) {
|
||||||
|
const fn = plugin.pre;
|
||||||
|
|
||||||
|
if (fn) {
|
||||||
|
const result = fn.call(pass, file);
|
||||||
|
|
||||||
|
if (isThenable(result)) {
|
||||||
|
throw new Error(`You appear to be using an plugin with an async .pre, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, you may need to upgrade ` + `your @babel/core version.`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const visitor = _traverse().default.visitors.merge(visitors, passes, file.opts.wrapPluginVisitorMethod);
|
||||||
|
|
||||||
|
(0, _traverse().default)(file.ast, visitor, file.scope);
|
||||||
|
|
||||||
|
for (const [plugin, pass] of passPairs) {
|
||||||
|
const fn = plugin.post;
|
||||||
|
|
||||||
|
if (fn) {
|
||||||
|
const result = fn.call(pass, file);
|
||||||
|
|
||||||
|
if (isThenable(result)) {
|
||||||
|
throw new Error(`You appear to be using an plugin with an async .post, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, you may need to upgrade ` + `your @babel/core version.`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function isThenable(val) {
|
||||||
|
return !!val && (typeof val === "object" || typeof val === "function") && !!val.then && typeof val.then === "function";
|
||||||
|
}
|
239
node_modules/@babel/core/lib/transformation/normalize-file.js
generated
vendored
Normal file
239
node_modules/@babel/core/lib/transformation/normalize-file.js
generated
vendored
Normal file
@ -0,0 +1,239 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = normalizeFile;
|
||||||
|
|
||||||
|
function _path() {
|
||||||
|
const data = _interopRequireDefault(require("path"));
|
||||||
|
|
||||||
|
_path = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _debug() {
|
||||||
|
const data = _interopRequireDefault(require("debug"));
|
||||||
|
|
||||||
|
_debug = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _cloneDeep() {
|
||||||
|
const data = _interopRequireDefault(require("lodash/cloneDeep"));
|
||||||
|
|
||||||
|
_cloneDeep = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function t() {
|
||||||
|
const data = _interopRequireWildcard(require("@babel/types"));
|
||||||
|
|
||||||
|
t = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _convertSourceMap() {
|
||||||
|
const data = _interopRequireDefault(require("convert-source-map"));
|
||||||
|
|
||||||
|
_convertSourceMap = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _parser() {
|
||||||
|
const data = require("@babel/parser");
|
||||||
|
|
||||||
|
_parser = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _codeFrame() {
|
||||||
|
const data = require("@babel/code-frame");
|
||||||
|
|
||||||
|
_codeFrame = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
var _file = _interopRequireDefault(require("./file/file"));
|
||||||
|
|
||||||
|
var _missingPluginHelper = _interopRequireDefault(require("./util/missing-plugin-helper"));
|
||||||
|
|
||||||
|
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
||||||
|
|
||||||
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; if (obj != null) { var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
const debug = (0, _debug().default)("babel:transform:file");
|
||||||
|
|
||||||
|
function normalizeFile(pluginPasses, options, code, ast) {
|
||||||
|
code = `${code || ""}`;
|
||||||
|
|
||||||
|
if (ast) {
|
||||||
|
if (ast.type === "Program") {
|
||||||
|
ast = t().file(ast, [], []);
|
||||||
|
} else if (ast.type !== "File") {
|
||||||
|
throw new Error("AST root must be a Program or File node");
|
||||||
|
}
|
||||||
|
|
||||||
|
ast = (0, _cloneDeep().default)(ast);
|
||||||
|
} else {
|
||||||
|
ast = parser(pluginPasses, options, code);
|
||||||
|
}
|
||||||
|
|
||||||
|
let inputMap = null;
|
||||||
|
|
||||||
|
if (options.inputSourceMap !== false) {
|
||||||
|
if (typeof options.inputSourceMap === "object") {
|
||||||
|
inputMap = _convertSourceMap().default.fromObject(options.inputSourceMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!inputMap) {
|
||||||
|
const lastComment = extractComments(INLINE_SOURCEMAP_REGEX, ast);
|
||||||
|
|
||||||
|
if (lastComment) {
|
||||||
|
try {
|
||||||
|
inputMap = _convertSourceMap().default.fromComment(lastComment);
|
||||||
|
} catch (err) {
|
||||||
|
debug("discarding unknown inline input sourcemap", err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!inputMap) {
|
||||||
|
const lastComment = extractComments(EXTERNAL_SOURCEMAP_REGEX, ast);
|
||||||
|
|
||||||
|
if (typeof options.filename === "string" && lastComment) {
|
||||||
|
try {
|
||||||
|
inputMap = _convertSourceMap().default.fromMapFileComment(lastComment, _path().default.dirname(options.filename));
|
||||||
|
} catch (err) {
|
||||||
|
debug("discarding unknown file input sourcemap", err);
|
||||||
|
}
|
||||||
|
} else if (lastComment) {
|
||||||
|
debug("discarding un-loadable file input sourcemap");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return new _file.default(options, {
|
||||||
|
code,
|
||||||
|
ast,
|
||||||
|
inputMap
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function parser(pluginPasses, {
|
||||||
|
parserOpts,
|
||||||
|
highlightCode = true,
|
||||||
|
filename = "unknown"
|
||||||
|
}, code) {
|
||||||
|
try {
|
||||||
|
const results = [];
|
||||||
|
|
||||||
|
for (const plugins of pluginPasses) {
|
||||||
|
for (const plugin of plugins) {
|
||||||
|
const {
|
||||||
|
parserOverride
|
||||||
|
} = plugin;
|
||||||
|
|
||||||
|
if (parserOverride) {
|
||||||
|
const ast = parserOverride(code, parserOpts, _parser().parse);
|
||||||
|
if (ast !== undefined) results.push(ast);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (results.length === 0) {
|
||||||
|
return (0, _parser().parse)(code, parserOpts);
|
||||||
|
} else if (results.length === 1) {
|
||||||
|
if (typeof results[0].then === "function") {
|
||||||
|
throw new Error(`You appear to be using an async codegen plugin, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, you may need to upgrade ` + `your @babel/core version.`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return results[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new Error("More than one plugin attempted to override parsing.");
|
||||||
|
} catch (err) {
|
||||||
|
if (err.code === "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED") {
|
||||||
|
err.message += "\nConsider renaming the file to '.mjs', or setting sourceType:module " + "or sourceType:unambiguous in your Babel config for this file.";
|
||||||
|
}
|
||||||
|
|
||||||
|
const {
|
||||||
|
loc,
|
||||||
|
missingPlugin
|
||||||
|
} = err;
|
||||||
|
|
||||||
|
if (loc) {
|
||||||
|
const codeFrame = (0, _codeFrame().codeFrameColumns)(code, {
|
||||||
|
start: {
|
||||||
|
line: loc.line,
|
||||||
|
column: loc.column + 1
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
highlightCode
|
||||||
|
});
|
||||||
|
|
||||||
|
if (missingPlugin) {
|
||||||
|
err.message = `${filename}: ` + (0, _missingPluginHelper.default)(missingPlugin[0], loc, codeFrame);
|
||||||
|
} else {
|
||||||
|
err.message = `${filename}: ${err.message}\n\n` + codeFrame;
|
||||||
|
}
|
||||||
|
|
||||||
|
err.code = "BABEL_PARSE_ERROR";
|
||||||
|
}
|
||||||
|
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const INLINE_SOURCEMAP_REGEX = /^[@#]\s+sourceMappingURL=data:(?:application|text)\/json;(?:charset[:=]\S+?;)?base64,(?:.*)$/;
|
||||||
|
const EXTERNAL_SOURCEMAP_REGEX = /^[@#][ \t]+sourceMappingURL=([^\s'"`]+?)[ \t]*$/;
|
||||||
|
|
||||||
|
function extractCommentsFromList(regex, comments, lastComment) {
|
||||||
|
if (comments) {
|
||||||
|
comments = comments.filter(({
|
||||||
|
value
|
||||||
|
}) => {
|
||||||
|
if (regex.test(value)) {
|
||||||
|
lastComment = value;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return [comments, lastComment];
|
||||||
|
}
|
||||||
|
|
||||||
|
function extractComments(regex, ast) {
|
||||||
|
let lastComment = null;
|
||||||
|
t().traverseFast(ast, node => {
|
||||||
|
[node.leadingComments, lastComment] = extractCommentsFromList(regex, node.leadingComments, lastComment);
|
||||||
|
[node.innerComments, lastComment] = extractCommentsFromList(regex, node.innerComments, lastComment);
|
||||||
|
[node.trailingComments, lastComment] = extractCommentsFromList(regex, node.trailingComments, lastComment);
|
||||||
|
});
|
||||||
|
return lastComment;
|
||||||
|
}
|
65
node_modules/@babel/core/lib/transformation/normalize-opts.js
generated
vendored
Normal file
65
node_modules/@babel/core/lib/transformation/normalize-opts.js
generated
vendored
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = normalizeOptions;
|
||||||
|
|
||||||
|
function _path() {
|
||||||
|
const data = _interopRequireDefault(require("path"));
|
||||||
|
|
||||||
|
_path = function () {
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||||
|
|
||||||
|
function normalizeOptions(config) {
|
||||||
|
const {
|
||||||
|
filename,
|
||||||
|
cwd,
|
||||||
|
filenameRelative = typeof filename === "string" ? _path().default.relative(cwd, filename) : "unknown",
|
||||||
|
sourceType = "module",
|
||||||
|
inputSourceMap,
|
||||||
|
sourceMaps = !!inputSourceMap,
|
||||||
|
moduleRoot,
|
||||||
|
sourceRoot = moduleRoot,
|
||||||
|
sourceFileName = _path().default.basename(filenameRelative),
|
||||||
|
comments = true,
|
||||||
|
compact = "auto"
|
||||||
|
} = config.options;
|
||||||
|
const opts = config.options;
|
||||||
|
const options = Object.assign({}, opts, {
|
||||||
|
parserOpts: Object.assign({
|
||||||
|
sourceType: _path().default.extname(filenameRelative) === ".mjs" ? "module" : sourceType,
|
||||||
|
sourceFileName: filename,
|
||||||
|
plugins: []
|
||||||
|
}, opts.parserOpts),
|
||||||
|
generatorOpts: Object.assign({
|
||||||
|
filename,
|
||||||
|
auxiliaryCommentBefore: opts.auxiliaryCommentBefore,
|
||||||
|
auxiliaryCommentAfter: opts.auxiliaryCommentAfter,
|
||||||
|
retainLines: opts.retainLines,
|
||||||
|
comments,
|
||||||
|
shouldPrintComment: opts.shouldPrintComment,
|
||||||
|
compact,
|
||||||
|
minified: opts.minified,
|
||||||
|
sourceMaps,
|
||||||
|
sourceRoot,
|
||||||
|
sourceFileName
|
||||||
|
}, opts.generatorOpts)
|
||||||
|
});
|
||||||
|
|
||||||
|
for (const plugins of config.passes) {
|
||||||
|
for (const plugin of plugins) {
|
||||||
|
if (plugin.manipulateOptions) {
|
||||||
|
plugin.manipulateOptions(options, options.parserOpts);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return options;
|
||||||
|
}
|
48
node_modules/@babel/core/lib/transformation/plugin-pass.js
generated
vendored
Normal file
48
node_modules/@babel/core/lib/transformation/plugin-pass.js
generated
vendored
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = void 0;
|
||||||
|
|
||||||
|
class PluginPass {
|
||||||
|
constructor(file, key, options) {
|
||||||
|
this._map = new Map();
|
||||||
|
this.key = key;
|
||||||
|
this.file = file;
|
||||||
|
this.opts = options || {};
|
||||||
|
this.cwd = file.opts.cwd;
|
||||||
|
this.filename = file.opts.filename;
|
||||||
|
}
|
||||||
|
|
||||||
|
set(key, val) {
|
||||||
|
this._map.set(key, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
get(key) {
|
||||||
|
return this._map.get(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
availableHelper(name, versionRange) {
|
||||||
|
return this.file.availableHelper(name, versionRange);
|
||||||
|
}
|
||||||
|
|
||||||
|
addHelper(name) {
|
||||||
|
return this.file.addHelper(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
addImport() {
|
||||||
|
return this.file.addImport();
|
||||||
|
}
|
||||||
|
|
||||||
|
getModuleName() {
|
||||||
|
return this.file.getModuleName();
|
||||||
|
}
|
||||||
|
|
||||||
|
buildCodeFrameError(node, msg, Error) {
|
||||||
|
return this.file.buildCodeFrameError(node, msg, Error);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.default = PluginPass;
|
239
node_modules/@babel/core/lib/transformation/util/missing-plugin-helper.js
generated
vendored
Normal file
239
node_modules/@babel/core/lib/transformation/util/missing-plugin-helper.js
generated
vendored
Normal file
@ -0,0 +1,239 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
exports.default = generateMissingPluginMessage;
|
||||||
|
const pluginNameMap = {
|
||||||
|
classProperties: {
|
||||||
|
syntax: {
|
||||||
|
name: "@babel/plugin-syntax-class-properties",
|
||||||
|
url: "https://git.io/vb4yQ"
|
||||||
|
},
|
||||||
|
transform: {
|
||||||
|
name: "@babel/plugin-proposal-class-properties",
|
||||||
|
url: "https://git.io/vb4SL"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
decorators: {
|
||||||
|
syntax: {
|
||||||
|
name: "@babel/plugin-syntax-decorators",
|
||||||
|
url: "https://git.io/vb4y9"
|
||||||
|
},
|
||||||
|
transform: {
|
||||||
|
name: "@babel/plugin-proposal-decorators",
|
||||||
|
url: "https://git.io/vb4ST"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
doExpressions: {
|
||||||
|
syntax: {
|
||||||
|
name: "@babel/plugin-syntax-do-expressions",
|
||||||
|
url: "https://git.io/vb4yh"
|
||||||
|
},
|
||||||
|
transform: {
|
||||||
|
name: "@babel/plugin-proposal-do-expressions",
|
||||||
|
url: "https://git.io/vb4S3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dynamicImport: {
|
||||||
|
syntax: {
|
||||||
|
name: "@babel/plugin-syntax-dynamic-import",
|
||||||
|
url: "https://git.io/vb4Sv"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
exportDefaultFrom: {
|
||||||
|
syntax: {
|
||||||
|
name: "@babel/plugin-syntax-export-default-from",
|
||||||
|
url: "https://git.io/vb4SO"
|
||||||
|
},
|
||||||
|
transform: {
|
||||||
|
name: "@babel/plugin-proposal-export-default-from",
|
||||||
|
url: "https://git.io/vb4yH"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
exportNamespaceFrom: {
|
||||||
|
syntax: {
|
||||||
|
name: "@babel/plugin-syntax-export-namespace-from",
|
||||||
|
url: "https://git.io/vb4Sf"
|
||||||
|
},
|
||||||
|
transform: {
|
||||||
|
name: "@babel/plugin-proposal-export-namespace-from",
|
||||||
|
url: "https://git.io/vb4SG"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
flow: {
|
||||||
|
syntax: {
|
||||||
|
name: "@babel/plugin-syntax-flow",
|
||||||
|
url: "https://git.io/vb4yb"
|
||||||
|
},
|
||||||
|
transform: {
|
||||||
|
name: "@babel/plugin-transform-flow-strip-types",
|
||||||
|
url: "https://git.io/vb49g"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
functionBind: {
|
||||||
|
syntax: {
|
||||||
|
name: "@babel/plugin-syntax-function-bind",
|
||||||
|
url: "https://git.io/vb4y7"
|
||||||
|
},
|
||||||
|
transform: {
|
||||||
|
name: "@babel/plugin-proposal-function-bind",
|
||||||
|
url: "https://git.io/vb4St"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
functionSent: {
|
||||||
|
syntax: {
|
||||||
|
name: "@babel/plugin-syntax-function-sent",
|
||||||
|
url: "https://git.io/vb4yN"
|
||||||
|
},
|
||||||
|
transform: {
|
||||||
|
name: "@babel/plugin-proposal-function-sent",
|
||||||
|
url: "https://git.io/vb4SZ"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
importMeta: {
|
||||||
|
syntax: {
|
||||||
|
name: "@babel/plugin-syntax-import-meta",
|
||||||
|
url: "https://git.io/vbKK6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
jsx: {
|
||||||
|
syntax: {
|
||||||
|
name: "@babel/plugin-syntax-jsx",
|
||||||
|
url: "https://git.io/vb4yA"
|
||||||
|
},
|
||||||
|
transform: {
|
||||||
|
name: "@babel/plugin-transform-react-jsx",
|
||||||
|
url: "https://git.io/vb4yd"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
logicalAssignment: {
|
||||||
|
syntax: {
|
||||||
|
name: "@babel/plugin-syntax-logical-assignment-operators",
|
||||||
|
url: "https://git.io/vAlBp"
|
||||||
|
},
|
||||||
|
transform: {
|
||||||
|
name: "@babel/plugin-proposal-logical-assignment-operators",
|
||||||
|
url: "https://git.io/vAlRe"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
nullishCoalescingOperator: {
|
||||||
|
syntax: {
|
||||||
|
name: "@babel/plugin-syntax-nullish-coalescing-operator",
|
||||||
|
url: "https://git.io/vb4yx"
|
||||||
|
},
|
||||||
|
transform: {
|
||||||
|
name: "@babel/plugin-proposal-nullish-coalescing-operator",
|
||||||
|
url: "https://git.io/vb4Se"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
numericSeparator: {
|
||||||
|
syntax: {
|
||||||
|
name: "@babel/plugin-syntax-numeric-separator",
|
||||||
|
url: "https://git.io/vb4Sq"
|
||||||
|
},
|
||||||
|
transform: {
|
||||||
|
name: "@babel/plugin-proposal-numeric-separator",
|
||||||
|
url: "https://git.io/vb4yS"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
optionalChaining: {
|
||||||
|
syntax: {
|
||||||
|
name: "@babel/plugin-syntax-optional-chaining",
|
||||||
|
url: "https://git.io/vb4Sc"
|
||||||
|
},
|
||||||
|
transform: {
|
||||||
|
name: "@babel/plugin-proposal-optional-chaining",
|
||||||
|
url: "https://git.io/vb4Sk"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
pipelineOperator: {
|
||||||
|
syntax: {
|
||||||
|
name: "@babel/plugin-syntax-pipeline-operator",
|
||||||
|
url: "https://git.io/vb4yj"
|
||||||
|
},
|
||||||
|
transform: {
|
||||||
|
name: "@babel/plugin-proposal-pipeline-operator",
|
||||||
|
url: "https://git.io/vb4SU"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
throwExpressions: {
|
||||||
|
syntax: {
|
||||||
|
name: "@babel/plugin-syntax-throw-expressions",
|
||||||
|
url: "https://git.io/vb4SJ"
|
||||||
|
},
|
||||||
|
transform: {
|
||||||
|
name: "@babel/plugin-proposal-throw-expressions",
|
||||||
|
url: "https://git.io/vb4yF"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
typescript: {
|
||||||
|
syntax: {
|
||||||
|
name: "@babel/plugin-syntax-typescript",
|
||||||
|
url: "https://git.io/vb4SC"
|
||||||
|
},
|
||||||
|
transform: {
|
||||||
|
name: "@babel/plugin-transform-typescript",
|
||||||
|
url: "https://git.io/vb4Sm"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
asyncGenerators: {
|
||||||
|
syntax: {
|
||||||
|
name: "@babel/plugin-syntax-async-generators",
|
||||||
|
url: "https://git.io/vb4SY"
|
||||||
|
},
|
||||||
|
transform: {
|
||||||
|
name: "@babel/plugin-proposal-async-generator-functions",
|
||||||
|
url: "https://git.io/vb4yp"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
objectRestSpread: {
|
||||||
|
syntax: {
|
||||||
|
name: "@babel/plugin-syntax-object-rest-spread",
|
||||||
|
url: "https://git.io/vb4y5"
|
||||||
|
},
|
||||||
|
transform: {
|
||||||
|
name: "@babel/plugin-proposal-object-rest-spread",
|
||||||
|
url: "https://git.io/vb4Ss"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
optionalCatchBinding: {
|
||||||
|
syntax: {
|
||||||
|
name: "@babel/plugin-syntax-optional-catch-binding",
|
||||||
|
url: "https://git.io/vb4Sn"
|
||||||
|
},
|
||||||
|
transform: {
|
||||||
|
name: "@babel/plugin-proposal-optional-catch-binding",
|
||||||
|
url: "https://git.io/vb4SI"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const getNameURLCombination = ({
|
||||||
|
name,
|
||||||
|
url
|
||||||
|
}) => `${name} (${url})`;
|
||||||
|
|
||||||
|
function generateMissingPluginMessage(missingPluginName, loc, codeFrame) {
|
||||||
|
let helpMessage = `Support for the experimental syntax '${missingPluginName}' isn't currently enabled ` + `(${loc.line}:${loc.column + 1}):\n\n` + codeFrame;
|
||||||
|
const pluginInfo = pluginNameMap[missingPluginName];
|
||||||
|
|
||||||
|
if (pluginInfo) {
|
||||||
|
const {
|
||||||
|
syntax: syntaxPlugin,
|
||||||
|
transform: transformPlugin
|
||||||
|
} = pluginInfo;
|
||||||
|
|
||||||
|
if (syntaxPlugin) {
|
||||||
|
if (transformPlugin) {
|
||||||
|
const transformPluginInfo = getNameURLCombination(transformPlugin);
|
||||||
|
helpMessage += `\n\nAdd ${transformPluginInfo} to the 'plugins' section of your Babel config ` + `to enable transformation.`;
|
||||||
|
} else {
|
||||||
|
const syntaxPluginInfo = getNameURLCombination(syntaxPlugin);
|
||||||
|
helpMessage += `\n\nAdd ${syntaxPluginInfo} to the 'plugins' section of your Babel config ` + `to enable parsing.`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return helpMessage;
|
||||||
|
}
|
1
node_modules/@babel/core/node_modules/.bin/json5
generated
vendored
Symbolic link
1
node_modules/@babel/core/node_modules/.bin/json5
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../../json5/lib/cli.js
|
1
node_modules/@babel/core/node_modules/.bin/parser
generated
vendored
Symbolic link
1
node_modules/@babel/core/node_modules/.bin/parser
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../parser/bin/babel-parser.js
|
1
node_modules/@babel/core/node_modules/.bin/semver
generated
vendored
Symbolic link
1
node_modules/@babel/core/node_modules/.bin/semver
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../../semver/bin/semver
|
301
node_modules/@babel/core/node_modules/source-map/CHANGELOG.md
generated
vendored
Normal file
301
node_modules/@babel/core/node_modules/source-map/CHANGELOG.md
generated
vendored
Normal file
@ -0,0 +1,301 @@
|
|||||||
|
# Change Log
|
||||||
|
|
||||||
|
## 0.5.6
|
||||||
|
|
||||||
|
* Fix for regression when people were using numbers as names in source maps. See
|
||||||
|
#236.
|
||||||
|
|
||||||
|
## 0.5.5
|
||||||
|
|
||||||
|
* Fix "regression" of unsupported, implementation behavior that half the world
|
||||||
|
happens to have come to depend on. See #235.
|
||||||
|
|
||||||
|
* Fix regression involving function hoisting in SpiderMonkey. See #233.
|
||||||
|
|
||||||
|
## 0.5.4
|
||||||
|
|
||||||
|
* Large performance improvements to source-map serialization. See #228 and #229.
|
||||||
|
|
||||||
|
## 0.5.3
|
||||||
|
|
||||||
|
* Do not include unnecessary distribution files. See
|
||||||
|
commit ef7006f8d1647e0a83fdc60f04f5a7ca54886f86.
|
||||||
|
|
||||||
|
## 0.5.2
|
||||||
|
|
||||||
|
* Include browser distributions of the library in package.json's `files`. See
|
||||||
|
issue #212.
|
||||||
|
|
||||||
|
## 0.5.1
|
||||||
|
|
||||||
|
* Fix latent bugs in IndexedSourceMapConsumer.prototype._parseMappings. See
|
||||||
|
ff05274becc9e6e1295ed60f3ea090d31d843379.
|
||||||
|
|
||||||
|
## 0.5.0
|
||||||
|
|
||||||
|
* Node 0.8 is no longer supported.
|
||||||
|
|
||||||
|
* Use webpack instead of dryice for bundling.
|
||||||
|
|
||||||
|
* Big speedups serializing source maps. See pull request #203.
|
||||||
|
|
||||||
|
* Fix a bug with `SourceMapConsumer.prototype.sourceContentFor` and sources that
|
||||||
|
explicitly start with the source root. See issue #199.
|
||||||
|
|
||||||
|
## 0.4.4
|
||||||
|
|
||||||
|
* Fix an issue where using a `SourceMapGenerator` after having created a
|
||||||
|
`SourceMapConsumer` from it via `SourceMapConsumer.fromSourceMap` failed. See
|
||||||
|
issue #191.
|
||||||
|
|
||||||
|
* Fix an issue with where `SourceMapGenerator` would mistakenly consider
|
||||||
|
different mappings as duplicates of each other and avoid generating them. See
|
||||||
|
issue #192.
|
||||||
|
|
||||||
|
## 0.4.3
|
||||||
|
|
||||||
|
* A very large number of performance improvements, particularly when parsing
|
||||||
|
source maps. Collectively about 75% of time shaved off of the source map
|
||||||
|
parsing benchmark!
|
||||||
|
|
||||||
|
* Fix a bug in `SourceMapConsumer.prototype.allGeneratedPositionsFor` and fuzzy
|
||||||
|
searching in the presence of a column option. See issue #177.
|
||||||
|
|
||||||
|
* Fix a bug with joining a source and its source root when the source is above
|
||||||
|
the root. See issue #182.
|
||||||
|
|
||||||
|
* Add the `SourceMapConsumer.prototype.hasContentsOfAllSources` method to
|
||||||
|
determine when all sources' contents are inlined into the source map. See
|
||||||
|
issue #190.
|
||||||
|
|
||||||
|
## 0.4.2
|
||||||
|
|
||||||
|
* Add an `.npmignore` file so that the benchmarks aren't pulled down by
|
||||||
|
dependent projects. Issue #169.
|
||||||
|
|
||||||
|
* Add an optional `column` argument to
|
||||||
|
`SourceMapConsumer.prototype.allGeneratedPositionsFor` and better handle lines
|
||||||
|
with no mappings. Issues #172 and #173.
|
||||||
|
|
||||||
|
## 0.4.1
|
||||||
|
|
||||||
|
* Fix accidentally defining a global variable. #170.
|
||||||
|
|
||||||
|
## 0.4.0
|
||||||
|
|
||||||
|
* The default direction for fuzzy searching was changed back to its original
|
||||||
|
direction. See #164.
|
||||||
|
|
||||||
|
* There is now a `bias` option you can supply to `SourceMapConsumer` to control
|
||||||
|
the fuzzy searching direction. See #167.
|
||||||
|
|
||||||
|
* About an 8% speed up in parsing source maps. See #159.
|
||||||
|
|
||||||
|
* Added a benchmark for parsing and generating source maps.
|
||||||
|
|
||||||
|
## 0.3.0
|
||||||
|
|
||||||
|
* Change the default direction that searching for positions fuzzes when there is
|
||||||
|
not an exact match. See #154.
|
||||||
|
|
||||||
|
* Support for environments using json2.js for JSON serialization. See #156.
|
||||||
|
|
||||||
|
## 0.2.0
|
||||||
|
|
||||||
|
* Support for consuming "indexed" source maps which do not have any remote
|
||||||
|
sections. See pull request #127. This introduces a minor backwards
|
||||||
|
incompatibility if you are monkey patching `SourceMapConsumer.prototype`
|
||||||
|
methods.
|
||||||
|
|
||||||
|
## 0.1.43
|
||||||
|
|
||||||
|
* Performance improvements for `SourceMapGenerator` and `SourceNode`. See issue
|
||||||
|
#148 for some discussion and issues #150, #151, and #152 for implementations.
|
||||||
|
|
||||||
|
## 0.1.42
|
||||||
|
|
||||||
|
* Fix an issue where `SourceNode`s from different versions of the source-map
|
||||||
|
library couldn't be used in conjunction with each other. See issue #142.
|
||||||
|
|
||||||
|
## 0.1.41
|
||||||
|
|
||||||
|
* Fix a bug with getting the source content of relative sources with a "./"
|
||||||
|
prefix. See issue #145 and [Bug 1090768](bugzil.la/1090768).
|
||||||
|
|
||||||
|
* Add the `SourceMapConsumer.prototype.computeColumnSpans` method to compute the
|
||||||
|
column span of each mapping.
|
||||||
|
|
||||||
|
* Add the `SourceMapConsumer.prototype.allGeneratedPositionsFor` method to find
|
||||||
|
all generated positions associated with a given original source and line.
|
||||||
|
|
||||||
|
## 0.1.40
|
||||||
|
|
||||||
|
* Performance improvements for parsing source maps in SourceMapConsumer.
|
||||||
|
|
||||||
|
## 0.1.39
|
||||||
|
|
||||||
|
* Fix a bug where setting a source's contents to null before any source content
|
||||||
|
had been set before threw a TypeError. See issue #131.
|
||||||
|
|
||||||
|
## 0.1.38
|
||||||
|
|
||||||
|
* Fix a bug where finding relative paths from an empty path were creating
|
||||||
|
absolute paths. See issue #129.
|
||||||
|
|
||||||
|
## 0.1.37
|
||||||
|
|
||||||
|
* Fix a bug where if the source root was an empty string, relative source paths
|
||||||
|
would turn into absolute source paths. Issue #124.
|
||||||
|
|
||||||
|
## 0.1.36
|
||||||
|
|
||||||
|
* Allow the `names` mapping property to be an empty string. Issue #121.
|
||||||
|
|
||||||
|
## 0.1.35
|
||||||
|
|
||||||
|
* A third optional parameter was added to `SourceNode.fromStringWithSourceMap`
|
||||||
|
to specify a path that relative sources in the second parameter should be
|
||||||
|
relative to. Issue #105.
|
||||||
|
|
||||||
|
* If no file property is given to a `SourceMapGenerator`, then the resulting
|
||||||
|
source map will no longer have a `null` file property. The property will
|
||||||
|
simply not exist. Issue #104.
|
||||||
|
|
||||||
|
* Fixed a bug where consecutive newlines were ignored in `SourceNode`s.
|
||||||
|
Issue #116.
|
||||||
|
|
||||||
|
## 0.1.34
|
||||||
|
|
||||||
|
* Make `SourceNode` work with windows style ("\r\n") newlines. Issue #103.
|
||||||
|
|
||||||
|
* Fix bug involving source contents and the
|
||||||
|
`SourceMapGenerator.prototype.applySourceMap`. Issue #100.
|
||||||
|
|
||||||
|
## 0.1.33
|
||||||
|
|
||||||
|
* Fix some edge cases surrounding path joining and URL resolution.
|
||||||
|
|
||||||
|
* Add a third parameter for relative path to
|
||||||
|
`SourceMapGenerator.prototype.applySourceMap`.
|
||||||
|
|
||||||
|
* Fix issues with mappings and EOLs.
|
||||||
|
|
||||||
|
## 0.1.32
|
||||||
|
|
||||||
|
* Fixed a bug where SourceMapConsumer couldn't handle negative relative columns
|
||||||
|
(issue 92).
|
||||||
|
|
||||||
|
* Fixed test runner to actually report number of failed tests as its process
|
||||||
|
exit code.
|
||||||
|
|
||||||
|
* Fixed a typo when reporting bad mappings (issue 87).
|
||||||
|
|
||||||
|
## 0.1.31
|
||||||
|
|
||||||
|
* Delay parsing the mappings in SourceMapConsumer until queried for a source
|
||||||
|
location.
|
||||||
|
|
||||||
|
* Support Sass source maps (which at the time of writing deviate from the spec
|
||||||
|
in small ways) in SourceMapConsumer.
|
||||||
|
|
||||||
|
## 0.1.30
|
||||||
|
|
||||||
|
* Do not join source root with a source, when the source is a data URI.
|
||||||
|
|
||||||
|
* Extend the test runner to allow running single specific test files at a time.
|
||||||
|
|
||||||
|
* Performance improvements in `SourceNode.prototype.walk` and
|
||||||
|
`SourceMapConsumer.prototype.eachMapping`.
|
||||||
|
|
||||||
|
* Source map browser builds will now work inside Workers.
|
||||||
|
|
||||||
|
* Better error messages when attempting to add an invalid mapping to a
|
||||||
|
`SourceMapGenerator`.
|
||||||
|
|
||||||
|
## 0.1.29
|
||||||
|
|
||||||
|
* Allow duplicate entries in the `names` and `sources` arrays of source maps
|
||||||
|
(usually from TypeScript) we are parsing. Fixes github issue 72.
|
||||||
|
|
||||||
|
## 0.1.28
|
||||||
|
|
||||||
|
* Skip duplicate mappings when creating source maps from SourceNode; github
|
||||||
|
issue 75.
|
||||||
|
|
||||||
|
## 0.1.27
|
||||||
|
|
||||||
|
* Don't throw an error when the `file` property is missing in SourceMapConsumer,
|
||||||
|
we don't use it anyway.
|
||||||
|
|
||||||
|
## 0.1.26
|
||||||
|
|
||||||
|
* Fix SourceNode.fromStringWithSourceMap for empty maps. Fixes github issue 70.
|
||||||
|
|
||||||
|
## 0.1.25
|
||||||
|
|
||||||
|
* Make compatible with browserify
|
||||||
|
|
||||||
|
## 0.1.24
|
||||||
|
|
||||||
|
* Fix issue with absolute paths and `file://` URIs. See
|
||||||
|
https://bugzilla.mozilla.org/show_bug.cgi?id=885597
|
||||||
|
|
||||||
|
## 0.1.23
|
||||||
|
|
||||||
|
* Fix issue with absolute paths and sourcesContent, github issue 64.
|
||||||
|
|
||||||
|
## 0.1.22
|
||||||
|
|
||||||
|
* Ignore duplicate mappings in SourceMapGenerator. Fixes github issue 21.
|
||||||
|
|
||||||
|
## 0.1.21
|
||||||
|
|
||||||
|
* Fixed handling of sources that start with a slash so that they are relative to
|
||||||
|
the source root's host.
|
||||||
|
|
||||||
|
## 0.1.20
|
||||||
|
|
||||||
|
* Fixed github issue #43: absolute URLs aren't joined with the source root
|
||||||
|
anymore.
|
||||||
|
|
||||||
|
## 0.1.19
|
||||||
|
|
||||||
|
* Using Travis CI to run tests.
|
||||||
|
|
||||||
|
## 0.1.18
|
||||||
|
|
||||||
|
* Fixed a bug in the handling of sourceRoot.
|
||||||
|
|
||||||
|
## 0.1.17
|
||||||
|
|
||||||
|
* Added SourceNode.fromStringWithSourceMap.
|
||||||
|
|
||||||
|
## 0.1.16
|
||||||
|
|
||||||
|
* Added missing documentation.
|
||||||
|
|
||||||
|
* Fixed the generating of empty mappings in SourceNode.
|
||||||
|
|
||||||
|
## 0.1.15
|
||||||
|
|
||||||
|
* Added SourceMapGenerator.applySourceMap.
|
||||||
|
|
||||||
|
## 0.1.14
|
||||||
|
|
||||||
|
* The sourceRoot is now handled consistently.
|
||||||
|
|
||||||
|
## 0.1.13
|
||||||
|
|
||||||
|
* Added SourceMapGenerator.fromSourceMap.
|
||||||
|
|
||||||
|
## 0.1.12
|
||||||
|
|
||||||
|
* SourceNode now generates empty mappings too.
|
||||||
|
|
||||||
|
## 0.1.11
|
||||||
|
|
||||||
|
* Added name support to SourceNode.
|
||||||
|
|
||||||
|
## 0.1.10
|
||||||
|
|
||||||
|
* Added sourcesContent support to the customer and generator.
|
28
node_modules/@babel/core/node_modules/source-map/LICENSE
generated
vendored
Normal file
28
node_modules/@babel/core/node_modules/source-map/LICENSE
generated
vendored
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
|
||||||
|
Copyright (c) 2009-2011, Mozilla Foundation and contributors
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
* Neither the names of the Mozilla Foundation nor the names of project
|
||||||
|
contributors may be used to endorse or promote products derived from this
|
||||||
|
software without specific prior written permission.
|
||||||
|
|
||||||
|
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 THE COPYRIGHT HOLDER OR CONTRIBUTORS 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.
|
729
node_modules/@babel/core/node_modules/source-map/README.md
generated
vendored
Normal file
729
node_modules/@babel/core/node_modules/source-map/README.md
generated
vendored
Normal file
@ -0,0 +1,729 @@
|
|||||||
|
# Source Map
|
||||||
|
|
||||||
|
[](https://travis-ci.org/mozilla/source-map)
|
||||||
|
|
||||||
|
[](https://www.npmjs.com/package/source-map)
|
||||||
|
|
||||||
|
This is a library to generate and consume the source map format
|
||||||
|
[described here][format].
|
||||||
|
|
||||||
|
[format]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit
|
||||||
|
|
||||||
|
## Use with Node
|
||||||
|
|
||||||
|
$ npm install source-map
|
||||||
|
|
||||||
|
## Use on the Web
|
||||||
|
|
||||||
|
<script src="https://raw.githubusercontent.com/mozilla/source-map/master/dist/source-map.min.js" defer></script>
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
<!-- `npm run toc` to regenerate the Table of Contents -->
|
||||||
|
|
||||||
|
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
||||||
|
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
||||||
|
## Table of Contents
|
||||||
|
|
||||||
|
- [Examples](#examples)
|
||||||
|
- [Consuming a source map](#consuming-a-source-map)
|
||||||
|
- [Generating a source map](#generating-a-source-map)
|
||||||
|
- [With SourceNode (high level API)](#with-sourcenode-high-level-api)
|
||||||
|
- [With SourceMapGenerator (low level API)](#with-sourcemapgenerator-low-level-api)
|
||||||
|
- [API](#api)
|
||||||
|
- [SourceMapConsumer](#sourcemapconsumer)
|
||||||
|
- [new SourceMapConsumer(rawSourceMap)](#new-sourcemapconsumerrawsourcemap)
|
||||||
|
- [SourceMapConsumer.prototype.computeColumnSpans()](#sourcemapconsumerprototypecomputecolumnspans)
|
||||||
|
- [SourceMapConsumer.prototype.originalPositionFor(generatedPosition)](#sourcemapconsumerprototypeoriginalpositionforgeneratedposition)
|
||||||
|
- [SourceMapConsumer.prototype.generatedPositionFor(originalPosition)](#sourcemapconsumerprototypegeneratedpositionfororiginalposition)
|
||||||
|
- [SourceMapConsumer.prototype.allGeneratedPositionsFor(originalPosition)](#sourcemapconsumerprototypeallgeneratedpositionsfororiginalposition)
|
||||||
|
- [SourceMapConsumer.prototype.hasContentsOfAllSources()](#sourcemapconsumerprototypehascontentsofallsources)
|
||||||
|
- [SourceMapConsumer.prototype.sourceContentFor(source[, returnNullOnMissing])](#sourcemapconsumerprototypesourcecontentforsource-returnnullonmissing)
|
||||||
|
- [SourceMapConsumer.prototype.eachMapping(callback, context, order)](#sourcemapconsumerprototypeeachmappingcallback-context-order)
|
||||||
|
- [SourceMapGenerator](#sourcemapgenerator)
|
||||||
|
- [new SourceMapGenerator([startOfSourceMap])](#new-sourcemapgeneratorstartofsourcemap)
|
||||||
|
- [SourceMapGenerator.fromSourceMap(sourceMapConsumer)](#sourcemapgeneratorfromsourcemapsourcemapconsumer)
|
||||||
|
- [SourceMapGenerator.prototype.addMapping(mapping)](#sourcemapgeneratorprototypeaddmappingmapping)
|
||||||
|
- [SourceMapGenerator.prototype.setSourceContent(sourceFile, sourceContent)](#sourcemapgeneratorprototypesetsourcecontentsourcefile-sourcecontent)
|
||||||
|
- [SourceMapGenerator.prototype.applySourceMap(sourceMapConsumer[, sourceFile[, sourceMapPath]])](#sourcemapgeneratorprototypeapplysourcemapsourcemapconsumer-sourcefile-sourcemappath)
|
||||||
|
- [SourceMapGenerator.prototype.toString()](#sourcemapgeneratorprototypetostring)
|
||||||
|
- [SourceNode](#sourcenode)
|
||||||
|
- [new SourceNode([line, column, source[, chunk[, name]]])](#new-sourcenodeline-column-source-chunk-name)
|
||||||
|
- [SourceNode.fromStringWithSourceMap(code, sourceMapConsumer[, relativePath])](#sourcenodefromstringwithsourcemapcode-sourcemapconsumer-relativepath)
|
||||||
|
- [SourceNode.prototype.add(chunk)](#sourcenodeprototypeaddchunk)
|
||||||
|
- [SourceNode.prototype.prepend(chunk)](#sourcenodeprototypeprependchunk)
|
||||||
|
- [SourceNode.prototype.setSourceContent(sourceFile, sourceContent)](#sourcenodeprototypesetsourcecontentsourcefile-sourcecontent)
|
||||||
|
- [SourceNode.prototype.walk(fn)](#sourcenodeprototypewalkfn)
|
||||||
|
- [SourceNode.prototype.walkSourceContents(fn)](#sourcenodeprototypewalksourcecontentsfn)
|
||||||
|
- [SourceNode.prototype.join(sep)](#sourcenodeprototypejoinsep)
|
||||||
|
- [SourceNode.prototype.replaceRight(pattern, replacement)](#sourcenodeprototypereplacerightpattern-replacement)
|
||||||
|
- [SourceNode.prototype.toString()](#sourcenodeprototypetostring)
|
||||||
|
- [SourceNode.prototype.toStringWithSourceMap([startOfSourceMap])](#sourcenodeprototypetostringwithsourcemapstartofsourcemap)
|
||||||
|
|
||||||
|
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
### Consuming a source map
|
||||||
|
|
||||||
|
```js
|
||||||
|
var rawSourceMap = {
|
||||||
|
version: 3,
|
||||||
|
file: 'min.js',
|
||||||
|
names: ['bar', 'baz', 'n'],
|
||||||
|
sources: ['one.js', 'two.js'],
|
||||||
|
sourceRoot: 'http://example.com/www/js/',
|
||||||
|
mappings: 'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA'
|
||||||
|
};
|
||||||
|
|
||||||
|
var smc = new SourceMapConsumer(rawSourceMap);
|
||||||
|
|
||||||
|
console.log(smc.sources);
|
||||||
|
// [ 'http://example.com/www/js/one.js',
|
||||||
|
// 'http://example.com/www/js/two.js' ]
|
||||||
|
|
||||||
|
console.log(smc.originalPositionFor({
|
||||||
|
line: 2,
|
||||||
|
column: 28
|
||||||
|
}));
|
||||||
|
// { source: 'http://example.com/www/js/two.js',
|
||||||
|
// line: 2,
|
||||||
|
// column: 10,
|
||||||
|
// name: 'n' }
|
||||||
|
|
||||||
|
console.log(smc.generatedPositionFor({
|
||||||
|
source: 'http://example.com/www/js/two.js',
|
||||||
|
line: 2,
|
||||||
|
column: 10
|
||||||
|
}));
|
||||||
|
// { line: 2, column: 28 }
|
||||||
|
|
||||||
|
smc.eachMapping(function (m) {
|
||||||
|
// ...
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
### Generating a source map
|
||||||
|
|
||||||
|
In depth guide:
|
||||||
|
[**Compiling to JavaScript, and Debugging with Source Maps**](https://hacks.mozilla.org/2013/05/compiling-to-javascript-and-debugging-with-source-maps/)
|
||||||
|
|
||||||
|
#### With SourceNode (high level API)
|
||||||
|
|
||||||
|
```js
|
||||||
|
function compile(ast) {
|
||||||
|
switch (ast.type) {
|
||||||
|
case 'BinaryExpression':
|
||||||
|
return new SourceNode(
|
||||||
|
ast.location.line,
|
||||||
|
ast.location.column,
|
||||||
|
ast.location.source,
|
||||||
|
[compile(ast.left), " + ", compile(ast.right)]
|
||||||
|
);
|
||||||
|
case 'Literal':
|
||||||
|
return new SourceNode(
|
||||||
|
ast.location.line,
|
||||||
|
ast.location.column,
|
||||||
|
ast.location.source,
|
||||||
|
String(ast.value)
|
||||||
|
);
|
||||||
|
// ...
|
||||||
|
default:
|
||||||
|
throw new Error("Bad AST");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var ast = parse("40 + 2", "add.js");
|
||||||
|
console.log(compile(ast).toStringWithSourceMap({
|
||||||
|
file: 'add.js'
|
||||||
|
}));
|
||||||
|
// { code: '40 + 2',
|
||||||
|
// map: [object SourceMapGenerator] }
|
||||||
|
```
|
||||||
|
|
||||||
|
#### With SourceMapGenerator (low level API)
|
||||||
|
|
||||||
|
```js
|
||||||
|
var map = new SourceMapGenerator({
|
||||||
|
file: "source-mapped.js"
|
||||||
|
});
|
||||||
|
|
||||||
|
map.addMapping({
|
||||||
|
generated: {
|
||||||
|
line: 10,
|
||||||
|
column: 35
|
||||||
|
},
|
||||||
|
source: "foo.js",
|
||||||
|
original: {
|
||||||
|
line: 33,
|
||||||
|
column: 2
|
||||||
|
},
|
||||||
|
name: "christopher"
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log(map.toString());
|
||||||
|
// '{"version":3,"file":"source-mapped.js","sources":["foo.js"],"names":["christopher"],"mappings":";;;;;;;;;mCAgCEA"}'
|
||||||
|
```
|
||||||
|
|
||||||
|
## API
|
||||||
|
|
||||||
|
Get a reference to the module:
|
||||||
|
|
||||||
|
```js
|
||||||
|
// Node.js
|
||||||
|
var sourceMap = require('source-map');
|
||||||
|
|
||||||
|
// Browser builds
|
||||||
|
var sourceMap = window.sourceMap;
|
||||||
|
|
||||||
|
// Inside Firefox
|
||||||
|
const sourceMap = require("devtools/toolkit/sourcemap/source-map.js");
|
||||||
|
```
|
||||||
|
|
||||||
|
### SourceMapConsumer
|
||||||
|
|
||||||
|
A SourceMapConsumer instance represents a parsed source map which we can query
|
||||||
|
for information about the original file positions by giving it a file position
|
||||||
|
in the generated source.
|
||||||
|
|
||||||
|
#### new SourceMapConsumer(rawSourceMap)
|
||||||
|
|
||||||
|
The only parameter is the raw source map (either as a string which can be
|
||||||
|
`JSON.parse`'d, or an object). According to the spec, source maps have the
|
||||||
|
following attributes:
|
||||||
|
|
||||||
|
* `version`: Which version of the source map spec this map is following.
|
||||||
|
|
||||||
|
* `sources`: An array of URLs to the original source files.
|
||||||
|
|
||||||
|
* `names`: An array of identifiers which can be referenced by individual
|
||||||
|
mappings.
|
||||||
|
|
||||||
|
* `sourceRoot`: Optional. The URL root from which all sources are relative.
|
||||||
|
|
||||||
|
* `sourcesContent`: Optional. An array of contents of the original source files.
|
||||||
|
|
||||||
|
* `mappings`: A string of base64 VLQs which contain the actual mappings.
|
||||||
|
|
||||||
|
* `file`: Optional. The generated filename this source map is associated with.
|
||||||
|
|
||||||
|
```js
|
||||||
|
var consumer = new sourceMap.SourceMapConsumer(rawSourceMapJsonData);
|
||||||
|
```
|
||||||
|
|
||||||
|
#### SourceMapConsumer.prototype.computeColumnSpans()
|
||||||
|
|
||||||
|
Compute the last column for each generated mapping. The last column is
|
||||||
|
inclusive.
|
||||||
|
|
||||||
|
```js
|
||||||
|
// Before:
|
||||||
|
consumer.allGeneratedPositionsFor({ line: 2, source: "foo.coffee" })
|
||||||
|
// [ { line: 2,
|
||||||
|
// column: 1 },
|
||||||
|
// { line: 2,
|
||||||
|
// column: 10 },
|
||||||
|
// { line: 2,
|
||||||
|
// column: 20 } ]
|
||||||
|
|
||||||
|
consumer.computeColumnSpans();
|
||||||
|
|
||||||
|
// After:
|
||||||
|
consumer.allGeneratedPositionsFor({ line: 2, source: "foo.coffee" })
|
||||||
|
// [ { line: 2,
|
||||||
|
// column: 1,
|
||||||
|
// lastColumn: 9 },
|
||||||
|
// { line: 2,
|
||||||
|
// column: 10,
|
||||||
|
// lastColumn: 19 },
|
||||||
|
// { line: 2,
|
||||||
|
// column: 20,
|
||||||
|
// lastColumn: Infinity } ]
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
#### SourceMapConsumer.prototype.originalPositionFor(generatedPosition)
|
||||||
|
|
||||||
|
Returns the original source, line, and column information for the generated
|
||||||
|
source's line and column positions provided. The only argument is an object with
|
||||||
|
the following properties:
|
||||||
|
|
||||||
|
* `line`: The line number in the generated source.
|
||||||
|
|
||||||
|
* `column`: The column number in the generated source.
|
||||||
|
|
||||||
|
* `bias`: Either `SourceMapConsumer.GREATEST_LOWER_BOUND` or
|
||||||
|
`SourceMapConsumer.LEAST_UPPER_BOUND`. Specifies whether to return the closest
|
||||||
|
element that is smaller than or greater than the one we are searching for,
|
||||||
|
respectively, if the exact element cannot be found. Defaults to
|
||||||
|
`SourceMapConsumer.GREATEST_LOWER_BOUND`.
|
||||||
|
|
||||||
|
and an object is returned with the following properties:
|
||||||
|
|
||||||
|
* `source`: The original source file, or null if this information is not
|
||||||
|
available.
|
||||||
|
|
||||||
|
* `line`: The line number in the original source, or null if this information is
|
||||||
|
not available.
|
||||||
|
|
||||||
|
* `column`: The column number in the original source, or null if this
|
||||||
|
information is not available.
|
||||||
|
|
||||||
|
* `name`: The original identifier, or null if this information is not available.
|
||||||
|
|
||||||
|
```js
|
||||||
|
consumer.originalPositionFor({ line: 2, column: 10 })
|
||||||
|
// { source: 'foo.coffee',
|
||||||
|
// line: 2,
|
||||||
|
// column: 2,
|
||||||
|
// name: null }
|
||||||
|
|
||||||
|
consumer.originalPositionFor({ line: 99999999999999999, column: 999999999999999 })
|
||||||
|
// { source: null,
|
||||||
|
// line: null,
|
||||||
|
// column: null,
|
||||||
|
// name: null }
|
||||||
|
```
|
||||||
|
|
||||||
|
#### SourceMapConsumer.prototype.generatedPositionFor(originalPosition)
|
||||||
|
|
||||||
|
Returns the generated line and column information for the original source,
|
||||||
|
line, and column positions provided. The only argument is an object with
|
||||||
|
the following properties:
|
||||||
|
|
||||||
|
* `source`: The filename of the original source.
|
||||||
|
|
||||||
|
* `line`: The line number in the original source.
|
||||||
|
|
||||||
|
* `column`: The column number in the original source.
|
||||||
|
|
||||||
|
and an object is returned with the following properties:
|
||||||
|
|
||||||
|
* `line`: The line number in the generated source, or null.
|
||||||
|
|
||||||
|
* `column`: The column number in the generated source, or null.
|
||||||
|
|
||||||
|
```js
|
||||||
|
consumer.generatedPositionFor({ source: "example.js", line: 2, column: 10 })
|
||||||
|
// { line: 1,
|
||||||
|
// column: 56 }
|
||||||
|
```
|
||||||
|
|
||||||
|
#### SourceMapConsumer.prototype.allGeneratedPositionsFor(originalPosition)
|
||||||
|
|
||||||
|
Returns all generated line and column information for the original source, line,
|
||||||
|
and column provided. If no column is provided, returns all mappings
|
||||||
|
corresponding to a either the line we are searching for or the next closest line
|
||||||
|
that has any mappings. Otherwise, returns all mappings corresponding to the
|
||||||
|
given line and either the column we are searching for or the next closest column
|
||||||
|
that has any offsets.
|
||||||
|
|
||||||
|
The only argument is an object with the following properties:
|
||||||
|
|
||||||
|
* `source`: The filename of the original source.
|
||||||
|
|
||||||
|
* `line`: The line number in the original source.
|
||||||
|
|
||||||
|
* `column`: Optional. The column number in the original source.
|
||||||
|
|
||||||
|
and an array of objects is returned, each with the following properties:
|
||||||
|
|
||||||
|
* `line`: The line number in the generated source, or null.
|
||||||
|
|
||||||
|
* `column`: The column number in the generated source, or null.
|
||||||
|
|
||||||
|
```js
|
||||||
|
consumer.allGeneratedpositionsfor({ line: 2, source: "foo.coffee" })
|
||||||
|
// [ { line: 2,
|
||||||
|
// column: 1 },
|
||||||
|
// { line: 2,
|
||||||
|
// column: 10 },
|
||||||
|
// { line: 2,
|
||||||
|
// column: 20 } ]
|
||||||
|
```
|
||||||
|
|
||||||
|
#### SourceMapConsumer.prototype.hasContentsOfAllSources()
|
||||||
|
|
||||||
|
Return true if we have the embedded source content for every source listed in
|
||||||
|
the source map, false otherwise.
|
||||||
|
|
||||||
|
In other words, if this method returns `true`, then
|
||||||
|
`consumer.sourceContentFor(s)` will succeed for every source `s` in
|
||||||
|
`consumer.sources`.
|
||||||
|
|
||||||
|
```js
|
||||||
|
// ...
|
||||||
|
if (consumer.hasContentsOfAllSources()) {
|
||||||
|
consumerReadyCallback(consumer);
|
||||||
|
} else {
|
||||||
|
fetchSources(consumer, consumerReadyCallback);
|
||||||
|
}
|
||||||
|
// ...
|
||||||
|
```
|
||||||
|
|
||||||
|
#### SourceMapConsumer.prototype.sourceContentFor(source[, returnNullOnMissing])
|
||||||
|
|
||||||
|
Returns the original source content for the source provided. The only
|
||||||
|
argument is the URL of the original source file.
|
||||||
|
|
||||||
|
If the source content for the given source is not found, then an error is
|
||||||
|
thrown. Optionally, pass `true` as the second param to have `null` returned
|
||||||
|
instead.
|
||||||
|
|
||||||
|
```js
|
||||||
|
consumer.sources
|
||||||
|
// [ "my-cool-lib.clj" ]
|
||||||
|
|
||||||
|
consumer.sourceContentFor("my-cool-lib.clj")
|
||||||
|
// "..."
|
||||||
|
|
||||||
|
consumer.sourceContentFor("this is not in the source map");
|
||||||
|
// Error: "this is not in the source map" is not in the source map
|
||||||
|
|
||||||
|
consumer.sourceContentFor("this is not in the source map", true);
|
||||||
|
// null
|
||||||
|
```
|
||||||
|
|
||||||
|
#### SourceMapConsumer.prototype.eachMapping(callback, context, order)
|
||||||
|
|
||||||
|
Iterate over each mapping between an original source/line/column and a
|
||||||
|
generated line/column in this source map.
|
||||||
|
|
||||||
|
* `callback`: The function that is called with each mapping. Mappings have the
|
||||||
|
form `{ source, generatedLine, generatedColumn, originalLine, originalColumn,
|
||||||
|
name }`
|
||||||
|
|
||||||
|
* `context`: Optional. If specified, this object will be the value of `this`
|
||||||
|
every time that `callback` is called.
|
||||||
|
|
||||||
|
* `order`: Either `SourceMapConsumer.GENERATED_ORDER` or
|
||||||
|
`SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to iterate over
|
||||||
|
the mappings sorted by the generated file's line/column order or the
|
||||||
|
original's source/line/column order, respectively. Defaults to
|
||||||
|
`SourceMapConsumer.GENERATED_ORDER`.
|
||||||
|
|
||||||
|
```js
|
||||||
|
consumer.eachMapping(function (m) { console.log(m); })
|
||||||
|
// ...
|
||||||
|
// { source: 'illmatic.js',
|
||||||
|
// generatedLine: 1,
|
||||||
|
// generatedColumn: 0,
|
||||||
|
// originalLine: 1,
|
||||||
|
// originalColumn: 0,
|
||||||
|
// name: null }
|
||||||
|
// { source: 'illmatic.js',
|
||||||
|
// generatedLine: 2,
|
||||||
|
// generatedColumn: 0,
|
||||||
|
// originalLine: 2,
|
||||||
|
// originalColumn: 0,
|
||||||
|
// name: null }
|
||||||
|
// ...
|
||||||
|
```
|
||||||
|
### SourceMapGenerator
|
||||||
|
|
||||||
|
An instance of the SourceMapGenerator represents a source map which is being
|
||||||
|
built incrementally.
|
||||||
|
|
||||||
|
#### new SourceMapGenerator([startOfSourceMap])
|
||||||
|
|
||||||
|
You may pass an object with the following properties:
|
||||||
|
|
||||||
|
* `file`: The filename of the generated source that this source map is
|
||||||
|
associated with.
|
||||||
|
|
||||||
|
* `sourceRoot`: A root for all relative URLs in this source map.
|
||||||
|
|
||||||
|
* `skipValidation`: Optional. When `true`, disables validation of mappings as
|
||||||
|
they are added. This can improve performance but should be used with
|
||||||
|
discretion, as a last resort. Even then, one should avoid using this flag when
|
||||||
|
running tests, if possible.
|
||||||
|
|
||||||
|
```js
|
||||||
|
var generator = new sourceMap.SourceMapGenerator({
|
||||||
|
file: "my-generated-javascript-file.js",
|
||||||
|
sourceRoot: "http://example.com/app/js/"
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
#### SourceMapGenerator.fromSourceMap(sourceMapConsumer)
|
||||||
|
|
||||||
|
Creates a new `SourceMapGenerator` from an existing `SourceMapConsumer` instance.
|
||||||
|
|
||||||
|
* `sourceMapConsumer` The SourceMap.
|
||||||
|
|
||||||
|
```js
|
||||||
|
var generator = sourceMap.SourceMapGenerator.fromSourceMap(consumer);
|
||||||
|
```
|
||||||
|
|
||||||
|
#### SourceMapGenerator.prototype.addMapping(mapping)
|
||||||
|
|
||||||
|
Add a single mapping from original source line and column to the generated
|
||||||
|
source's line and column for this source map being created. The mapping object
|
||||||
|
should have the following properties:
|
||||||
|
|
||||||
|
* `generated`: An object with the generated line and column positions.
|
||||||
|
|
||||||
|
* `original`: An object with the original line and column positions.
|
||||||
|
|
||||||
|
* `source`: The original source file (relative to the sourceRoot).
|
||||||
|
|
||||||
|
* `name`: An optional original token name for this mapping.
|
||||||
|
|
||||||
|
```js
|
||||||
|
generator.addMapping({
|
||||||
|
source: "module-one.scm",
|
||||||
|
original: { line: 128, column: 0 },
|
||||||
|
generated: { line: 3, column: 456 }
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
#### SourceMapGenerator.prototype.setSourceContent(sourceFile, sourceContent)
|
||||||
|
|
||||||
|
Set the source content for an original source file.
|
||||||
|
|
||||||
|
* `sourceFile` the URL of the original source file.
|
||||||
|
|
||||||
|
* `sourceContent` the content of the source file.
|
||||||
|
|
||||||
|
```js
|
||||||
|
generator.setSourceContent("module-one.scm",
|
||||||
|
fs.readFileSync("path/to/module-one.scm"))
|
||||||
|
```
|
||||||
|
|
||||||
|
#### SourceMapGenerator.prototype.applySourceMap(sourceMapConsumer[, sourceFile[, sourceMapPath]])
|
||||||
|
|
||||||
|
Applies a SourceMap for a source file to the SourceMap.
|
||||||
|
Each mapping to the supplied source file is rewritten using the
|
||||||
|
supplied SourceMap. Note: The resolution for the resulting mappings
|
||||||
|
is the minimum of this map and the supplied map.
|
||||||
|
|
||||||
|
* `sourceMapConsumer`: The SourceMap to be applied.
|
||||||
|
|
||||||
|
* `sourceFile`: Optional. The filename of the source file.
|
||||||
|
If omitted, sourceMapConsumer.file will be used, if it exists.
|
||||||
|
Otherwise an error will be thrown.
|
||||||
|
|
||||||
|
* `sourceMapPath`: Optional. The dirname of the path to the SourceMap
|
||||||
|
to be applied. If relative, it is relative to the SourceMap.
|
||||||
|
|
||||||
|
This parameter is needed when the two SourceMaps aren't in the same
|
||||||
|
directory, and the SourceMap to be applied contains relative source
|
||||||
|
paths. If so, those relative source paths need to be rewritten
|
||||||
|
relative to the SourceMap.
|
||||||
|
|
||||||
|
If omitted, it is assumed that both SourceMaps are in the same directory,
|
||||||
|
thus not needing any rewriting. (Supplying `'.'` has the same effect.)
|
||||||
|
|
||||||
|
#### SourceMapGenerator.prototype.toString()
|
||||||
|
|
||||||
|
Renders the source map being generated to a string.
|
||||||
|
|
||||||
|
```js
|
||||||
|
generator.toString()
|
||||||
|
// '{"version":3,"sources":["module-one.scm"],"names":[],"mappings":"...snip...","file":"my-generated-javascript-file.js","sourceRoot":"http://example.com/app/js/"}'
|
||||||
|
```
|
||||||
|
|
||||||
|
### SourceNode
|
||||||
|
|
||||||
|
SourceNodes provide a way to abstract over interpolating and/or concatenating
|
||||||
|
snippets of generated JavaScript source code, while maintaining the line and
|
||||||
|
column information associated between those snippets and the original source
|
||||||
|
code. This is useful as the final intermediate representation a compiler might
|
||||||
|
use before outputting the generated JS and source map.
|
||||||
|
|
||||||
|
#### new SourceNode([line, column, source[, chunk[, name]]])
|
||||||
|
|
||||||
|
* `line`: The original line number associated with this source node, or null if
|
||||||
|
it isn't associated with an original line.
|
||||||
|
|
||||||
|
* `column`: The original column number associated with this source node, or null
|
||||||
|
if it isn't associated with an original column.
|
||||||
|
|
||||||
|
* `source`: The original source's filename; null if no filename is provided.
|
||||||
|
|
||||||
|
* `chunk`: Optional. Is immediately passed to `SourceNode.prototype.add`, see
|
||||||
|
below.
|
||||||
|
|
||||||
|
* `name`: Optional. The original identifier.
|
||||||
|
|
||||||
|
```js
|
||||||
|
var node = new SourceNode(1, 2, "a.cpp", [
|
||||||
|
new SourceNode(3, 4, "b.cpp", "extern int status;\n"),
|
||||||
|
new SourceNode(5, 6, "c.cpp", "std::string* make_string(size_t n);\n"),
|
||||||
|
new SourceNode(7, 8, "d.cpp", "int main(int argc, char** argv) {}\n"),
|
||||||
|
]);
|
||||||
|
```
|
||||||
|
|
||||||
|
#### SourceNode.fromStringWithSourceMap(code, sourceMapConsumer[, relativePath])
|
||||||
|
|
||||||
|
Creates a SourceNode from generated code and a SourceMapConsumer.
|
||||||
|
|
||||||
|
* `code`: The generated code
|
||||||
|
|
||||||
|
* `sourceMapConsumer` The SourceMap for the generated code
|
||||||
|
|
||||||
|
* `relativePath` The optional path that relative sources in `sourceMapConsumer`
|
||||||
|
should be relative to.
|
||||||
|
|
||||||
|
```js
|
||||||
|
var consumer = new SourceMapConsumer(fs.readFileSync("path/to/my-file.js.map", "utf8"));
|
||||||
|
var node = SourceNode.fromStringWithSourceMap(fs.readFileSync("path/to/my-file.js"),
|
||||||
|
consumer);
|
||||||
|
```
|
||||||
|
|
||||||
|
#### SourceNode.prototype.add(chunk)
|
||||||
|
|
||||||
|
Add a chunk of generated JS to this source node.
|
||||||
|
|
||||||
|
* `chunk`: A string snippet of generated JS code, another instance of
|
||||||
|
`SourceNode`, or an array where each member is one of those things.
|
||||||
|
|
||||||
|
```js
|
||||||
|
node.add(" + ");
|
||||||
|
node.add(otherNode);
|
||||||
|
node.add([leftHandOperandNode, " + ", rightHandOperandNode]);
|
||||||
|
```
|
||||||
|
|
||||||
|
#### SourceNode.prototype.prepend(chunk)
|
||||||
|
|
||||||
|
Prepend a chunk of generated JS to this source node.
|
||||||
|
|
||||||
|
* `chunk`: A string snippet of generated JS code, another instance of
|
||||||
|
`SourceNode`, or an array where each member is one of those things.
|
||||||
|
|
||||||
|
```js
|
||||||
|
node.prepend("/** Build Id: f783haef86324gf **/\n\n");
|
||||||
|
```
|
||||||
|
|
||||||
|
#### SourceNode.prototype.setSourceContent(sourceFile, sourceContent)
|
||||||
|
|
||||||
|
Set the source content for a source file. This will be added to the
|
||||||
|
`SourceMap` in the `sourcesContent` field.
|
||||||
|
|
||||||
|
* `sourceFile`: The filename of the source file
|
||||||
|
|
||||||
|
* `sourceContent`: The content of the source file
|
||||||
|
|
||||||
|
```js
|
||||||
|
node.setSourceContent("module-one.scm",
|
||||||
|
fs.readFileSync("path/to/module-one.scm"))
|
||||||
|
```
|
||||||
|
|
||||||
|
#### SourceNode.prototype.walk(fn)
|
||||||
|
|
||||||
|
Walk over the tree of JS snippets in this node and its children. The walking
|
||||||
|
function is called once for each snippet of JS and is passed that snippet and
|
||||||
|
the its original associated source's line/column location.
|
||||||
|
|
||||||
|
* `fn`: The traversal function.
|
||||||
|
|
||||||
|
```js
|
||||||
|
var node = new SourceNode(1, 2, "a.js", [
|
||||||
|
new SourceNode(3, 4, "b.js", "uno"),
|
||||||
|
"dos",
|
||||||
|
[
|
||||||
|
"tres",
|
||||||
|
new SourceNode(5, 6, "c.js", "quatro")
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
|
||||||
|
node.walk(function (code, loc) { console.log("WALK:", code, loc); })
|
||||||
|
// WALK: uno { source: 'b.js', line: 3, column: 4, name: null }
|
||||||
|
// WALK: dos { source: 'a.js', line: 1, column: 2, name: null }
|
||||||
|
// WALK: tres { source: 'a.js', line: 1, column: 2, name: null }
|
||||||
|
// WALK: quatro { source: 'c.js', line: 5, column: 6, name: null }
|
||||||
|
```
|
||||||
|
|
||||||
|
#### SourceNode.prototype.walkSourceContents(fn)
|
||||||
|
|
||||||
|
Walk over the tree of SourceNodes. The walking function is called for each
|
||||||
|
source file content and is passed the filename and source content.
|
||||||
|
|
||||||
|
* `fn`: The traversal function.
|
||||||
|
|
||||||
|
```js
|
||||||
|
var a = new SourceNode(1, 2, "a.js", "generated from a");
|
||||||
|
a.setSourceContent("a.js", "original a");
|
||||||
|
var b = new SourceNode(1, 2, "b.js", "generated from b");
|
||||||
|
b.setSourceContent("b.js", "original b");
|
||||||
|
var c = new SourceNode(1, 2, "c.js", "generated from c");
|
||||||
|
c.setSourceContent("c.js", "original c");
|
||||||
|
|
||||||
|
var node = new SourceNode(null, null, null, [a, b, c]);
|
||||||
|
node.walkSourceContents(function (source, contents) { console.log("WALK:", source, ":", contents); })
|
||||||
|
// WALK: a.js : original a
|
||||||
|
// WALK: b.js : original b
|
||||||
|
// WALK: c.js : original c
|
||||||
|
```
|
||||||
|
|
||||||
|
#### SourceNode.prototype.join(sep)
|
||||||
|
|
||||||
|
Like `Array.prototype.join` except for SourceNodes. Inserts the separator
|
||||||
|
between each of this source node's children.
|
||||||
|
|
||||||
|
* `sep`: The separator.
|
||||||
|
|
||||||
|
```js
|
||||||
|
var lhs = new SourceNode(1, 2, "a.rs", "my_copy");
|
||||||
|
var operand = new SourceNode(3, 4, "a.rs", "=");
|
||||||
|
var rhs = new SourceNode(5, 6, "a.rs", "orig.clone()");
|
||||||
|
|
||||||
|
var node = new SourceNode(null, null, null, [ lhs, operand, rhs ]);
|
||||||
|
var joinedNode = node.join(" ");
|
||||||
|
```
|
||||||
|
|
||||||
|
#### SourceNode.prototype.replaceRight(pattern, replacement)
|
||||||
|
|
||||||
|
Call `String.prototype.replace` on the very right-most source snippet. Useful
|
||||||
|
for trimming white space from the end of a source node, etc.
|
||||||
|
|
||||||
|
* `pattern`: The pattern to replace.
|
||||||
|
|
||||||
|
* `replacement`: The thing to replace the pattern with.
|
||||||
|
|
||||||
|
```js
|
||||||
|
// Trim trailing white space.
|
||||||
|
node.replaceRight(/\s*$/, "");
|
||||||
|
```
|
||||||
|
|
||||||
|
#### SourceNode.prototype.toString()
|
||||||
|
|
||||||
|
Return the string representation of this source node. Walks over the tree and
|
||||||
|
concatenates all the various snippets together to one string.
|
||||||
|
|
||||||
|
```js
|
||||||
|
var node = new SourceNode(1, 2, "a.js", [
|
||||||
|
new SourceNode(3, 4, "b.js", "uno"),
|
||||||
|
"dos",
|
||||||
|
[
|
||||||
|
"tres",
|
||||||
|
new SourceNode(5, 6, "c.js", "quatro")
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
|
||||||
|
node.toString()
|
||||||
|
// 'unodostresquatro'
|
||||||
|
```
|
||||||
|
|
||||||
|
#### SourceNode.prototype.toStringWithSourceMap([startOfSourceMap])
|
||||||
|
|
||||||
|
Returns the string representation of this tree of source nodes, plus a
|
||||||
|
SourceMapGenerator which contains all the mappings between the generated and
|
||||||
|
original sources.
|
||||||
|
|
||||||
|
The arguments are the same as those to `new SourceMapGenerator`.
|
||||||
|
|
||||||
|
```js
|
||||||
|
var node = new SourceNode(1, 2, "a.js", [
|
||||||
|
new SourceNode(3, 4, "b.js", "uno"),
|
||||||
|
"dos",
|
||||||
|
[
|
||||||
|
"tres",
|
||||||
|
new SourceNode(5, 6, "c.js", "quatro")
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
|
||||||
|
node.toStringWithSourceMap({ file: "my-output-file.js" })
|
||||||
|
// { code: 'unodostresquatro',
|
||||||
|
// map: [object SourceMapGenerator] }
|
||||||
|
```
|
3091
node_modules/@babel/core/node_modules/source-map/dist/source-map.debug.js
generated
vendored
Normal file
3091
node_modules/@babel/core/node_modules/source-map/dist/source-map.debug.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
3090
node_modules/@babel/core/node_modules/source-map/dist/source-map.js
generated
vendored
Normal file
3090
node_modules/@babel/core/node_modules/source-map/dist/source-map.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2
node_modules/@babel/core/node_modules/source-map/dist/source-map.min.js
generated
vendored
Normal file
2
node_modules/@babel/core/node_modules/source-map/dist/source-map.min.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1
node_modules/@babel/core/node_modules/source-map/dist/source-map.min.js.map
generated
vendored
Normal file
1
node_modules/@babel/core/node_modules/source-map/dist/source-map.min.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
121
node_modules/@babel/core/node_modules/source-map/lib/array-set.js
generated
vendored
Normal file
121
node_modules/@babel/core/node_modules/source-map/lib/array-set.js
generated
vendored
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
/* -*- Mode: js; js-indent-level: 2; -*- */
|
||||||
|
/*
|
||||||
|
* Copyright 2011 Mozilla Foundation and contributors
|
||||||
|
* Licensed under the New BSD license. See LICENSE or:
|
||||||
|
* http://opensource.org/licenses/BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
var util = require('./util');
|
||||||
|
var has = Object.prototype.hasOwnProperty;
|
||||||
|
var hasNativeMap = typeof Map !== "undefined";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A data structure which is a combination of an array and a set. Adding a new
|
||||||
|
* member is O(1), testing for membership is O(1), and finding the index of an
|
||||||
|
* element is O(1). Removing elements from the set is not supported. Only
|
||||||
|
* strings are supported for membership.
|
||||||
|
*/
|
||||||
|
function ArraySet() {
|
||||||
|
this._array = [];
|
||||||
|
this._set = hasNativeMap ? new Map() : Object.create(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Static method for creating ArraySet instances from an existing array.
|
||||||
|
*/
|
||||||
|
ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {
|
||||||
|
var set = new ArraySet();
|
||||||
|
for (var i = 0, len = aArray.length; i < len; i++) {
|
||||||
|
set.add(aArray[i], aAllowDuplicates);
|
||||||
|
}
|
||||||
|
return set;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return how many unique items are in this ArraySet. If duplicates have been
|
||||||
|
* added, than those do not count towards the size.
|
||||||
|
*
|
||||||
|
* @returns Number
|
||||||
|
*/
|
||||||
|
ArraySet.prototype.size = function ArraySet_size() {
|
||||||
|
return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the given string to this set.
|
||||||
|
*
|
||||||
|
* @param String aStr
|
||||||
|
*/
|
||||||
|
ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {
|
||||||
|
var sStr = hasNativeMap ? aStr : util.toSetString(aStr);
|
||||||
|
var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);
|
||||||
|
var idx = this._array.length;
|
||||||
|
if (!isDuplicate || aAllowDuplicates) {
|
||||||
|
this._array.push(aStr);
|
||||||
|
}
|
||||||
|
if (!isDuplicate) {
|
||||||
|
if (hasNativeMap) {
|
||||||
|
this._set.set(aStr, idx);
|
||||||
|
} else {
|
||||||
|
this._set[sStr] = idx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is the given string a member of this set?
|
||||||
|
*
|
||||||
|
* @param String aStr
|
||||||
|
*/
|
||||||
|
ArraySet.prototype.has = function ArraySet_has(aStr) {
|
||||||
|
if (hasNativeMap) {
|
||||||
|
return this._set.has(aStr);
|
||||||
|
} else {
|
||||||
|
var sStr = util.toSetString(aStr);
|
||||||
|
return has.call(this._set, sStr);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* What is the index of the given string in the array?
|
||||||
|
*
|
||||||
|
* @param String aStr
|
||||||
|
*/
|
||||||
|
ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {
|
||||||
|
if (hasNativeMap) {
|
||||||
|
var idx = this._set.get(aStr);
|
||||||
|
if (idx >= 0) {
|
||||||
|
return idx;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
var sStr = util.toSetString(aStr);
|
||||||
|
if (has.call(this._set, sStr)) {
|
||||||
|
return this._set[sStr];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new Error('"' + aStr + '" is not in the set.');
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* What is the element at the given index?
|
||||||
|
*
|
||||||
|
* @param Number aIdx
|
||||||
|
*/
|
||||||
|
ArraySet.prototype.at = function ArraySet_at(aIdx) {
|
||||||
|
if (aIdx >= 0 && aIdx < this._array.length) {
|
||||||
|
return this._array[aIdx];
|
||||||
|
}
|
||||||
|
throw new Error('No element indexed by ' + aIdx);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the array representation of this set (which has the proper indices
|
||||||
|
* indicated by indexOf). Note that this is a copy of the internal array used
|
||||||
|
* for storing the members so that no one can mess with internal state.
|
||||||
|
*/
|
||||||
|
ArraySet.prototype.toArray = function ArraySet_toArray() {
|
||||||
|
return this._array.slice();
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.ArraySet = ArraySet;
|
140
node_modules/@babel/core/node_modules/source-map/lib/base64-vlq.js
generated
vendored
Normal file
140
node_modules/@babel/core/node_modules/source-map/lib/base64-vlq.js
generated
vendored
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
/* -*- Mode: js; js-indent-level: 2; -*- */
|
||||||
|
/*
|
||||||
|
* Copyright 2011 Mozilla Foundation and contributors
|
||||||
|
* Licensed under the New BSD license. See LICENSE or:
|
||||||
|
* http://opensource.org/licenses/BSD-3-Clause
|
||||||
|
*
|
||||||
|
* Based on the Base 64 VLQ implementation in Closure Compiler:
|
||||||
|
* https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java
|
||||||
|
*
|
||||||
|
* Copyright 2011 The Closure Compiler Authors. All rights reserved.
|
||||||
|
* 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.
|
||||||
|
* * Neither the name of Google Inc. nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived
|
||||||
|
* from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* 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 THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
var base64 = require('./base64');
|
||||||
|
|
||||||
|
// A single base 64 digit can contain 6 bits of data. For the base 64 variable
|
||||||
|
// length quantities we use in the source map spec, the first bit is the sign,
|
||||||
|
// the next four bits are the actual value, and the 6th bit is the
|
||||||
|
// continuation bit. The continuation bit tells us whether there are more
|
||||||
|
// digits in this value following this digit.
|
||||||
|
//
|
||||||
|
// Continuation
|
||||||
|
// | Sign
|
||||||
|
// | |
|
||||||
|
// V V
|
||||||
|
// 101011
|
||||||
|
|
||||||
|
var VLQ_BASE_SHIFT = 5;
|
||||||
|
|
||||||
|
// binary: 100000
|
||||||
|
var VLQ_BASE = 1 << VLQ_BASE_SHIFT;
|
||||||
|
|
||||||
|
// binary: 011111
|
||||||
|
var VLQ_BASE_MASK = VLQ_BASE - 1;
|
||||||
|
|
||||||
|
// binary: 100000
|
||||||
|
var VLQ_CONTINUATION_BIT = VLQ_BASE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts from a two-complement value to a value where the sign bit is
|
||||||
|
* placed in the least significant bit. For example, as decimals:
|
||||||
|
* 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)
|
||||||
|
* 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)
|
||||||
|
*/
|
||||||
|
function toVLQSigned(aValue) {
|
||||||
|
return aValue < 0
|
||||||
|
? ((-aValue) << 1) + 1
|
||||||
|
: (aValue << 1) + 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts to a two-complement value from a value where the sign bit is
|
||||||
|
* placed in the least significant bit. For example, as decimals:
|
||||||
|
* 2 (10 binary) becomes 1, 3 (11 binary) becomes -1
|
||||||
|
* 4 (100 binary) becomes 2, 5 (101 binary) becomes -2
|
||||||
|
*/
|
||||||
|
function fromVLQSigned(aValue) {
|
||||||
|
var isNegative = (aValue & 1) === 1;
|
||||||
|
var shifted = aValue >> 1;
|
||||||
|
return isNegative
|
||||||
|
? -shifted
|
||||||
|
: shifted;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the base 64 VLQ encoded value.
|
||||||
|
*/
|
||||||
|
exports.encode = function base64VLQ_encode(aValue) {
|
||||||
|
var encoded = "";
|
||||||
|
var digit;
|
||||||
|
|
||||||
|
var vlq = toVLQSigned(aValue);
|
||||||
|
|
||||||
|
do {
|
||||||
|
digit = vlq & VLQ_BASE_MASK;
|
||||||
|
vlq >>>= VLQ_BASE_SHIFT;
|
||||||
|
if (vlq > 0) {
|
||||||
|
// There are still more digits in this value, so we must make sure the
|
||||||
|
// continuation bit is marked.
|
||||||
|
digit |= VLQ_CONTINUATION_BIT;
|
||||||
|
}
|
||||||
|
encoded += base64.encode(digit);
|
||||||
|
} while (vlq > 0);
|
||||||
|
|
||||||
|
return encoded;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decodes the next base 64 VLQ value from the given string and returns the
|
||||||
|
* value and the rest of the string via the out parameter.
|
||||||
|
*/
|
||||||
|
exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {
|
||||||
|
var strLen = aStr.length;
|
||||||
|
var result = 0;
|
||||||
|
var shift = 0;
|
||||||
|
var continuation, digit;
|
||||||
|
|
||||||
|
do {
|
||||||
|
if (aIndex >= strLen) {
|
||||||
|
throw new Error("Expected more digits in base 64 VLQ value.");
|
||||||
|
}
|
||||||
|
|
||||||
|
digit = base64.decode(aStr.charCodeAt(aIndex++));
|
||||||
|
if (digit === -1) {
|
||||||
|
throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
continuation = !!(digit & VLQ_CONTINUATION_BIT);
|
||||||
|
digit &= VLQ_BASE_MASK;
|
||||||
|
result = result + (digit << shift);
|
||||||
|
shift += VLQ_BASE_SHIFT;
|
||||||
|
} while (continuation);
|
||||||
|
|
||||||
|
aOutParam.value = fromVLQSigned(result);
|
||||||
|
aOutParam.rest = aIndex;
|
||||||
|
};
|
67
node_modules/@babel/core/node_modules/source-map/lib/base64.js
generated
vendored
Normal file
67
node_modules/@babel/core/node_modules/source-map/lib/base64.js
generated
vendored
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
/* -*- Mode: js; js-indent-level: 2; -*- */
|
||||||
|
/*
|
||||||
|
* Copyright 2011 Mozilla Foundation and contributors
|
||||||
|
* Licensed under the New BSD license. See LICENSE or:
|
||||||
|
* http://opensource.org/licenses/BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encode an integer in the range of 0 to 63 to a single base 64 digit.
|
||||||
|
*/
|
||||||
|
exports.encode = function (number) {
|
||||||
|
if (0 <= number && number < intToCharMap.length) {
|
||||||
|
return intToCharMap[number];
|
||||||
|
}
|
||||||
|
throw new TypeError("Must be between 0 and 63: " + number);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decode a single base 64 character code digit to an integer. Returns -1 on
|
||||||
|
* failure.
|
||||||
|
*/
|
||||||
|
exports.decode = function (charCode) {
|
||||||
|
var bigA = 65; // 'A'
|
||||||
|
var bigZ = 90; // 'Z'
|
||||||
|
|
||||||
|
var littleA = 97; // 'a'
|
||||||
|
var littleZ = 122; // 'z'
|
||||||
|
|
||||||
|
var zero = 48; // '0'
|
||||||
|
var nine = 57; // '9'
|
||||||
|
|
||||||
|
var plus = 43; // '+'
|
||||||
|
var slash = 47; // '/'
|
||||||
|
|
||||||
|
var littleOffset = 26;
|
||||||
|
var numberOffset = 52;
|
||||||
|
|
||||||
|
// 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
||||||
|
if (bigA <= charCode && charCode <= bigZ) {
|
||||||
|
return (charCode - bigA);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 26 - 51: abcdefghijklmnopqrstuvwxyz
|
||||||
|
if (littleA <= charCode && charCode <= littleZ) {
|
||||||
|
return (charCode - littleA + littleOffset);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 52 - 61: 0123456789
|
||||||
|
if (zero <= charCode && charCode <= nine) {
|
||||||
|
return (charCode - zero + numberOffset);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 62: +
|
||||||
|
if (charCode == plus) {
|
||||||
|
return 62;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 63: /
|
||||||
|
if (charCode == slash) {
|
||||||
|
return 63;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Invalid base64 digit.
|
||||||
|
return -1;
|
||||||
|
};
|
111
node_modules/@babel/core/node_modules/source-map/lib/binary-search.js
generated
vendored
Normal file
111
node_modules/@babel/core/node_modules/source-map/lib/binary-search.js
generated
vendored
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
/* -*- Mode: js; js-indent-level: 2; -*- */
|
||||||
|
/*
|
||||||
|
* Copyright 2011 Mozilla Foundation and contributors
|
||||||
|
* Licensed under the New BSD license. See LICENSE or:
|
||||||
|
* http://opensource.org/licenses/BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports.GREATEST_LOWER_BOUND = 1;
|
||||||
|
exports.LEAST_UPPER_BOUND = 2;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Recursive implementation of binary search.
|
||||||
|
*
|
||||||
|
* @param aLow Indices here and lower do not contain the needle.
|
||||||
|
* @param aHigh Indices here and higher do not contain the needle.
|
||||||
|
* @param aNeedle The element being searched for.
|
||||||
|
* @param aHaystack The non-empty array being searched.
|
||||||
|
* @param aCompare Function which takes two elements and returns -1, 0, or 1.
|
||||||
|
* @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or
|
||||||
|
* 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the
|
||||||
|
* closest element that is smaller than or greater than the one we are
|
||||||
|
* searching for, respectively, if the exact element cannot be found.
|
||||||
|
*/
|
||||||
|
function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {
|
||||||
|
// This function terminates when one of the following is true:
|
||||||
|
//
|
||||||
|
// 1. We find the exact element we are looking for.
|
||||||
|
//
|
||||||
|
// 2. We did not find the exact element, but we can return the index of
|
||||||
|
// the next-closest element.
|
||||||
|
//
|
||||||
|
// 3. We did not find the exact element, and there is no next-closest
|
||||||
|
// element than the one we are searching for, so we return -1.
|
||||||
|
var mid = Math.floor((aHigh - aLow) / 2) + aLow;
|
||||||
|
var cmp = aCompare(aNeedle, aHaystack[mid], true);
|
||||||
|
if (cmp === 0) {
|
||||||
|
// Found the element we are looking for.
|
||||||
|
return mid;
|
||||||
|
}
|
||||||
|
else if (cmp > 0) {
|
||||||
|
// Our needle is greater than aHaystack[mid].
|
||||||
|
if (aHigh - mid > 1) {
|
||||||
|
// The element is in the upper half.
|
||||||
|
return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);
|
||||||
|
}
|
||||||
|
|
||||||
|
// The exact needle element was not found in this haystack. Determine if
|
||||||
|
// we are in termination case (3) or (2) and return the appropriate thing.
|
||||||
|
if (aBias == exports.LEAST_UPPER_BOUND) {
|
||||||
|
return aHigh < aHaystack.length ? aHigh : -1;
|
||||||
|
} else {
|
||||||
|
return mid;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Our needle is less than aHaystack[mid].
|
||||||
|
if (mid - aLow > 1) {
|
||||||
|
// The element is in the lower half.
|
||||||
|
return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);
|
||||||
|
}
|
||||||
|
|
||||||
|
// we are in termination case (3) or (2) and return the appropriate thing.
|
||||||
|
if (aBias == exports.LEAST_UPPER_BOUND) {
|
||||||
|
return mid;
|
||||||
|
} else {
|
||||||
|
return aLow < 0 ? -1 : aLow;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is an implementation of binary search which will always try and return
|
||||||
|
* the index of the closest element if there is no exact hit. This is because
|
||||||
|
* mappings between original and generated line/col pairs are single points,
|
||||||
|
* and there is an implicit region between each of them, so a miss just means
|
||||||
|
* that you aren't on the very start of a region.
|
||||||
|
*
|
||||||
|
* @param aNeedle The element you are looking for.
|
||||||
|
* @param aHaystack The array that is being searched.
|
||||||
|
* @param aCompare A function which takes the needle and an element in the
|
||||||
|
* array and returns -1, 0, or 1 depending on whether the needle is less
|
||||||
|
* than, equal to, or greater than the element, respectively.
|
||||||
|
* @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or
|
||||||
|
* 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the
|
||||||
|
* closest element that is smaller than or greater than the one we are
|
||||||
|
* searching for, respectively, if the exact element cannot be found.
|
||||||
|
* Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.
|
||||||
|
*/
|
||||||
|
exports.search = function search(aNeedle, aHaystack, aCompare, aBias) {
|
||||||
|
if (aHaystack.length === 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,
|
||||||
|
aCompare, aBias || exports.GREATEST_LOWER_BOUND);
|
||||||
|
if (index < 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// We have found either the exact element, or the next-closest element than
|
||||||
|
// the one we are searching for. However, there may be more than one such
|
||||||
|
// element. Make sure we always return the smallest of these.
|
||||||
|
while (index - 1 >= 0) {
|
||||||
|
if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
--index;
|
||||||
|
}
|
||||||
|
|
||||||
|
return index;
|
||||||
|
};
|
79
node_modules/@babel/core/node_modules/source-map/lib/mapping-list.js
generated
vendored
Normal file
79
node_modules/@babel/core/node_modules/source-map/lib/mapping-list.js
generated
vendored
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
/* -*- Mode: js; js-indent-level: 2; -*- */
|
||||||
|
/*
|
||||||
|
* Copyright 2014 Mozilla Foundation and contributors
|
||||||
|
* Licensed under the New BSD license. See LICENSE or:
|
||||||
|
* http://opensource.org/licenses/BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
var util = require('./util');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine whether mappingB is after mappingA with respect to generated
|
||||||
|
* position.
|
||||||
|
*/
|
||||||
|
function generatedPositionAfter(mappingA, mappingB) {
|
||||||
|
// Optimized for most common case
|
||||||
|
var lineA = mappingA.generatedLine;
|
||||||
|
var lineB = mappingB.generatedLine;
|
||||||
|
var columnA = mappingA.generatedColumn;
|
||||||
|
var columnB = mappingB.generatedColumn;
|
||||||
|
return lineB > lineA || lineB == lineA && columnB >= columnA ||
|
||||||
|
util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A data structure to provide a sorted view of accumulated mappings in a
|
||||||
|
* performance conscious manner. It trades a neglibable overhead in general
|
||||||
|
* case for a large speedup in case of mappings being added in order.
|
||||||
|
*/
|
||||||
|
function MappingList() {
|
||||||
|
this._array = [];
|
||||||
|
this._sorted = true;
|
||||||
|
// Serves as infimum
|
||||||
|
this._last = {generatedLine: -1, generatedColumn: 0};
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Iterate through internal items. This method takes the same arguments that
|
||||||
|
* `Array.prototype.forEach` takes.
|
||||||
|
*
|
||||||
|
* NOTE: The order of the mappings is NOT guaranteed.
|
||||||
|
*/
|
||||||
|
MappingList.prototype.unsortedForEach =
|
||||||
|
function MappingList_forEach(aCallback, aThisArg) {
|
||||||
|
this._array.forEach(aCallback, aThisArg);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the given source mapping.
|
||||||
|
*
|
||||||
|
* @param Object aMapping
|
||||||
|
*/
|
||||||
|
MappingList.prototype.add = function MappingList_add(aMapping) {
|
||||||
|
if (generatedPositionAfter(this._last, aMapping)) {
|
||||||
|
this._last = aMapping;
|
||||||
|
this._array.push(aMapping);
|
||||||
|
} else {
|
||||||
|
this._sorted = false;
|
||||||
|
this._array.push(aMapping);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the flat, sorted array of mappings. The mappings are sorted by
|
||||||
|
* generated position.
|
||||||
|
*
|
||||||
|
* WARNING: This method returns internal data without copying, for
|
||||||
|
* performance. The return value must NOT be mutated, and should be treated as
|
||||||
|
* an immutable borrow. If you want to take ownership, you must make your own
|
||||||
|
* copy.
|
||||||
|
*/
|
||||||
|
MappingList.prototype.toArray = function MappingList_toArray() {
|
||||||
|
if (!this._sorted) {
|
||||||
|
this._array.sort(util.compareByGeneratedPositionsInflated);
|
||||||
|
this._sorted = true;
|
||||||
|
}
|
||||||
|
return this._array;
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.MappingList = MappingList;
|
114
node_modules/@babel/core/node_modules/source-map/lib/quick-sort.js
generated
vendored
Normal file
114
node_modules/@babel/core/node_modules/source-map/lib/quick-sort.js
generated
vendored
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
/* -*- Mode: js; js-indent-level: 2; -*- */
|
||||||
|
/*
|
||||||
|
* Copyright 2011 Mozilla Foundation and contributors
|
||||||
|
* Licensed under the New BSD license. See LICENSE or:
|
||||||
|
* http://opensource.org/licenses/BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
// It turns out that some (most?) JavaScript engines don't self-host
|
||||||
|
// `Array.prototype.sort`. This makes sense because C++ will likely remain
|
||||||
|
// faster than JS when doing raw CPU-intensive sorting. However, when using a
|
||||||
|
// custom comparator function, calling back and forth between the VM's C++ and
|
||||||
|
// JIT'd JS is rather slow *and* loses JIT type information, resulting in
|
||||||
|
// worse generated code for the comparator function than would be optimal. In
|
||||||
|
// fact, when sorting with a comparator, these costs outweigh the benefits of
|
||||||
|
// sorting in C++. By using our own JS-implemented Quick Sort (below), we get
|
||||||
|
// a ~3500ms mean speed-up in `bench/bench.html`.
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Swap the elements indexed by `x` and `y` in the array `ary`.
|
||||||
|
*
|
||||||
|
* @param {Array} ary
|
||||||
|
* The array.
|
||||||
|
* @param {Number} x
|
||||||
|
* The index of the first item.
|
||||||
|
* @param {Number} y
|
||||||
|
* The index of the second item.
|
||||||
|
*/
|
||||||
|
function swap(ary, x, y) {
|
||||||
|
var temp = ary[x];
|
||||||
|
ary[x] = ary[y];
|
||||||
|
ary[y] = temp;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a random integer within the range `low .. high` inclusive.
|
||||||
|
*
|
||||||
|
* @param {Number} low
|
||||||
|
* The lower bound on the range.
|
||||||
|
* @param {Number} high
|
||||||
|
* The upper bound on the range.
|
||||||
|
*/
|
||||||
|
function randomIntInRange(low, high) {
|
||||||
|
return Math.round(low + (Math.random() * (high - low)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Quick Sort algorithm.
|
||||||
|
*
|
||||||
|
* @param {Array} ary
|
||||||
|
* An array to sort.
|
||||||
|
* @param {function} comparator
|
||||||
|
* Function to use to compare two items.
|
||||||
|
* @param {Number} p
|
||||||
|
* Start index of the array
|
||||||
|
* @param {Number} r
|
||||||
|
* End index of the array
|
||||||
|
*/
|
||||||
|
function doQuickSort(ary, comparator, p, r) {
|
||||||
|
// If our lower bound is less than our upper bound, we (1) partition the
|
||||||
|
// array into two pieces and (2) recurse on each half. If it is not, this is
|
||||||
|
// the empty array and our base case.
|
||||||
|
|
||||||
|
if (p < r) {
|
||||||
|
// (1) Partitioning.
|
||||||
|
//
|
||||||
|
// The partitioning chooses a pivot between `p` and `r` and moves all
|
||||||
|
// elements that are less than or equal to the pivot to the before it, and
|
||||||
|
// all the elements that are greater than it after it. The effect is that
|
||||||
|
// once partition is done, the pivot is in the exact place it will be when
|
||||||
|
// the array is put in sorted order, and it will not need to be moved
|
||||||
|
// again. This runs in O(n) time.
|
||||||
|
|
||||||
|
// Always choose a random pivot so that an input array which is reverse
|
||||||
|
// sorted does not cause O(n^2) running time.
|
||||||
|
var pivotIndex = randomIntInRange(p, r);
|
||||||
|
var i = p - 1;
|
||||||
|
|
||||||
|
swap(ary, pivotIndex, r);
|
||||||
|
var pivot = ary[r];
|
||||||
|
|
||||||
|
// Immediately after `j` is incremented in this loop, the following hold
|
||||||
|
// true:
|
||||||
|
//
|
||||||
|
// * Every element in `ary[p .. i]` is less than or equal to the pivot.
|
||||||
|
//
|
||||||
|
// * Every element in `ary[i+1 .. j-1]` is greater than the pivot.
|
||||||
|
for (var j = p; j < r; j++) {
|
||||||
|
if (comparator(ary[j], pivot) <= 0) {
|
||||||
|
i += 1;
|
||||||
|
swap(ary, i, j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
swap(ary, i + 1, j);
|
||||||
|
var q = i + 1;
|
||||||
|
|
||||||
|
// (2) Recurse on each half.
|
||||||
|
|
||||||
|
doQuickSort(ary, comparator, p, q - 1);
|
||||||
|
doQuickSort(ary, comparator, q + 1, r);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sort the given array in-place with the given comparator function.
|
||||||
|
*
|
||||||
|
* @param {Array} ary
|
||||||
|
* An array to sort.
|
||||||
|
* @param {function} comparator
|
||||||
|
* Function to use to compare two items.
|
||||||
|
*/
|
||||||
|
exports.quickSort = function (ary, comparator) {
|
||||||
|
doQuickSort(ary, comparator, 0, ary.length - 1);
|
||||||
|
};
|
1082
node_modules/@babel/core/node_modules/source-map/lib/source-map-consumer.js
generated
vendored
Normal file
1082
node_modules/@babel/core/node_modules/source-map/lib/source-map-consumer.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
416
node_modules/@babel/core/node_modules/source-map/lib/source-map-generator.js
generated
vendored
Normal file
416
node_modules/@babel/core/node_modules/source-map/lib/source-map-generator.js
generated
vendored
Normal file
@ -0,0 +1,416 @@
|
|||||||
|
/* -*- Mode: js; js-indent-level: 2; -*- */
|
||||||
|
/*
|
||||||
|
* Copyright 2011 Mozilla Foundation and contributors
|
||||||
|
* Licensed under the New BSD license. See LICENSE or:
|
||||||
|
* http://opensource.org/licenses/BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
var base64VLQ = require('./base64-vlq');
|
||||||
|
var util = require('./util');
|
||||||
|
var ArraySet = require('./array-set').ArraySet;
|
||||||
|
var MappingList = require('./mapping-list').MappingList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An instance of the SourceMapGenerator represents a source map which is
|
||||||
|
* being built incrementally. You may pass an object with the following
|
||||||
|
* properties:
|
||||||
|
*
|
||||||
|
* - file: The filename of the generated source.
|
||||||
|
* - sourceRoot: A root for all relative URLs in this source map.
|
||||||
|
*/
|
||||||
|
function SourceMapGenerator(aArgs) {
|
||||||
|
if (!aArgs) {
|
||||||
|
aArgs = {};
|
||||||
|
}
|
||||||
|
this._file = util.getArg(aArgs, 'file', null);
|
||||||
|
this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);
|
||||||
|
this._skipValidation = util.getArg(aArgs, 'skipValidation', false);
|
||||||
|
this._sources = new ArraySet();
|
||||||
|
this._names = new ArraySet();
|
||||||
|
this._mappings = new MappingList();
|
||||||
|
this._sourcesContents = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
SourceMapGenerator.prototype._version = 3;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new SourceMapGenerator based on a SourceMapConsumer
|
||||||
|
*
|
||||||
|
* @param aSourceMapConsumer The SourceMap.
|
||||||
|
*/
|
||||||
|
SourceMapGenerator.fromSourceMap =
|
||||||
|
function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {
|
||||||
|
var sourceRoot = aSourceMapConsumer.sourceRoot;
|
||||||
|
var generator = new SourceMapGenerator({
|
||||||
|
file: aSourceMapConsumer.file,
|
||||||
|
sourceRoot: sourceRoot
|
||||||
|
});
|
||||||
|
aSourceMapConsumer.eachMapping(function (mapping) {
|
||||||
|
var newMapping = {
|
||||||
|
generated: {
|
||||||
|
line: mapping.generatedLine,
|
||||||
|
column: mapping.generatedColumn
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
if (mapping.source != null) {
|
||||||
|
newMapping.source = mapping.source;
|
||||||
|
if (sourceRoot != null) {
|
||||||
|
newMapping.source = util.relative(sourceRoot, newMapping.source);
|
||||||
|
}
|
||||||
|
|
||||||
|
newMapping.original = {
|
||||||
|
line: mapping.originalLine,
|
||||||
|
column: mapping.originalColumn
|
||||||
|
};
|
||||||
|
|
||||||
|
if (mapping.name != null) {
|
||||||
|
newMapping.name = mapping.name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
generator.addMapping(newMapping);
|
||||||
|
});
|
||||||
|
aSourceMapConsumer.sources.forEach(function (sourceFile) {
|
||||||
|
var content = aSourceMapConsumer.sourceContentFor(sourceFile);
|
||||||
|
if (content != null) {
|
||||||
|
generator.setSourceContent(sourceFile, content);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return generator;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a single mapping from original source line and column to the generated
|
||||||
|
* source's line and column for this source map being created. The mapping
|
||||||
|
* object should have the following properties:
|
||||||
|
*
|
||||||
|
* - generated: An object with the generated line and column positions.
|
||||||
|
* - original: An object with the original line and column positions.
|
||||||
|
* - source: The original source file (relative to the sourceRoot).
|
||||||
|
* - name: An optional original token name for this mapping.
|
||||||
|
*/
|
||||||
|
SourceMapGenerator.prototype.addMapping =
|
||||||
|
function SourceMapGenerator_addMapping(aArgs) {
|
||||||
|
var generated = util.getArg(aArgs, 'generated');
|
||||||
|
var original = util.getArg(aArgs, 'original', null);
|
||||||
|
var source = util.getArg(aArgs, 'source', null);
|
||||||
|
var name = util.getArg(aArgs, 'name', null);
|
||||||
|
|
||||||
|
if (!this._skipValidation) {
|
||||||
|
this._validateMapping(generated, original, source, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (source != null) {
|
||||||
|
source = String(source);
|
||||||
|
if (!this._sources.has(source)) {
|
||||||
|
this._sources.add(source);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (name != null) {
|
||||||
|
name = String(name);
|
||||||
|
if (!this._names.has(name)) {
|
||||||
|
this._names.add(name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this._mappings.add({
|
||||||
|
generatedLine: generated.line,
|
||||||
|
generatedColumn: generated.column,
|
||||||
|
originalLine: original != null && original.line,
|
||||||
|
originalColumn: original != null && original.column,
|
||||||
|
source: source,
|
||||||
|
name: name
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the source content for a source file.
|
||||||
|
*/
|
||||||
|
SourceMapGenerator.prototype.setSourceContent =
|
||||||
|
function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {
|
||||||
|
var source = aSourceFile;
|
||||||
|
if (this._sourceRoot != null) {
|
||||||
|
source = util.relative(this._sourceRoot, source);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (aSourceContent != null) {
|
||||||
|
// Add the source content to the _sourcesContents map.
|
||||||
|
// Create a new _sourcesContents map if the property is null.
|
||||||
|
if (!this._sourcesContents) {
|
||||||
|
this._sourcesContents = Object.create(null);
|
||||||
|
}
|
||||||
|
this._sourcesContents[util.toSetString(source)] = aSourceContent;
|
||||||
|
} else if (this._sourcesContents) {
|
||||||
|
// Remove the source file from the _sourcesContents map.
|
||||||
|
// If the _sourcesContents map is empty, set the property to null.
|
||||||
|
delete this._sourcesContents[util.toSetString(source)];
|
||||||
|
if (Object.keys(this._sourcesContents).length === 0) {
|
||||||
|
this._sourcesContents = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Applies the mappings of a sub-source-map for a specific source file to the
|
||||||
|
* source map being generated. Each mapping to the supplied source file is
|
||||||
|
* rewritten using the supplied source map. Note: The resolution for the
|
||||||
|
* resulting mappings is the minimium of this map and the supplied map.
|
||||||
|
*
|
||||||
|
* @param aSourceMapConsumer The source map to be applied.
|
||||||
|
* @param aSourceFile Optional. The filename of the source file.
|
||||||
|
* If omitted, SourceMapConsumer's file property will be used.
|
||||||
|
* @param aSourceMapPath Optional. The dirname of the path to the source map
|
||||||
|
* to be applied. If relative, it is relative to the SourceMapConsumer.
|
||||||
|
* This parameter is needed when the two source maps aren't in the same
|
||||||
|
* directory, and the source map to be applied contains relative source
|
||||||
|
* paths. If so, those relative source paths need to be rewritten
|
||||||
|
* relative to the SourceMapGenerator.
|
||||||
|
*/
|
||||||
|
SourceMapGenerator.prototype.applySourceMap =
|
||||||
|
function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {
|
||||||
|
var sourceFile = aSourceFile;
|
||||||
|
// If aSourceFile is omitted, we will use the file property of the SourceMap
|
||||||
|
if (aSourceFile == null) {
|
||||||
|
if (aSourceMapConsumer.file == null) {
|
||||||
|
throw new Error(
|
||||||
|
'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +
|
||||||
|
'or the source map\'s "file" property. Both were omitted.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
sourceFile = aSourceMapConsumer.file;
|
||||||
|
}
|
||||||
|
var sourceRoot = this._sourceRoot;
|
||||||
|
// Make "sourceFile" relative if an absolute Url is passed.
|
||||||
|
if (sourceRoot != null) {
|
||||||
|
sourceFile = util.relative(sourceRoot, sourceFile);
|
||||||
|
}
|
||||||
|
// Applying the SourceMap can add and remove items from the sources and
|
||||||
|
// the names array.
|
||||||
|
var newSources = new ArraySet();
|
||||||
|
var newNames = new ArraySet();
|
||||||
|
|
||||||
|
// Find mappings for the "sourceFile"
|
||||||
|
this._mappings.unsortedForEach(function (mapping) {
|
||||||
|
if (mapping.source === sourceFile && mapping.originalLine != null) {
|
||||||
|
// Check if it can be mapped by the source map, then update the mapping.
|
||||||
|
var original = aSourceMapConsumer.originalPositionFor({
|
||||||
|
line: mapping.originalLine,
|
||||||
|
column: mapping.originalColumn
|
||||||
|
});
|
||||||
|
if (original.source != null) {
|
||||||
|
// Copy mapping
|
||||||
|
mapping.source = original.source;
|
||||||
|
if (aSourceMapPath != null) {
|
||||||
|
mapping.source = util.join(aSourceMapPath, mapping.source)
|
||||||
|
}
|
||||||
|
if (sourceRoot != null) {
|
||||||
|
mapping.source = util.relative(sourceRoot, mapping.source);
|
||||||
|
}
|
||||||
|
mapping.originalLine = original.line;
|
||||||
|
mapping.originalColumn = original.column;
|
||||||
|
if (original.name != null) {
|
||||||
|
mapping.name = original.name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var source = mapping.source;
|
||||||
|
if (source != null && !newSources.has(source)) {
|
||||||
|
newSources.add(source);
|
||||||
|
}
|
||||||
|
|
||||||
|
var name = mapping.name;
|
||||||
|
if (name != null && !newNames.has(name)) {
|
||||||
|
newNames.add(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
}, this);
|
||||||
|
this._sources = newSources;
|
||||||
|
this._names = newNames;
|
||||||
|
|
||||||
|
// Copy sourcesContents of applied map.
|
||||||
|
aSourceMapConsumer.sources.forEach(function (sourceFile) {
|
||||||
|
var content = aSourceMapConsumer.sourceContentFor(sourceFile);
|
||||||
|
if (content != null) {
|
||||||
|
if (aSourceMapPath != null) {
|
||||||
|
sourceFile = util.join(aSourceMapPath, sourceFile);
|
||||||
|
}
|
||||||
|
if (sourceRoot != null) {
|
||||||
|
sourceFile = util.relative(sourceRoot, sourceFile);
|
||||||
|
}
|
||||||
|
this.setSourceContent(sourceFile, content);
|
||||||
|
}
|
||||||
|
}, this);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A mapping can have one of the three levels of data:
|
||||||
|
*
|
||||||
|
* 1. Just the generated position.
|
||||||
|
* 2. The Generated position, original position, and original source.
|
||||||
|
* 3. Generated and original position, original source, as well as a name
|
||||||
|
* token.
|
||||||
|
*
|
||||||
|
* To maintain consistency, we validate that any new mapping being added falls
|
||||||
|
* in to one of these categories.
|
||||||
|
*/
|
||||||
|
SourceMapGenerator.prototype._validateMapping =
|
||||||
|
function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,
|
||||||
|
aName) {
|
||||||
|
// When aOriginal is truthy but has empty values for .line and .column,
|
||||||
|
// it is most likely a programmer error. In this case we throw a very
|
||||||
|
// specific error message to try to guide them the right way.
|
||||||
|
// For example: https://github.com/Polymer/polymer-bundler/pull/519
|
||||||
|
if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {
|
||||||
|
throw new Error(
|
||||||
|
'original.line and original.column are not numbers -- you probably meant to omit ' +
|
||||||
|
'the original mapping entirely and only map the generated position. If so, pass ' +
|
||||||
|
'null for the original mapping instead of an object with empty or null values.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (aGenerated && 'line' in aGenerated && 'column' in aGenerated
|
||||||
|
&& aGenerated.line > 0 && aGenerated.column >= 0
|
||||||
|
&& !aOriginal && !aSource && !aName) {
|
||||||
|
// Case 1.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated
|
||||||
|
&& aOriginal && 'line' in aOriginal && 'column' in aOriginal
|
||||||
|
&& aGenerated.line > 0 && aGenerated.column >= 0
|
||||||
|
&& aOriginal.line > 0 && aOriginal.column >= 0
|
||||||
|
&& aSource) {
|
||||||
|
// Cases 2 and 3.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
throw new Error('Invalid mapping: ' + JSON.stringify({
|
||||||
|
generated: aGenerated,
|
||||||
|
source: aSource,
|
||||||
|
original: aOriginal,
|
||||||
|
name: aName
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Serialize the accumulated mappings in to the stream of base 64 VLQs
|
||||||
|
* specified by the source map format.
|
||||||
|
*/
|
||||||
|
SourceMapGenerator.prototype._serializeMappings =
|
||||||
|
function SourceMapGenerator_serializeMappings() {
|
||||||
|
var previousGeneratedColumn = 0;
|
||||||
|
var previousGeneratedLine = 1;
|
||||||
|
var previousOriginalColumn = 0;
|
||||||
|
var previousOriginalLine = 0;
|
||||||
|
var previousName = 0;
|
||||||
|
var previousSource = 0;
|
||||||
|
var result = '';
|
||||||
|
var next;
|
||||||
|
var mapping;
|
||||||
|
var nameIdx;
|
||||||
|
var sourceIdx;
|
||||||
|
|
||||||
|
var mappings = this._mappings.toArray();
|
||||||
|
for (var i = 0, len = mappings.length; i < len; i++) {
|
||||||
|
mapping = mappings[i];
|
||||||
|
next = ''
|
||||||
|
|
||||||
|
if (mapping.generatedLine !== previousGeneratedLine) {
|
||||||
|
previousGeneratedColumn = 0;
|
||||||
|
while (mapping.generatedLine !== previousGeneratedLine) {
|
||||||
|
next += ';';
|
||||||
|
previousGeneratedLine++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (i > 0) {
|
||||||
|
if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
next += ',';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
next += base64VLQ.encode(mapping.generatedColumn
|
||||||
|
- previousGeneratedColumn);
|
||||||
|
previousGeneratedColumn = mapping.generatedColumn;
|
||||||
|
|
||||||
|
if (mapping.source != null) {
|
||||||
|
sourceIdx = this._sources.indexOf(mapping.source);
|
||||||
|
next += base64VLQ.encode(sourceIdx - previousSource);
|
||||||
|
previousSource = sourceIdx;
|
||||||
|
|
||||||
|
// lines are stored 0-based in SourceMap spec version 3
|
||||||
|
next += base64VLQ.encode(mapping.originalLine - 1
|
||||||
|
- previousOriginalLine);
|
||||||
|
previousOriginalLine = mapping.originalLine - 1;
|
||||||
|
|
||||||
|
next += base64VLQ.encode(mapping.originalColumn
|
||||||
|
- previousOriginalColumn);
|
||||||
|
previousOriginalColumn = mapping.originalColumn;
|
||||||
|
|
||||||
|
if (mapping.name != null) {
|
||||||
|
nameIdx = this._names.indexOf(mapping.name);
|
||||||
|
next += base64VLQ.encode(nameIdx - previousName);
|
||||||
|
previousName = nameIdx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
result += next;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
|
||||||
|
SourceMapGenerator.prototype._generateSourcesContent =
|
||||||
|
function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {
|
||||||
|
return aSources.map(function (source) {
|
||||||
|
if (!this._sourcesContents) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (aSourceRoot != null) {
|
||||||
|
source = util.relative(aSourceRoot, source);
|
||||||
|
}
|
||||||
|
var key = util.toSetString(source);
|
||||||
|
return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)
|
||||||
|
? this._sourcesContents[key]
|
||||||
|
: null;
|
||||||
|
}, this);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Externalize the source map.
|
||||||
|
*/
|
||||||
|
SourceMapGenerator.prototype.toJSON =
|
||||||
|
function SourceMapGenerator_toJSON() {
|
||||||
|
var map = {
|
||||||
|
version: this._version,
|
||||||
|
sources: this._sources.toArray(),
|
||||||
|
names: this._names.toArray(),
|
||||||
|
mappings: this._serializeMappings()
|
||||||
|
};
|
||||||
|
if (this._file != null) {
|
||||||
|
map.file = this._file;
|
||||||
|
}
|
||||||
|
if (this._sourceRoot != null) {
|
||||||
|
map.sourceRoot = this._sourceRoot;
|
||||||
|
}
|
||||||
|
if (this._sourcesContents) {
|
||||||
|
map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);
|
||||||
|
}
|
||||||
|
|
||||||
|
return map;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Render the source map being generated to a string.
|
||||||
|
*/
|
||||||
|
SourceMapGenerator.prototype.toString =
|
||||||
|
function SourceMapGenerator_toString() {
|
||||||
|
return JSON.stringify(this.toJSON());
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.SourceMapGenerator = SourceMapGenerator;
|
413
node_modules/@babel/core/node_modules/source-map/lib/source-node.js
generated
vendored
Normal file
413
node_modules/@babel/core/node_modules/source-map/lib/source-node.js
generated
vendored
Normal file
@ -0,0 +1,413 @@
|
|||||||
|
/* -*- Mode: js; js-indent-level: 2; -*- */
|
||||||
|
/*
|
||||||
|
* Copyright 2011 Mozilla Foundation and contributors
|
||||||
|
* Licensed under the New BSD license. See LICENSE or:
|
||||||
|
* http://opensource.org/licenses/BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
var SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;
|
||||||
|
var util = require('./util');
|
||||||
|
|
||||||
|
// Matches a Windows-style `\r\n` newline or a `\n` newline used by all other
|
||||||
|
// operating systems these days (capturing the result).
|
||||||
|
var REGEX_NEWLINE = /(\r?\n)/;
|
||||||
|
|
||||||
|
// Newline character code for charCodeAt() comparisons
|
||||||
|
var NEWLINE_CODE = 10;
|
||||||
|
|
||||||
|
// Private symbol for identifying `SourceNode`s when multiple versions of
|
||||||
|
// the source-map library are loaded. This MUST NOT CHANGE across
|
||||||
|
// versions!
|
||||||
|
var isSourceNode = "$$$isSourceNode$$$";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SourceNodes provide a way to abstract over interpolating/concatenating
|
||||||
|
* snippets of generated JavaScript source code while maintaining the line and
|
||||||
|
* column information associated with the original source code.
|
||||||
|
*
|
||||||
|
* @param aLine The original line number.
|
||||||
|
* @param aColumn The original column number.
|
||||||
|
* @param aSource The original source's filename.
|
||||||
|
* @param aChunks Optional. An array of strings which are snippets of
|
||||||
|
* generated JS, or other SourceNodes.
|
||||||
|
* @param aName The original identifier.
|
||||||
|
*/
|
||||||
|
function SourceNode(aLine, aColumn, aSource, aChunks, aName) {
|
||||||
|
this.children = [];
|
||||||
|
this.sourceContents = {};
|
||||||
|
this.line = aLine == null ? null : aLine;
|
||||||
|
this.column = aColumn == null ? null : aColumn;
|
||||||
|
this.source = aSource == null ? null : aSource;
|
||||||
|
this.name = aName == null ? null : aName;
|
||||||
|
this[isSourceNode] = true;
|
||||||
|
if (aChunks != null) this.add(aChunks);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a SourceNode from generated code and a SourceMapConsumer.
|
||||||
|
*
|
||||||
|
* @param aGeneratedCode The generated code
|
||||||
|
* @param aSourceMapConsumer The SourceMap for the generated code
|
||||||
|
* @param aRelativePath Optional. The path that relative sources in the
|
||||||
|
* SourceMapConsumer should be relative to.
|
||||||
|
*/
|
||||||
|
SourceNode.fromStringWithSourceMap =
|
||||||
|
function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {
|
||||||
|
// The SourceNode we want to fill with the generated code
|
||||||
|
// and the SourceMap
|
||||||
|
var node = new SourceNode();
|
||||||
|
|
||||||
|
// All even indices of this array are one line of the generated code,
|
||||||
|
// while all odd indices are the newlines between two adjacent lines
|
||||||
|
// (since `REGEX_NEWLINE` captures its match).
|
||||||
|
// Processed fragments are accessed by calling `shiftNextLine`.
|
||||||
|
var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);
|
||||||
|
var remainingLinesIndex = 0;
|
||||||
|
var shiftNextLine = function() {
|
||||||
|
var lineContents = getNextLine();
|
||||||
|
// The last line of a file might not have a newline.
|
||||||
|
var newLine = getNextLine() || "";
|
||||||
|
return lineContents + newLine;
|
||||||
|
|
||||||
|
function getNextLine() {
|
||||||
|
return remainingLinesIndex < remainingLines.length ?
|
||||||
|
remainingLines[remainingLinesIndex++] : undefined;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// We need to remember the position of "remainingLines"
|
||||||
|
var lastGeneratedLine = 1, lastGeneratedColumn = 0;
|
||||||
|
|
||||||
|
// The generate SourceNodes we need a code range.
|
||||||
|
// To extract it current and last mapping is used.
|
||||||
|
// Here we store the last mapping.
|
||||||
|
var lastMapping = null;
|
||||||
|
|
||||||
|
aSourceMapConsumer.eachMapping(function (mapping) {
|
||||||
|
if (lastMapping !== null) {
|
||||||
|
// We add the code from "lastMapping" to "mapping":
|
||||||
|
// First check if there is a new line in between.
|
||||||
|
if (lastGeneratedLine < mapping.generatedLine) {
|
||||||
|
// Associate first line with "lastMapping"
|
||||||
|
addMappingWithCode(lastMapping, shiftNextLine());
|
||||||
|
lastGeneratedLine++;
|
||||||
|
lastGeneratedColumn = 0;
|
||||||
|
// The remaining code is added without mapping
|
||||||
|
} else {
|
||||||
|
// There is no new line in between.
|
||||||
|
// Associate the code between "lastGeneratedColumn" and
|
||||||
|
// "mapping.generatedColumn" with "lastMapping"
|
||||||
|
var nextLine = remainingLines[remainingLinesIndex];
|
||||||
|
var code = nextLine.substr(0, mapping.generatedColumn -
|
||||||
|
lastGeneratedColumn);
|
||||||
|
remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -
|
||||||
|
lastGeneratedColumn);
|
||||||
|
lastGeneratedColumn = mapping.generatedColumn;
|
||||||
|
addMappingWithCode(lastMapping, code);
|
||||||
|
// No more remaining code, continue
|
||||||
|
lastMapping = mapping;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// We add the generated code until the first mapping
|
||||||
|
// to the SourceNode without any mapping.
|
||||||
|
// Each line is added as separate string.
|
||||||
|
while (lastGeneratedLine < mapping.generatedLine) {
|
||||||
|
node.add(shiftNextLine());
|
||||||
|
lastGeneratedLine++;
|
||||||
|
}
|
||||||
|
if (lastGeneratedColumn < mapping.generatedColumn) {
|
||||||
|
var nextLine = remainingLines[remainingLinesIndex];
|
||||||
|
node.add(nextLine.substr(0, mapping.generatedColumn));
|
||||||
|
remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);
|
||||||
|
lastGeneratedColumn = mapping.generatedColumn;
|
||||||
|
}
|
||||||
|
lastMapping = mapping;
|
||||||
|
}, this);
|
||||||
|
// We have processed all mappings.
|
||||||
|
if (remainingLinesIndex < remainingLines.length) {
|
||||||
|
if (lastMapping) {
|
||||||
|
// Associate the remaining code in the current line with "lastMapping"
|
||||||
|
addMappingWithCode(lastMapping, shiftNextLine());
|
||||||
|
}
|
||||||
|
// and add the remaining lines without any mapping
|
||||||
|
node.add(remainingLines.splice(remainingLinesIndex).join(""));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Copy sourcesContent into SourceNode
|
||||||
|
aSourceMapConsumer.sources.forEach(function (sourceFile) {
|
||||||
|
var content = aSourceMapConsumer.sourceContentFor(sourceFile);
|
||||||
|
if (content != null) {
|
||||||
|
if (aRelativePath != null) {
|
||||||
|
sourceFile = util.join(aRelativePath, sourceFile);
|
||||||
|
}
|
||||||
|
node.setSourceContent(sourceFile, content);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return node;
|
||||||
|
|
||||||
|
function addMappingWithCode(mapping, code) {
|
||||||
|
if (mapping === null || mapping.source === undefined) {
|
||||||
|
node.add(code);
|
||||||
|
} else {
|
||||||
|
var source = aRelativePath
|
||||||
|
? util.join(aRelativePath, mapping.source)
|
||||||
|
: mapping.source;
|
||||||
|
node.add(new SourceNode(mapping.originalLine,
|
||||||
|
mapping.originalColumn,
|
||||||
|
source,
|
||||||
|
code,
|
||||||
|
mapping.name));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a chunk of generated JS to this source node.
|
||||||
|
*
|
||||||
|
* @param aChunk A string snippet of generated JS code, another instance of
|
||||||
|
* SourceNode, or an array where each member is one of those things.
|
||||||
|
*/
|
||||||
|
SourceNode.prototype.add = function SourceNode_add(aChunk) {
|
||||||
|
if (Array.isArray(aChunk)) {
|
||||||
|
aChunk.forEach(function (chunk) {
|
||||||
|
this.add(chunk);
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
else if (aChunk[isSourceNode] || typeof aChunk === "string") {
|
||||||
|
if (aChunk) {
|
||||||
|
this.children.push(aChunk);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
throw new TypeError(
|
||||||
|
"Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a chunk of generated JS to the beginning of this source node.
|
||||||
|
*
|
||||||
|
* @param aChunk A string snippet of generated JS code, another instance of
|
||||||
|
* SourceNode, or an array where each member is one of those things.
|
||||||
|
*/
|
||||||
|
SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {
|
||||||
|
if (Array.isArray(aChunk)) {
|
||||||
|
for (var i = aChunk.length-1; i >= 0; i--) {
|
||||||
|
this.prepend(aChunk[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (aChunk[isSourceNode] || typeof aChunk === "string") {
|
||||||
|
this.children.unshift(aChunk);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
throw new TypeError(
|
||||||
|
"Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Walk over the tree of JS snippets in this node and its children. The
|
||||||
|
* walking function is called once for each snippet of JS and is passed that
|
||||||
|
* snippet and the its original associated source's line/column location.
|
||||||
|
*
|
||||||
|
* @param aFn The traversal function.
|
||||||
|
*/
|
||||||
|
SourceNode.prototype.walk = function SourceNode_walk(aFn) {
|
||||||
|
var chunk;
|
||||||
|
for (var i = 0, len = this.children.length; i < len; i++) {
|
||||||
|
chunk = this.children[i];
|
||||||
|
if (chunk[isSourceNode]) {
|
||||||
|
chunk.walk(aFn);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (chunk !== '') {
|
||||||
|
aFn(chunk, { source: this.source,
|
||||||
|
line: this.line,
|
||||||
|
column: this.column,
|
||||||
|
name: this.name });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between
|
||||||
|
* each of `this.children`.
|
||||||
|
*
|
||||||
|
* @param aSep The separator.
|
||||||
|
*/
|
||||||
|
SourceNode.prototype.join = function SourceNode_join(aSep) {
|
||||||
|
var newChildren;
|
||||||
|
var i;
|
||||||
|
var len = this.children.length;
|
||||||
|
if (len > 0) {
|
||||||
|
newChildren = [];
|
||||||
|
for (i = 0; i < len-1; i++) {
|
||||||
|
newChildren.push(this.children[i]);
|
||||||
|
newChildren.push(aSep);
|
||||||
|
}
|
||||||
|
newChildren.push(this.children[i]);
|
||||||
|
this.children = newChildren;
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Call String.prototype.replace on the very right-most source snippet. Useful
|
||||||
|
* for trimming whitespace from the end of a source node, etc.
|
||||||
|
*
|
||||||
|
* @param aPattern The pattern to replace.
|
||||||
|
* @param aReplacement The thing to replace the pattern with.
|
||||||
|
*/
|
||||||
|
SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {
|
||||||
|
var lastChild = this.children[this.children.length - 1];
|
||||||
|
if (lastChild[isSourceNode]) {
|
||||||
|
lastChild.replaceRight(aPattern, aReplacement);
|
||||||
|
}
|
||||||
|
else if (typeof lastChild === 'string') {
|
||||||
|
this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.children.push(''.replace(aPattern, aReplacement));
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the source content for a source file. This will be added to the SourceMapGenerator
|
||||||
|
* in the sourcesContent field.
|
||||||
|
*
|
||||||
|
* @param aSourceFile The filename of the source file
|
||||||
|
* @param aSourceContent The content of the source file
|
||||||
|
*/
|
||||||
|
SourceNode.prototype.setSourceContent =
|
||||||
|
function SourceNode_setSourceContent(aSourceFile, aSourceContent) {
|
||||||
|
this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Walk over the tree of SourceNodes. The walking function is called for each
|
||||||
|
* source file content and is passed the filename and source content.
|
||||||
|
*
|
||||||
|
* @param aFn The traversal function.
|
||||||
|
*/
|
||||||
|
SourceNode.prototype.walkSourceContents =
|
||||||
|
function SourceNode_walkSourceContents(aFn) {
|
||||||
|
for (var i = 0, len = this.children.length; i < len; i++) {
|
||||||
|
if (this.children[i][isSourceNode]) {
|
||||||
|
this.children[i].walkSourceContents(aFn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var sources = Object.keys(this.sourceContents);
|
||||||
|
for (var i = 0, len = sources.length; i < len; i++) {
|
||||||
|
aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the string representation of this source node. Walks over the tree
|
||||||
|
* and concatenates all the various snippets together to one string.
|
||||||
|
*/
|
||||||
|
SourceNode.prototype.toString = function SourceNode_toString() {
|
||||||
|
var str = "";
|
||||||
|
this.walk(function (chunk) {
|
||||||
|
str += chunk;
|
||||||
|
});
|
||||||
|
return str;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the string representation of this source node along with a source
|
||||||
|
* map.
|
||||||
|
*/
|
||||||
|
SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {
|
||||||
|
var generated = {
|
||||||
|
code: "",
|
||||||
|
line: 1,
|
||||||
|
column: 0
|
||||||
|
};
|
||||||
|
var map = new SourceMapGenerator(aArgs);
|
||||||
|
var sourceMappingActive = false;
|
||||||
|
var lastOriginalSource = null;
|
||||||
|
var lastOriginalLine = null;
|
||||||
|
var lastOriginalColumn = null;
|
||||||
|
var lastOriginalName = null;
|
||||||
|
this.walk(function (chunk, original) {
|
||||||
|
generated.code += chunk;
|
||||||
|
if (original.source !== null
|
||||||
|
&& original.line !== null
|
||||||
|
&& original.column !== null) {
|
||||||
|
if(lastOriginalSource !== original.source
|
||||||
|
|| lastOriginalLine !== original.line
|
||||||
|
|| lastOriginalColumn !== original.column
|
||||||
|
|| lastOriginalName !== original.name) {
|
||||||
|
map.addMapping({
|
||||||
|
source: original.source,
|
||||||
|
original: {
|
||||||
|
line: original.line,
|
||||||
|
column: original.column
|
||||||
|
},
|
||||||
|
generated: {
|
||||||
|
line: generated.line,
|
||||||
|
column: generated.column
|
||||||
|
},
|
||||||
|
name: original.name
|
||||||
|
});
|
||||||
|
}
|
||||||
|
lastOriginalSource = original.source;
|
||||||
|
lastOriginalLine = original.line;
|
||||||
|
lastOriginalColumn = original.column;
|
||||||
|
lastOriginalName = original.name;
|
||||||
|
sourceMappingActive = true;
|
||||||
|
} else if (sourceMappingActive) {
|
||||||
|
map.addMapping({
|
||||||
|
generated: {
|
||||||
|
line: generated.line,
|
||||||
|
column: generated.column
|
||||||
|
}
|
||||||
|
});
|
||||||
|
lastOriginalSource = null;
|
||||||
|
sourceMappingActive = false;
|
||||||
|
}
|
||||||
|
for (var idx = 0, length = chunk.length; idx < length; idx++) {
|
||||||
|
if (chunk.charCodeAt(idx) === NEWLINE_CODE) {
|
||||||
|
generated.line++;
|
||||||
|
generated.column = 0;
|
||||||
|
// Mappings end at eol
|
||||||
|
if (idx + 1 === length) {
|
||||||
|
lastOriginalSource = null;
|
||||||
|
sourceMappingActive = false;
|
||||||
|
} else if (sourceMappingActive) {
|
||||||
|
map.addMapping({
|
||||||
|
source: original.source,
|
||||||
|
original: {
|
||||||
|
line: original.line,
|
||||||
|
column: original.column
|
||||||
|
},
|
||||||
|
generated: {
|
||||||
|
line: generated.line,
|
||||||
|
column: generated.column
|
||||||
|
},
|
||||||
|
name: original.name
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
generated.column++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.walkSourceContents(function (sourceFile, sourceContent) {
|
||||||
|
map.setSourceContent(sourceFile, sourceContent);
|
||||||
|
});
|
||||||
|
|
||||||
|
return { code: generated.code, map: map };
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.SourceNode = SourceNode;
|
417
node_modules/@babel/core/node_modules/source-map/lib/util.js
generated
vendored
Normal file
417
node_modules/@babel/core/node_modules/source-map/lib/util.js
generated
vendored
Normal file
@ -0,0 +1,417 @@
|
|||||||
|
/* -*- Mode: js; js-indent-level: 2; -*- */
|
||||||
|
/*
|
||||||
|
* Copyright 2011 Mozilla Foundation and contributors
|
||||||
|
* Licensed under the New BSD license. See LICENSE or:
|
||||||
|
* http://opensource.org/licenses/BSD-3-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is a helper function for getting values from parameter/options
|
||||||
|
* objects.
|
||||||
|
*
|
||||||
|
* @param args The object we are extracting values from
|
||||||
|
* @param name The name of the property we are getting.
|
||||||
|
* @param defaultValue An optional value to return if the property is missing
|
||||||
|
* from the object. If this is not specified and the property is missing, an
|
||||||
|
* error will be thrown.
|
||||||
|
*/
|
||||||
|
function getArg(aArgs, aName, aDefaultValue) {
|
||||||
|
if (aName in aArgs) {
|
||||||
|
return aArgs[aName];
|
||||||
|
} else if (arguments.length === 3) {
|
||||||
|
return aDefaultValue;
|
||||||
|
} else {
|
||||||
|
throw new Error('"' + aName + '" is a required argument.');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
exports.getArg = getArg;
|
||||||
|
|
||||||
|
var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/;
|
||||||
|
var dataUrlRegexp = /^data:.+\,.+$/;
|
||||||
|
|
||||||
|
function urlParse(aUrl) {
|
||||||
|
var match = aUrl.match(urlRegexp);
|
||||||
|
if (!match) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
scheme: match[1],
|
||||||
|
auth: match[2],
|
||||||
|
host: match[3],
|
||||||
|
port: match[4],
|
||||||
|
path: match[5]
|
||||||
|
};
|
||||||
|
}
|
||||||
|
exports.urlParse = urlParse;
|
||||||
|
|
||||||
|
function urlGenerate(aParsedUrl) {
|
||||||
|
var url = '';
|
||||||
|
if (aParsedUrl.scheme) {
|
||||||
|
url += aParsedUrl.scheme + ':';
|
||||||
|
}
|
||||||
|
url += '//';
|
||||||
|
if (aParsedUrl.auth) {
|
||||||
|
url += aParsedUrl.auth + '@';
|
||||||
|
}
|
||||||
|
if (aParsedUrl.host) {
|
||||||
|
url += aParsedUrl.host;
|
||||||
|
}
|
||||||
|
if (aParsedUrl.port) {
|
||||||
|
url += ":" + aParsedUrl.port
|
||||||
|
}
|
||||||
|
if (aParsedUrl.path) {
|
||||||
|
url += aParsedUrl.path;
|
||||||
|
}
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
exports.urlGenerate = urlGenerate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Normalizes a path, or the path portion of a URL:
|
||||||
|
*
|
||||||
|
* - Replaces consecutive slashes with one slash.
|
||||||
|
* - Removes unnecessary '.' parts.
|
||||||
|
* - Removes unnecessary '<dir>/..' parts.
|
||||||
|
*
|
||||||
|
* Based on code in the Node.js 'path' core module.
|
||||||
|
*
|
||||||
|
* @param aPath The path or url to normalize.
|
||||||
|
*/
|
||||||
|
function normalize(aPath) {
|
||||||
|
var path = aPath;
|
||||||
|
var url = urlParse(aPath);
|
||||||
|
if (url) {
|
||||||
|
if (!url.path) {
|
||||||
|
return aPath;
|
||||||
|
}
|
||||||
|
path = url.path;
|
||||||
|
}
|
||||||
|
var isAbsolute = exports.isAbsolute(path);
|
||||||
|
|
||||||
|
var parts = path.split(/\/+/);
|
||||||
|
for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {
|
||||||
|
part = parts[i];
|
||||||
|
if (part === '.') {
|
||||||
|
parts.splice(i, 1);
|
||||||
|
} else if (part === '..') {
|
||||||
|
up++;
|
||||||
|
} else if (up > 0) {
|
||||||
|
if (part === '') {
|
||||||
|
// The first part is blank if the path is absolute. Trying to go
|
||||||
|
// above the root is a no-op. Therefore we can remove all '..' parts
|
||||||
|
// directly after the root.
|
||||||
|
parts.splice(i + 1, up);
|
||||||
|
up = 0;
|
||||||
|
} else {
|
||||||
|
parts.splice(i, 2);
|
||||||
|
up--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
path = parts.join('/');
|
||||||
|
|
||||||
|
if (path === '') {
|
||||||
|
path = isAbsolute ? '/' : '.';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (url) {
|
||||||
|
url.path = path;
|
||||||
|
return urlGenerate(url);
|
||||||
|
}
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
exports.normalize = normalize;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Joins two paths/URLs.
|
||||||
|
*
|
||||||
|
* @param aRoot The root path or URL.
|
||||||
|
* @param aPath The path or URL to be joined with the root.
|
||||||
|
*
|
||||||
|
* - If aPath is a URL or a data URI, aPath is returned, unless aPath is a
|
||||||
|
* scheme-relative URL: Then the scheme of aRoot, if any, is prepended
|
||||||
|
* first.
|
||||||
|
* - Otherwise aPath is a path. If aRoot is a URL, then its path portion
|
||||||
|
* is updated with the result and aRoot is returned. Otherwise the result
|
||||||
|
* is returned.
|
||||||
|
* - If aPath is absolute, the result is aPath.
|
||||||
|
* - Otherwise the two paths are joined with a slash.
|
||||||
|
* - Joining for example 'http://' and 'www.example.com' is also supported.
|
||||||
|
*/
|
||||||
|
function join(aRoot, aPath) {
|
||||||
|
if (aRoot === "") {
|
||||||
|
aRoot = ".";
|
||||||
|
}
|
||||||
|
if (aPath === "") {
|
||||||
|
aPath = ".";
|
||||||
|
}
|
||||||
|
var aPathUrl = urlParse(aPath);
|
||||||
|
var aRootUrl = urlParse(aRoot);
|
||||||
|
if (aRootUrl) {
|
||||||
|
aRoot = aRootUrl.path || '/';
|
||||||
|
}
|
||||||
|
|
||||||
|
// `join(foo, '//www.example.org')`
|
||||||
|
if (aPathUrl && !aPathUrl.scheme) {
|
||||||
|
if (aRootUrl) {
|
||||||
|
aPathUrl.scheme = aRootUrl.scheme;
|
||||||
|
}
|
||||||
|
return urlGenerate(aPathUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (aPathUrl || aPath.match(dataUrlRegexp)) {
|
||||||
|
return aPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
// `join('http://', 'www.example.com')`
|
||||||
|
if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {
|
||||||
|
aRootUrl.host = aPath;
|
||||||
|
return urlGenerate(aRootUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
var joined = aPath.charAt(0) === '/'
|
||||||
|
? aPath
|
||||||
|
: normalize(aRoot.replace(/\/+$/, '') + '/' + aPath);
|
||||||
|
|
||||||
|
if (aRootUrl) {
|
||||||
|
aRootUrl.path = joined;
|
||||||
|
return urlGenerate(aRootUrl);
|
||||||
|
}
|
||||||
|
return joined;
|
||||||
|
}
|
||||||
|
exports.join = join;
|
||||||
|
|
||||||
|
exports.isAbsolute = function (aPath) {
|
||||||
|
return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Make a path relative to a URL or another path.
|
||||||
|
*
|
||||||
|
* @param aRoot The root path or URL.
|
||||||
|
* @param aPath The path or URL to be made relative to aRoot.
|
||||||
|
*/
|
||||||
|
function relative(aRoot, aPath) {
|
||||||
|
if (aRoot === "") {
|
||||||
|
aRoot = ".";
|
||||||
|
}
|
||||||
|
|
||||||
|
aRoot = aRoot.replace(/\/$/, '');
|
||||||
|
|
||||||
|
// It is possible for the path to be above the root. In this case, simply
|
||||||
|
// checking whether the root is a prefix of the path won't work. Instead, we
|
||||||
|
// need to remove components from the root one by one, until either we find
|
||||||
|
// a prefix that fits, or we run out of components to remove.
|
||||||
|
var level = 0;
|
||||||
|
while (aPath.indexOf(aRoot + '/') !== 0) {
|
||||||
|
var index = aRoot.lastIndexOf("/");
|
||||||
|
if (index < 0) {
|
||||||
|
return aPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the only part of the root that is left is the scheme (i.e. http://,
|
||||||
|
// file:///, etc.), one or more slashes (/), or simply nothing at all, we
|
||||||
|
// have exhausted all components, so the path is not relative to the root.
|
||||||
|
aRoot = aRoot.slice(0, index);
|
||||||
|
if (aRoot.match(/^([^\/]+:\/)?\/*$/)) {
|
||||||
|
return aPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
++level;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make sure we add a "../" for each component we removed from the root.
|
||||||
|
return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1);
|
||||||
|
}
|
||||||
|
exports.relative = relative;
|
||||||
|
|
||||||
|
var supportsNullProto = (function () {
|
||||||
|
var obj = Object.create(null);
|
||||||
|
return !('__proto__' in obj);
|
||||||
|
}());
|
||||||
|
|
||||||
|
function identity (s) {
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Because behavior goes wacky when you set `__proto__` on objects, we
|
||||||
|
* have to prefix all the strings in our set with an arbitrary character.
|
||||||
|
*
|
||||||
|
* See https://github.com/mozilla/source-map/pull/31 and
|
||||||
|
* https://github.com/mozilla/source-map/issues/30
|
||||||
|
*
|
||||||
|
* @param String aStr
|
||||||
|
*/
|
||||||
|
function toSetString(aStr) {
|
||||||
|
if (isProtoString(aStr)) {
|
||||||
|
return '$' + aStr;
|
||||||
|
}
|
||||||
|
|
||||||
|
return aStr;
|
||||||
|
}
|
||||||
|
exports.toSetString = supportsNullProto ? identity : toSetString;
|
||||||
|
|
||||||
|
function fromSetString(aStr) {
|
||||||
|
if (isProtoString(aStr)) {
|
||||||
|
return aStr.slice(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return aStr;
|
||||||
|
}
|
||||||
|
exports.fromSetString = supportsNullProto ? identity : fromSetString;
|
||||||
|
|
||||||
|
function isProtoString(s) {
|
||||||
|
if (!s) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var length = s.length;
|
||||||
|
|
||||||
|
if (length < 9 /* "__proto__".length */) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||
|
||||||
|
s.charCodeAt(length - 2) !== 95 /* '_' */ ||
|
||||||
|
s.charCodeAt(length - 3) !== 111 /* 'o' */ ||
|
||||||
|
s.charCodeAt(length - 4) !== 116 /* 't' */ ||
|
||||||
|
s.charCodeAt(length - 5) !== 111 /* 'o' */ ||
|
||||||
|
s.charCodeAt(length - 6) !== 114 /* 'r' */ ||
|
||||||
|
s.charCodeAt(length - 7) !== 112 /* 'p' */ ||
|
||||||
|
s.charCodeAt(length - 8) !== 95 /* '_' */ ||
|
||||||
|
s.charCodeAt(length - 9) !== 95 /* '_' */) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var i = length - 10; i >= 0; i--) {
|
||||||
|
if (s.charCodeAt(i) !== 36 /* '$' */) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Comparator between two mappings where the original positions are compared.
|
||||||
|
*
|
||||||
|
* Optionally pass in `true` as `onlyCompareGenerated` to consider two
|
||||||
|
* mappings with the same original source/line/column, but different generated
|
||||||
|
* line and column the same. Useful when searching for a mapping with a
|
||||||
|
* stubbed out mapping.
|
||||||
|
*/
|
||||||
|
function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {
|
||||||
|
var cmp = mappingA.source - mappingB.source;
|
||||||
|
if (cmp !== 0) {
|
||||||
|
return cmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
cmp = mappingA.originalLine - mappingB.originalLine;
|
||||||
|
if (cmp !== 0) {
|
||||||
|
return cmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
cmp = mappingA.originalColumn - mappingB.originalColumn;
|
||||||
|
if (cmp !== 0 || onlyCompareOriginal) {
|
||||||
|
return cmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
cmp = mappingA.generatedColumn - mappingB.generatedColumn;
|
||||||
|
if (cmp !== 0) {
|
||||||
|
return cmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
cmp = mappingA.generatedLine - mappingB.generatedLine;
|
||||||
|
if (cmp !== 0) {
|
||||||
|
return cmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mappingA.name - mappingB.name;
|
||||||
|
}
|
||||||
|
exports.compareByOriginalPositions = compareByOriginalPositions;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Comparator between two mappings with deflated source and name indices where
|
||||||
|
* the generated positions are compared.
|
||||||
|
*
|
||||||
|
* Optionally pass in `true` as `onlyCompareGenerated` to consider two
|
||||||
|
* mappings with the same generated line and column, but different
|
||||||
|
* source/name/original line and column the same. Useful when searching for a
|
||||||
|
* mapping with a stubbed out mapping.
|
||||||
|
*/
|
||||||
|
function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {
|
||||||
|
var cmp = mappingA.generatedLine - mappingB.generatedLine;
|
||||||
|
if (cmp !== 0) {
|
||||||
|
return cmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
cmp = mappingA.generatedColumn - mappingB.generatedColumn;
|
||||||
|
if (cmp !== 0 || onlyCompareGenerated) {
|
||||||
|
return cmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
cmp = mappingA.source - mappingB.source;
|
||||||
|
if (cmp !== 0) {
|
||||||
|
return cmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
cmp = mappingA.originalLine - mappingB.originalLine;
|
||||||
|
if (cmp !== 0) {
|
||||||
|
return cmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
cmp = mappingA.originalColumn - mappingB.originalColumn;
|
||||||
|
if (cmp !== 0) {
|
||||||
|
return cmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mappingA.name - mappingB.name;
|
||||||
|
}
|
||||||
|
exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;
|
||||||
|
|
||||||
|
function strcmp(aStr1, aStr2) {
|
||||||
|
if (aStr1 === aStr2) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (aStr1 > aStr2) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Comparator between two mappings with inflated source and name strings where
|
||||||
|
* the generated positions are compared.
|
||||||
|
*/
|
||||||
|
function compareByGeneratedPositionsInflated(mappingA, mappingB) {
|
||||||
|
var cmp = mappingA.generatedLine - mappingB.generatedLine;
|
||||||
|
if (cmp !== 0) {
|
||||||
|
return cmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
cmp = mappingA.generatedColumn - mappingB.generatedColumn;
|
||||||
|
if (cmp !== 0) {
|
||||||
|
return cmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
cmp = strcmp(mappingA.source, mappingB.source);
|
||||||
|
if (cmp !== 0) {
|
||||||
|
return cmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
cmp = mappingA.originalLine - mappingB.originalLine;
|
||||||
|
if (cmp !== 0) {
|
||||||
|
return cmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
cmp = mappingA.originalColumn - mappingB.originalColumn;
|
||||||
|
if (cmp !== 0) {
|
||||||
|
return cmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
return strcmp(mappingA.name, mappingB.name);
|
||||||
|
}
|
||||||
|
exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;
|
72
node_modules/@babel/core/node_modules/source-map/package.json
generated
vendored
Normal file
72
node_modules/@babel/core/node_modules/source-map/package.json
generated
vendored
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
{
|
||||||
|
"name": "source-map",
|
||||||
|
"description": "Generates and consumes source maps",
|
||||||
|
"version": "0.5.7",
|
||||||
|
"homepage": "https://github.com/mozilla/source-map",
|
||||||
|
"author": "Nick Fitzgerald <nfitzgerald@mozilla.com>",
|
||||||
|
"contributors": [
|
||||||
|
"Tobias Koppers <tobias.koppers@googlemail.com>",
|
||||||
|
"Duncan Beevers <duncan@dweebd.com>",
|
||||||
|
"Stephen Crane <scrane@mozilla.com>",
|
||||||
|
"Ryan Seddon <seddon.ryan@gmail.com>",
|
||||||
|
"Miles Elam <miles.elam@deem.com>",
|
||||||
|
"Mihai Bazon <mihai.bazon@gmail.com>",
|
||||||
|
"Michael Ficarra <github.public.email@michael.ficarra.me>",
|
||||||
|
"Todd Wolfson <todd@twolfson.com>",
|
||||||
|
"Alexander Solovyov <alexander@solovyov.net>",
|
||||||
|
"Felix Gnass <fgnass@gmail.com>",
|
||||||
|
"Conrad Irwin <conrad.irwin@gmail.com>",
|
||||||
|
"usrbincc <usrbincc@yahoo.com>",
|
||||||
|
"David Glasser <glasser@davidglasser.net>",
|
||||||
|
"Chase Douglas <chase@newrelic.com>",
|
||||||
|
"Evan Wallace <evan.exe@gmail.com>",
|
||||||
|
"Heather Arthur <fayearthur@gmail.com>",
|
||||||
|
"Hugh Kennedy <hughskennedy@gmail.com>",
|
||||||
|
"David Glasser <glasser@davidglasser.net>",
|
||||||
|
"Simon Lydell <simon.lydell@gmail.com>",
|
||||||
|
"Jmeas Smith <jellyes2@gmail.com>",
|
||||||
|
"Michael Z Goddard <mzgoddard@gmail.com>",
|
||||||
|
"azu <azu@users.noreply.github.com>",
|
||||||
|
"John Gozde <john@gozde.ca>",
|
||||||
|
"Adam Kirkton <akirkton@truefitinnovation.com>",
|
||||||
|
"Chris Montgomery <christopher.montgomery@dowjones.com>",
|
||||||
|
"J. Ryan Stinnett <jryans@gmail.com>",
|
||||||
|
"Jack Herrington <jherrington@walmartlabs.com>",
|
||||||
|
"Chris Truter <jeffpalentine@gmail.com>",
|
||||||
|
"Daniel Espeset <daniel@danielespeset.com>",
|
||||||
|
"Jamie Wong <jamie.lf.wong@gmail.com>",
|
||||||
|
"Eddy Bruël <ejpbruel@mozilla.com>",
|
||||||
|
"Hawken Rives <hawkrives@gmail.com>",
|
||||||
|
"Gilad Peleg <giladp007@gmail.com>",
|
||||||
|
"djchie <djchie.dev@gmail.com>",
|
||||||
|
"Gary Ye <garysye@gmail.com>",
|
||||||
|
"Nicolas Lalevée <nicolas.lalevee@hibnet.org>"
|
||||||
|
],
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "http://github.com/mozilla/source-map.git"
|
||||||
|
},
|
||||||
|
"main": "./source-map.js",
|
||||||
|
"files": [
|
||||||
|
"source-map.js",
|
||||||
|
"lib/",
|
||||||
|
"dist/source-map.debug.js",
|
||||||
|
"dist/source-map.js",
|
||||||
|
"dist/source-map.min.js",
|
||||||
|
"dist/source-map.min.js.map"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.10.0"
|
||||||
|
},
|
||||||
|
"license": "BSD-3-Clause",
|
||||||
|
"scripts": {
|
||||||
|
"test": "npm run build && node test/run-tests.js",
|
||||||
|
"build": "webpack --color",
|
||||||
|
"toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"doctoc": "^0.15.0",
|
||||||
|
"webpack": "^1.12.0"
|
||||||
|
},
|
||||||
|
"typings": "source-map"
|
||||||
|
}
|
8
node_modules/@babel/core/node_modules/source-map/source-map.js
generated
vendored
Normal file
8
node_modules/@babel/core/node_modules/source-map/source-map.js
generated
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2009-2011 Mozilla Foundation and contributors
|
||||||
|
* Licensed under the New BSD license. See LICENSE.txt or:
|
||||||
|
* http://opensource.org/licenses/BSD-3-Clause
|
||||||
|
*/
|
||||||
|
exports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;
|
||||||
|
exports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;
|
||||||
|
exports.SourceNode = require('./lib/source-node').SourceNode;
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user