From 86354a29a40fb97e334f951428239ab8e171e2dd Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Fri, 22 Jun 2018 14:23:42 +0200 Subject: [PATCH] Delete go implementation (#276) The go prototype will remain at https://github.com/ry/deno/tree/golang --- .gitignore | 8 - .travis.yml | 3 +- Makefile | 83 - README.md | 79 +- cmd/main.go | 13 - console.ts | 124 - deno.d.ts | 14 - deno.ts | 6 - deno2/README.md | 68 - deno2/msg.proto | 103 +- deno2/tools/build.py | 67 - deno_dir.go | 111 - deno_dir_test.go | 46 - dispatch.go | 126 - dispatch.ts | 73 - echo.go | 11 - fetch.go | 72 - fetch.ts | 146 - globals.ts | 32 - integration_test.go | 139 - main.go | 141 - main.ts | 54 - msg.proto | 102 - os.go | 195 -- os.ts | 65 - os_test.go | 87 - package.json | 25 - runtime.ts | 339 --- testdata/001_hello.js | 1 - testdata/001_hello.js.out | 1 - testdata/002_hello.ts | 1 - testdata/002_hello.ts.out | 1 - testdata/003_relative_import.ts | 3 - testdata/003_relative_import.ts.out | 1 - testdata/004_set_timeout.ts | 11 - testdata/004_set_timeout.ts.out | 2 - testdata/005_more_imports.ts | 11 - testdata/005_more_imports.ts.out | 1 - testdata/006_url_imports.ts | 3 - testdata/006_url_imports.ts.out | 3 - testdata/008_stack_trace.ts | 7 - testdata/009_pub_sub.ts | 18 - testdata/009_pub_sub.ts.out | 3 - testdata/010_set_interval.ts | 7 - testdata/010_set_interval.ts.out | 2 - testdata/012_async.ts | 11 - testdata/012_async.ts.out | 3 - testdata/async_error.ts | 9 - testdata/async_error.ts.out | 10 - testdata/error.ts | 9 - testdata/error.ts.out | 10 - testdata/import_typescript.ts | 3 - testdata/import_typescript.ts.out | 1 - testdata/subdir/mod1.ts | 17 - testdata/subdir/print_hello.ts | 3 - testdata/subdir/subdir2/mod2.ts | 9 - testing/testing.ts | 96 - testing/util.ts | 60 - testing/util_test.ts | 32 - tests.ts | 126 - text-encoding.d.ts | 6 - timers.go | 79 - timers.ts | 89 - tsconfig.json | 25 - tslint.json | 67 - types.ts | 10 - url.js | 671 ----- util.go | 106 - util.ts | 53 - util_test.go | 62 - v8_source_maps.ts | 273 -- v8worker2.d.ts | 8 - yarn.lock | 3846 --------------------------- 73 files changed, 114 insertions(+), 7988 deletions(-) delete mode 100644 .gitignore delete mode 100644 Makefile delete mode 100644 cmd/main.go delete mode 100644 console.ts delete mode 100644 deno.d.ts delete mode 100644 deno.ts delete mode 100644 deno2/README.md mode change 120000 => 100644 deno2/msg.proto delete mode 100755 deno2/tools/build.py delete mode 100644 deno_dir.go delete mode 100644 deno_dir_test.go delete mode 100644 dispatch.go delete mode 100644 dispatch.ts delete mode 100644 echo.go delete mode 100644 fetch.go delete mode 100644 fetch.ts delete mode 100644 globals.ts delete mode 100644 integration_test.go delete mode 100644 main.go delete mode 100644 main.ts delete mode 100644 msg.proto delete mode 100644 os.go delete mode 100644 os.ts delete mode 100644 os_test.go delete mode 100644 package.json delete mode 100644 runtime.ts delete mode 100644 testdata/001_hello.js delete mode 100644 testdata/001_hello.js.out delete mode 100644 testdata/002_hello.ts delete mode 100644 testdata/002_hello.ts.out delete mode 100644 testdata/003_relative_import.ts delete mode 100644 testdata/003_relative_import.ts.out delete mode 100644 testdata/004_set_timeout.ts delete mode 100644 testdata/004_set_timeout.ts.out delete mode 100644 testdata/005_more_imports.ts delete mode 100644 testdata/005_more_imports.ts.out delete mode 100644 testdata/006_url_imports.ts delete mode 100644 testdata/006_url_imports.ts.out delete mode 100644 testdata/008_stack_trace.ts delete mode 100644 testdata/009_pub_sub.ts delete mode 100644 testdata/009_pub_sub.ts.out delete mode 100644 testdata/010_set_interval.ts delete mode 100644 testdata/010_set_interval.ts.out delete mode 100644 testdata/012_async.ts delete mode 100644 testdata/012_async.ts.out delete mode 100644 testdata/async_error.ts delete mode 100644 testdata/async_error.ts.out delete mode 100644 testdata/error.ts delete mode 100644 testdata/error.ts.out delete mode 100644 testdata/import_typescript.ts delete mode 100644 testdata/import_typescript.ts.out delete mode 100644 testdata/subdir/mod1.ts delete mode 100644 testdata/subdir/print_hello.ts delete mode 100644 testdata/subdir/subdir2/mod2.ts delete mode 100644 testing/testing.ts delete mode 100644 testing/util.ts delete mode 100644 testing/util_test.ts delete mode 100644 tests.ts delete mode 100644 text-encoding.d.ts delete mode 100644 timers.go delete mode 100644 timers.ts delete mode 100644 tsconfig.json delete mode 100644 tslint.json delete mode 100644 types.ts delete mode 100644 url.js delete mode 100644 util.go delete mode 100644 util.ts delete mode 100644 util_test.go delete mode 100644 v8_source_maps.ts delete mode 100644 v8worker2.d.ts delete mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 0c09b13cdf..0000000000 --- a/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -node_modules/ -.cache/ -dist/ -deno -assets.go -msg.pb.go -/msg.pb.js -/msg.pb.d.ts diff --git a/.travis.yml b/.travis.yml index 2743289b4e..0f9b33e67b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -44,7 +44,8 @@ install: - gn args $BUILD_PATH --list - ccache -s # Travis hangs without -j2 argument to ninja. - - ninja -j2 -C $BUILD_PATH mock_runtime_test deno deno_rs + - ninja -j2 -C $BUILD_PATH mock_runtime_test deno + - ninja -j2 -C $BUILD_PATH deno_rs script: - $BUILD_PATH/mock_runtime_test - $BUILD_PATH/deno foo bar diff --git a/Makefile b/Makefile deleted file mode 100644 index d01d4bf132..0000000000 --- a/Makefile +++ /dev/null @@ -1,83 +0,0 @@ -TS_FILES = \ - console.ts \ - deno.d.ts \ - deno.ts \ - dispatch.ts \ - fetch.ts \ - globals.ts \ - main.ts \ - msg.pb.d.ts \ - msg.pb.js \ - os.ts \ - runtime.ts \ - text-encoding.d.ts \ - timers.ts \ - tsconfig.json \ - types.ts \ - url.js \ - util.ts \ - v8_source_maps.ts \ - v8worker2.d.ts - -GO_FILES = \ - cmd/main.go \ - assets.go \ - deno_dir.go \ - deno_dir_test.go \ - dispatch.go \ - echo.go \ - fetch.go \ - main.go \ - msg.pb.go \ - os.go \ - os_test.go \ - timers.go \ - util.go \ - util_test.go \ - integration_test.go - - -deno: msg.pb.go $(GO_FILES) - go build -o deno ./cmd - -assets.go: dist/main.js - cp node_modules/typescript/lib/*d.ts dist/ - cp deno.d.ts dist/ - go-bindata -pkg deno -o assets.go dist/ - -msg.pb.go: msg.proto - protoc --go_out=. msg.proto - -msg.pb.js: msg.proto node_modules - ./node_modules/.bin/pbjs -t static-module -w commonjs -o msg.pb.js msg.proto - -msg.pb.d.ts: msg.pb.js node_modules - ./node_modules/.bin/pbts -o msg.pb.d.ts msg.pb.js - -dist/main.js: $(TS_FILES) node_modules - ./node_modules/.bin/tsc --noEmit # Only for type checking. - ./node_modules/.bin/parcel build --out-dir=dist/ --log-level=1 --no-minify main.ts - -node_modules: - yarn - -clean: - -rm -f deno assets.go msg.pb.go msg.pb.js msg.pb.d.ts - -rm -rf dist/ - -distclean: clean - -rm -rf node_modules/ - -lint: node_modules - yarn lint - go vet - -fmt: node_modules - yarn fmt - go fmt - clang-format msg.proto -i - -test: deno - go test -v - -.PHONY: test lint clean distclean diff --git a/README.md b/README.md index ccf377e3b3..f56f15c1fe 100644 --- a/README.md +++ b/README.md @@ -72,79 +72,20 @@ includes submitting trivial PRs (like improving README build instructions). ## Compile instructions -I will release binaries at some point, but for now you have to build it -yourself. +First install the javascript deps. -You will need [Go](https://golang.org) with `$GOPATH` defined and -`$GOPATH/bin` in your `$PATH`. + cd deno2 -You will also need [yarn](https://yarnpkg.com/lang/en/docs/install/) installed. + cd js; yarn install -You need Protobuf 3. On Linux this might work: + gn gen out/Debug --args='cc_wrapper="ccache" is_debug=true ' -``` bash -cd ~ -wget https://github.com/google/protobuf/releases/download/v3.1.0/protoc-3.1.0-linux-x86_64.zip -unzip protoc-3.1.0-linux-x86_64.zip -export PATH=$HOME/bin:$PATH -``` +Then build with ninja: -On macOS, using [HomeBrew](https://brew.sh/): + ninja -C out/Debug/ deno -``` bash -brew install protobuf -``` - -Then you need [protoc-gen-go](https://github.com/golang/protobuf/tree/master/protoc-gen-go) and [go-bindata](https://github.com/jteeuwen/go-bindata): - -``` bash -go get -u github.com/golang/protobuf/protoc-gen-go -go get -u github.com/jteeuwen/go-bindata/... -``` - -You need to get and build [v8worker2](https://github.com/ry/v8worker2). __The package will not build with `go -get` and will log out an error ⚠__ -```bash -# pkg-config --cflags v8.pc -Failed to open 'v8.pc': No such file or directory -No package 'v8.pc' found -pkg-config: exit status 1 -``` - -__which can be ignored__. It takes about 30 minutes to build: - -``` bash -go get -u github.com/ry/v8worker2 -cd $GOPATH/src/github.com/ry/v8worker2 -./build.py --use_ccache -``` -Maybe also run `git submodule update --init` in the `v8worker2/` dir. - -Finally, you can get `deno` and its other Go deps. - -``` bash -go get -u github.com/ry/deno/... -``` - -Now you can build deno and run it: - -``` bash -cd $GOPATH/src/github.com/ry/deno - -make # Wait for redacted - -./deno testdata/001_hello.js # Output: Hello World -``` - -## `make` commands - -``` bash -make deno # Builds the deno executable. - -make test # Runs the tests. - -make fmt # Formats the code. - -make clean # Cleans the build. -``` +Other useful commands: + gn args out/Debug/ --list # List build args + gn args out/Debug/ # Modify args in $EDITOR + gn desc out/Debug/ :deno diff --git a/cmd/main.go b/cmd/main.go deleted file mode 100644 index 585cd12595..0000000000 --- a/cmd/main.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -package main - -import ( - "github.com/ry/deno" -) - -func main() { - deno.Init() - deno.Eval("deno_main.js", "denoMain()") - deno.Loop() -} diff --git a/console.ts b/console.ts deleted file mode 100644 index af92c88711..0000000000 --- a/console.ts +++ /dev/null @@ -1,124 +0,0 @@ -const print = V8Worker2.print; - -// tslint:disable-next-line:no-any -type ConsoleContext = Set; - -// tslint:disable-next-line:no-any -function getClassInstanceName(instance: any): string { - if (typeof instance !== "object") { - return ""; - } - if (instance && instance.__proto__ && instance.__proto__.constructor) { - return instance.__proto__.constructor.name; // could be "Object" or "Array" - } - return ""; -} - -// tslint:disable-next-line:no-any -function stringify(ctx: ConsoleContext, value: any): string { - switch (typeof value) { - case "string": - return value; - case "number": - case "boolean": - case "undefined": - case "symbol": - return String(value); - case "function": - if (value.name && value.name !== "anonymous") { - // from MDN spec - return `[Function: ${value.name}]`; - } - return "[Function]"; - case "object": - if (value === null) { - return "null"; - } - - if (ctx.has(value)) { - return "[Circular]"; - } - - ctx.add(value); - const entries: string[] = []; - - if (Array.isArray(value)) { - for (const el of value) { - entries.push(stringify(ctx, el)); - } - - ctx.delete(value); - - if (entries.length === 0) { - return "[]"; - } - return `[ ${entries.join(", ")} ]`; - } else { - let baseString = ""; - - const className = getClassInstanceName(value); - let shouldShowClassName = false; - if (className && className !== "Object" && className !== "anonymous") { - shouldShowClassName = true; - } - - for (const key of Object.keys(value)) { - entries.push(`${key}: ${stringify(ctx, value[key])}`); - } - - ctx.delete(value); - - if (entries.length === 0) { - baseString = "{}"; - } else { - baseString = `{ ${entries.join(", ")} }`; - } - - if (shouldShowClassName) { - baseString = `${className} ${baseString}`; - } - - return baseString; - } - default: - return "[Not Implemented]"; - } -} - -// tslint:disable-next-line:no-any -function stringifyArgs(args: any[]): string { - const out: string[] = []; - for (const a of args) { - if (typeof a === "string") { - out.push(a); - } else { - // tslint:disable-next-line:no-any - out.push(stringify(new Set(), a)); - } - } - return out.join(" "); -} - -export class Console { - // tslint:disable-next-line:no-any - log(...args: any[]): void { - print(stringifyArgs(args)); - } - - debug = this.log; - info = this.log; - - // tslint:disable-next-line:no-any - warn(...args: any[]): void { - print(`ERROR: ${stringifyArgs(args)}`); - } - - error = this.warn; - - // tslint:disable-next-line:no-any - assert(condition: boolean, ...args: any[]): void { - if (!condition) { - throw new Error(`Assertion failed: ${stringifyArgs(args)}`); - } - } -} diff --git a/deno.d.ts b/deno.d.ts deleted file mode 100644 index f88a137417..0000000000 --- a/deno.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -declare module "deno" { - type MessageCallback = (msg: Uint8Array) => void; - function sub(channel: string, cb: MessageCallback): void; - function pub(channel: string, payload: Uint8Array): null | ArrayBuffer; - - function readFileSync(filename: string): Uint8Array; - function writeFileSync( - filename: string, - data: Uint8Array, - perm: number - ): void; -} diff --git a/deno.ts b/deno.ts deleted file mode 100644 index 595d87709a..0000000000 --- a/deno.ts +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -// Public deno module. -// TODO get rid of deno.d.ts -export { pub, sub } from "./dispatch"; -export { readFileSync, writeFileSync } from "./os"; diff --git a/deno2/README.md b/deno2/README.md deleted file mode 100644 index 2b05da52fd..0000000000 --- a/deno2/README.md +++ /dev/null @@ -1,68 +0,0 @@ -# Deno Prototype 2 - -## Status - -This code is a rewrite of the privileged parts of Deno. It will soon become -the root of the project. - -There are several goals: - -* Use the gn build system for fast builds, sane configuration, and easy - linking into Chrome. - -* Use V8 snapshots to improve startup time. - -* Remove Golang. Although it has been working nicely, I am concerned the - double GC will become a problem sometime down the road. - -* Distribute a C++ library called libdeno, containing the snapshotted - typescript runtime. - -* Test the message passing and other functionality at that layer before - involving higher level languages. - -The contenders for building the privileged part of Deno are Rust and C++. -Thanks to Chrome and gn, using C++ to link into high level libraries is not -untenable. However, there's a lot of interest in Rust in the JS community and -it seems like a reasonable choice. TBD. - -There are many people exploring the project, so care will be taken to keep the -original code functional while this is developed. However, once it's ready -the code in this deno2/ directory will be moved to the root. - - -## Prerequisites - -Get Depot Tools and make sure it's in your path. -http://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up - -For linux you need these prereqs: - - sudo apt-get install libgtk-3-dev pkg-config ccache - - -## Build - -First install the javascript deps. - - cd js; yarn install - -TODO(ry) Remove the above step by a deps submodule. - -Wrapper around the gclient/gn/ninja for end users. Try this first: - - ./tools/build.py --use_ccache --debug - -If that doesn't work, or you need more control, try calling gn manually: - - gn gen out/Debug --args='cc_wrapper="ccache" is_debug=true ' - -Then build with ninja: - - ninja -C out/Debug/ deno - - -Other useful commands: - - gn args out/Debug/ --list # List build args - gn args out/Debug/ # Modify args in $EDITOR diff --git a/deno2/msg.proto b/deno2/msg.proto deleted file mode 120000 index e0ce41a3af..0000000000 --- a/deno2/msg.proto +++ /dev/null @@ -1 +0,0 @@ -../msg.proto \ No newline at end of file diff --git a/deno2/msg.proto b/deno2/msg.proto new file mode 100644 index 0000000000..6c4d1f9e17 --- /dev/null +++ b/deno2/msg.proto @@ -0,0 +1,102 @@ +// Copyright 2018 Ryan Dahl +// All rights reserved. MIT License. +syntax = "proto3"; +package deno; +option go_package = "deno"; + +message BaseMsg { + string channel = 1; + bytes payload = 2; +} + +message Msg { + enum Command { + ERROR = 0; + START = 1; + CODE_FETCH = 2; + CODE_FETCH_RES = 3; + CODE_CACHE = 4; + EXIT = 5; + TIMER_START = 6; + TIMER_READY = 7; + TIMER_CLEAR = 8; + FETCH_REQ = 9; + FETCH_RES = 10; + READ_FILE_SYNC = 11; + READ_FILE_SYNC_RES = 12; + WRITE_FILE_SYNC = 13; + } + Command command = 1; + + // We avoid creating a message for each command (and use oneof or any types) + // In order to reduce code in the size of the generated javascript + // "msg.pb.js". It seems that each new message adds 20k and we want to + // potentially add many hundreds of commands. Therefore we just prefix command + // arguments by their name. + + // ERROR + string error = 2; + + // START + string start_cwd = 10; + repeated string start_argv = 11; + bool start_debug_flag = 12; + string start_main_js = 13; // The contents of dist/main.js + string start_main_map = 14; // The contents of dist/main.map + + // CODE_FETCH + string code_fetch_module_specifier = 20; + string code_fetch_containing_file = 21; + + // CODE_FETCH_RES + // If it's a non-http module, moduleName and filename will be the same. + // For http modules, moduleName is its resolved http URL, and filename + // is the location of the locally downloaded source code. + string code_fetch_res_module_name = 30; + string code_fetch_res_filename = 31; + string code_fetch_res_source_code = 32; + string code_fetch_res_output_code = 33; // Non-empty only if cached. + + // CODE_CACHE + string code_cache_filename = 41; + string code_cache_source_code = 42; + string code_cache_output_code = 43; + + // EXIT + int32 exit_code = 50; + + // TIMER_START + int32 timer_start_id = 60; + bool timer_start_interval = 61; + int32 timer_start_delay = 62; // In milliseconds. + + // TIMER_READY + int32 timer_ready_id = 70; + bool timer_ready_done = 71; + + // TIMER_CLEAR + int32 timer_clear_id = 80; + + // FETCH_REQ + int32 fetch_req_id = 90; + string fetch_req_url = 91; + // repeated string fetch_req_header_line = 91 + + // FETCH_RES + int32 fetch_res_id = 100; + int32 fetch_res_status = 101; + repeated string fetch_res_header_line = 102; + bytes fetch_res_body = 103; + + // READ_FILE_SYNC + string read_file_sync_filename = 110; + + // READ_FILE_SYNC_RES + bytes read_file_sync_data = 120; + + // WRITE_FILE_SYNC + string write_file_sync_filename = 130; + bytes write_file_sync_data = 131; + uint32 write_file_sync_perm = 132; + // write_file_sync_perm specified by https://godoc.org/os#FileMode +} diff --git a/deno2/tools/build.py b/deno2/tools/build.py deleted file mode 100755 index 25f30f4f8f..0000000000 --- a/deno2/tools/build.py +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/env python -# Get Depot Tools and make sure it's in your path. -# http://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up -# Use .gclient to modify the deps. -import os -import sys -import subprocess -import argparse - -TARGET = "deno" - -parser = argparse.ArgumentParser(description="build.py") -parser.add_argument('--debug', dest='debug', action='store_true') -parser.add_argument('--use_ccache', dest='use_ccache', action='store_true') -parser.add_argument('--sync', dest='sync', action='store_true') -parser.set_defaults(debug=False, use_ccache=False, sync=False) -args = parser.parse_args() - -root_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) - - -def main(): - os.chdir(root_path) - buildName = "Debug" if args.debug else "Default" - buildDir = os.path.join(root_path, "out", buildName) - # Run sync if any of the dep dirs don't exist. - # Or the user supplied the --sync flag. - if args.sync or dirsMissing(): - run(["gclient", "sync", "--no-history"]) - - # Run gn gen out/Default if out doesn't exist. - if not os.path.exists(buildDir): - gn_gen = ["gn", "gen", buildDir] - gn_args = [] - if args.debug: - gn_args.append("is_debug=true") - if args.use_ccache: - gn_args.append("cc_wrapper=\"ccache\"") - if len(gn_args) > 0: - gn_gen += ["--args=%s" % " ".join(gn_args)] - run(gn_gen) - - # Always run ninja. - run(["ninja", "-C", buildDir, TARGET]) - - -def run(args): - print " ".join(args) - env = os.environ.copy() - subprocess.check_call(args, env=env) - - -def dirsMissing(): - dirsToLoad = [ - "v8", - "third_party/protobuf", - "tools/protoc_wrapper", - "third_party/zlib", - ] - for d in dirsToLoad: - if not os.path.exists(d): - return True - return False - - -if '__main__' == __name__: - main() diff --git a/deno_dir.go b/deno_dir.go deleted file mode 100644 index 1fac10831a..0000000000 --- a/deno_dir.go +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -package deno - -import ( - "crypto/md5" - "encoding/hex" - "flag" - "io" - "io/ioutil" - "net/http" - "os" - "path" - "runtime" - "strings" -) - -var flagCacheDir = flag.String("cachedir", "", - "Where to cache compilation artifacts. Default: ~/.deno") - -var DenoDir string -var CacheDir string -var SrcDir string - -func SourceCodeHash(filename string, sourceCodeBuf []byte) string { - h := md5.New() - h.Write([]byte(filename)) - h.Write(sourceCodeBuf) - return hex.EncodeToString(h.Sum(nil)) -} - -func CacheFileName(filename string, sourceCodeBuf []byte) string { - cacheKey := SourceCodeHash(filename, sourceCodeBuf) - return path.Join(CacheDir, cacheKey+".js") -} - -// Fetches a remoteUrl but also caches it to the localFilename. -func FetchRemoteSource(remoteUrl string, localFilename string) ([]byte, error) { - logDebug("FetchRemoteSource %s %s", remoteUrl, localFilename) - assert(strings.HasPrefix(localFilename, SrcDir), - "Expected filename to start with SrcDir: "+localFilename) - var sourceReader io.Reader - - file, err := os.Open(localFilename) - if *flagReload || os.IsNotExist(err) { - // Fetch from HTTP. - println("Downloading", remoteUrl) - res, err := http.Get(remoteUrl) - if err != nil { - return nil, err - } - defer res.Body.Close() - - err = os.MkdirAll(path.Dir(localFilename), 0700) - if err != nil { - return nil, err - } - - // Write to local file. Need to reopen it for writing. - file, err = os.OpenFile(localFilename, os.O_RDWR|os.O_CREATE, 0700) - if err != nil { - return nil, err - } - sourceReader = io.TeeReader(res.Body, file) // Fancy! - - } else if err != nil { - return nil, err - } else { - sourceReader = file - } - defer file.Close() - return ioutil.ReadAll(sourceReader) -} - -func LoadOutputCodeCache(filename string, sourceCodeBuf []byte) ( - outputCode string, err error) { - cacheFn := CacheFileName(filename, sourceCodeBuf) - outputCodeBuf, err := ioutil.ReadFile(cacheFn) - if os.IsNotExist(err) { - // Ignore error if we can't find the cache file. - err = nil - } else if err == nil { - outputCode = string(outputCodeBuf) - } - return outputCode, err -} - -func UserHomeDir() string { - if runtime.GOOS == "windows" { - home := path.Join(os.Getenv("HOMEDRIVE"), os.Getenv("HOMEPATH")) - if home == "" { - home = os.Getenv("USERPROFILE") - } - return home - } - return os.Getenv("HOME") -} - -func createDirs() { - if *flagCacheDir == "" { - DenoDir = path.Join(UserHomeDir(), ".deno") - } else { - DenoDir = *flagCacheDir - } - CacheDir = path.Join(DenoDir, "cache") - err := os.MkdirAll(CacheDir, 0700) - check(err) - SrcDir = path.Join(DenoDir, "src") - err = os.MkdirAll(SrcDir, 0700) - check(err) -} diff --git a/deno_dir_test.go b/deno_dir_test.go deleted file mode 100644 index 2c1bfb1e2c..0000000000 --- a/deno_dir_test.go +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -package deno - -import ( - "io/ioutil" - "testing" -) - -func SetCacheDirForTest(prefix string) { - dir, err := ioutil.TempDir("", prefix) - check(err) - CacheDir = dir -} - -func TestLoadOutputCodeCache(t *testing.T) { - SetCacheDirForTest("TestLoadOutputCodeCache") - - filename := "Hello.ts" - sourceCodeBuf := []byte("1+2") - - cacheFn := CacheFileName(filename, sourceCodeBuf) - - outputCode, err := LoadOutputCodeCache(filename, sourceCodeBuf) - if err != nil { - t.Fatalf(err.Error()) - } - if outputCode != "" { - t.Fatalf("Expected empty outputCode but got <<%s>>", outputCode) - } - - // Now let's write to the cache file - err = ioutil.WriteFile(cacheFn, []byte("blah"), 0700) - if err != nil { - t.Fatalf(err.Error()) - } - - // Try it again. - outputCode, err = LoadOutputCodeCache(filename, sourceCodeBuf) - if err != nil { - t.Fatalf(err.Error()) - } - if outputCode != "blah" { - t.Fatalf("Bad outputCode but got <<%s>>", outputCode) - } -} diff --git a/dispatch.go b/dispatch.go deleted file mode 100644 index 373d306663..0000000000 --- a/dispatch.go +++ /dev/null @@ -1,126 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -package deno - -import ( - "github.com/golang/protobuf/proto" - "sync" -) - -var resChan = make(chan *BaseMsg, 10) -var doneChan = make(chan bool) -var wg sync.WaitGroup - -var stats struct { - v8workerSend int - v8workerRespond int - v8workerRecv int - v8workerBytesSent int - v8workerBytesRecv int -} - -var channels = make(map[string][]Subscriber) - -type Subscriber func(payload []byte) []byte - -func recv(buf []byte) (response []byte) { - stats.v8workerRecv++ - stats.v8workerBytesRecv += len(buf) - - msg := &BaseMsg{} - check(proto.Unmarshal(buf, msg)) - assert(len(msg.Payload) > 0, "BaseMsg has empty payload.") - subscribers, ok := channels[msg.Channel] - if !ok { - panic("No subscribers for channel " + msg.Channel) - } - for i := 0; i < len(subscribers); i++ { - s := subscribers[i] - r := s(msg.Payload) - if r != nil { - response = r - } - } - if response != nil { - stats.v8workerRespond++ - stats.v8workerBytesSent += len(response) - } - return response -} - -func Sub(channel string, cb Subscriber) { - subscribers, ok := channels[channel] - if !ok { - subscribers = make([]Subscriber, 0) - } - subscribers = append(subscribers, cb) - channels[channel] = subscribers -} - -func Pub(channel string, payload []byte) { - wg.Add(1) - resChan <- &BaseMsg{ - Channel: channel, - Payload: payload, - } -} - -func PubMsg(channel string, msg *Msg) { - payload, err := proto.Marshal(msg) - check(err) - Pub(channel, payload) -} - -func DispatchLoop() { - wg.Add(1) - first := true - - // In a goroutine, we wait on for all goroutines to complete (for example - // timers). We use this to signal to the main thread to exit. - // wg.Add(1) basically translates to uv_ref, if this was Node. - // wg.Done() basically translates to uv_unref - go func() { - wg.Wait() - doneChan <- true - }() - - for { - select { - case msg := <-resChan: - out, err := proto.Marshal(msg) - check(err) - err = worker.SendBytes(out) - stats.v8workerSend++ - stats.v8workerBytesSent += len(out) - exitOnError(err) - wg.Done() // Corresponds to the wg.Add(1) in Pub(). - case <-doneChan: - // All goroutines have completed. Now we can exit main(). - checkChanEmpty() - return - } - - // We don't want to exit until we've received at least one message. - // This is so the program doesn't exit after sending the "start" - // message. - if first { - wg.Done() - } - first = false - } -} - -func checkChanEmpty() { - // We've received a done event. As a sanity check, make sure that resChan is - // empty. - select { - case _, ok := <-resChan: - if ok { - panic("Read a message from resChan after doneChan closed.") - } else { - panic("resChan closed. Unexpected.") - } - default: - // No value ready, moving on. - } -} diff --git a/dispatch.ts b/dispatch.ts deleted file mode 100644 index a83e5a0e53..0000000000 --- a/dispatch.ts +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -import { typedArrayToArrayBuffer } from "./util"; -import { _global } from "./globals"; -import { deno as pb } from "./msg.pb"; - -export type MessageCallback = (msg: Uint8Array) => void; -//type MessageStructCallback = (msg: pb.IMsg) => void; - -const send = V8Worker2.send; -const channels = new Map(); - -export function sub(channel: string, cb: MessageCallback): void { - let subscribers = channels.get(channel); - if (!subscribers) { - subscribers = []; - channels.set(channel, subscribers); - } - subscribers.push(cb); -} - -/* -export function subMsg(channel: string, cb: MessageStructCallback): void { - sub(channel, (payload: Uint8Array) => { - const msg = pb.Msg.decode(payload); - if (msg.error != null) { - f.onError(new Error(msg.error)); - } else { - cb(msg); - } - }); -} - */ - -export function pub(channel: string, payload: Uint8Array): null | ArrayBuffer { - const msg = pb.BaseMsg.fromObject({ channel, payload }); - const ui8 = pb.BaseMsg.encode(msg).finish(); - const ab = typedArrayToArrayBuffer(ui8); - return send(ab); -} - -// Internal version of "pub". -// TODO add internal version of "sub" -export function pubInternal(channel: string, obj: pb.IMsg): null | pb.Msg { - const msg = pb.Msg.fromObject(obj); - const ui8 = pb.Msg.encode(msg).finish(); - const resBuf = pub(channel, ui8); - if (resBuf != null && resBuf.byteLength > 0) { - const res = pb.Msg.decode(new Uint8Array(resBuf)); - if (res != null && res.error != null && res.error.length > 0) { - throw Error(res.error); - } - return res; - } else { - return null; - } -} - -V8Worker2.recv((ab: ArrayBuffer) => { - const msg = pb.BaseMsg.decode(new Uint8Array(ab)); - const subscribers = channels.get(msg.channel); - if (subscribers == null) { - throw Error(`No subscribers for channel "${msg.channel}".`); - } - - for (const subscriber of subscribers) { - subscriber(msg.payload); - } -}); - -// Delete the V8Worker2 from the global object, so that no one else can receive -// messages. -_global["V8Worker2"] = null; diff --git a/echo.go b/echo.go deleted file mode 100644 index 29ec11138d..0000000000 --- a/echo.go +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -package deno - -// For testing -func InitEcho() { - Sub("echo", func(buf []byte) []byte { - Pub("echo", buf) - return nil - }) -} diff --git a/fetch.go b/fetch.go deleted file mode 100644 index 3b9cb57465..0000000000 --- a/fetch.go +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -package deno - -import ( - "github.com/golang/protobuf/proto" - "io/ioutil" - "net/http" -) - -func InitFetch() { - Sub("fetch", func(buf []byte) []byte { - msg := &Msg{} - check(proto.Unmarshal(buf, msg)) - switch msg.Command { - case Msg_FETCH_REQ: - return Fetch( - msg.FetchReqId, - msg.FetchReqUrl) - default: - panic("[fetch] Unexpected message " + string(buf)) - } - }) -} - -func Fetch(id int32, targetUrl string) []byte { - logDebug("Fetch %d %s", id, targetUrl) - async(func() { - resMsg := &Msg{ - Command: Msg_FETCH_RES, - FetchResId: id, - } - - if !Perms.Net { - resMsg.Error = "Network access denied." - PubMsg("fetch", resMsg) - return - } - - resp, err := http.Get(targetUrl) - if err != nil { - resMsg.Error = err.Error() - PubMsg("fetch", resMsg) - return - } - if resp == nil { - resMsg.Error = "resp is nil " - PubMsg("fetch", resMsg) - return - } - - resMsg.FetchResStatus = int32(resp.StatusCode) - logDebug("fetch success %d %s", resMsg.FetchResStatus, targetUrl) - PubMsg("fetch", resMsg) - - // Now we read the body and send another message0 - - defer resp.Body.Close() - body, err := ioutil.ReadAll(resp.Body) - if resp == nil { - resMsg.Error = "resp is nil " - PubMsg("fetch", resMsg) - return - } - - resMsg.FetchResBody = body - PubMsg("fetch", resMsg) - - // TODO streaming. - }) - return nil -} diff --git a/fetch.ts b/fetch.ts deleted file mode 100644 index c59d41bf5c..0000000000 --- a/fetch.ts +++ /dev/null @@ -1,146 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -import { - assert, - log, - createResolvable, - Resolvable, - typedArrayToArrayBuffer -} from "./util"; -import { pubInternal, sub } from "./dispatch"; -import { deno as pb } from "./msg.pb"; - -export function initFetch() { - sub("fetch", (payload: Uint8Array) => { - const msg = pb.Msg.decode(payload); - assert(msg.command === pb.Msg.Command.FETCH_RES); - const id = msg.fetchResId; - const f = fetchRequests.get(id); - assert(f != null, `Couldn't find FetchRequest id ${id}`); - - f.onMsg(msg); - }); -} - -const fetchRequests = new Map(); - -class FetchResponse implements Response { - readonly url: string; - body: null; - bodyUsed = false; // TODO - status: number; - statusText = "FIXME"; // TODO - readonly type = "basic"; // TODO - redirected = false; // TODO - headers: null; // TODO - //private bodyChunks: Uint8Array[] = []; - private first = true; - - constructor(readonly req: FetchRequest) { - this.url = req.url; - } - - bodyWaiter: Resolvable; - arrayBuffer(): Promise { - this.bodyWaiter = createResolvable(); - return this.bodyWaiter; - } - - blob(): Promise { - throw Error("not implemented"); - } - - formData(): Promise { - throw Error("not implemented"); - } - - async json(): Promise { - const text = await this.text(); - return JSON.parse(text); - } - - async text(): Promise { - const ab = await this.arrayBuffer(); - const decoder = new TextDecoder("utf-8"); - return decoder.decode(ab); - } - - get ok(): boolean { - return 200 <= this.status && this.status < 300; - } - - clone(): Response { - throw Error("not implemented"); - } - - onHeader: (res: Response) => void; - onError: (error: Error) => void; - - onMsg(msg: pb.Msg) { - if (msg.error !== null && msg.error !== "") { - //throw new Error(msg.error) - this.onError(new Error(msg.error)); - return; - } - - if (this.first) { - this.first = false; - this.status = msg.fetchResStatus; - this.onHeader(this); - } else { - // Body message. Assuming it all comes in one message now. - const ab = typedArrayToArrayBuffer(msg.fetchResBody); - this.bodyWaiter.resolve(ab); - } - } -} - -let nextFetchId = 0; -//TODO implements Request -class FetchRequest { - private readonly id: number; - response: FetchResponse; - constructor(readonly url: string) { - this.id = nextFetchId++; - fetchRequests.set(this.id, this); - this.response = new FetchResponse(this); - } - - onMsg(msg: pb.Msg) { - this.response.onMsg(msg); - } - - destroy() { - fetchRequests.delete(this.id); - } - - start() { - log("dispatch FETCH_REQ", this.id, this.url); - const res = pubInternal("fetch", { - command: pb.Msg.Command.FETCH_REQ, - fetchReqId: this.id, - fetchReqUrl: this.url - }); - assert(res == null); - } -} - -export function fetch( - input?: Request | string, - init?: RequestInit -): Promise { - const fetchReq = new FetchRequest(input as string); - const response = fetchReq.response; - return new Promise((resolve, reject) => { - // tslint:disable-next-line:no-any - response.onHeader = (response: any) => { - log("onHeader"); - resolve(response); - }; - response.onError = (error: Error) => { - log("onError", error); - reject(error); - }; - fetchReq.start(); - }); -} diff --git a/globals.ts b/globals.ts deleted file mode 100644 index cca72d172d..0000000000 --- a/globals.ts +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -import * as timer from "./timers"; - -// If you use the eval function indirectly, by invoking it via a reference -// other than eval, as of ECMAScript 5 it works in the global scope rather than -// the local scope. This means, for instance, that function declarations create -// global functions, and that the code being evaluated doesn't have access to -// local variables within the scope where it's being called. -export const globalEval = eval; - -// A reference to the global object. -// TODO The underscore is because it's conflicting with @types/node. -export const _global = globalEval("this"); - -_global["window"] = _global; // Create a window object. -import "./url"; - -_global["setTimeout"] = timer.setTimeout; -_global["setInterval"] = timer.setInterval; -_global["clearTimeout"] = timer.clearTimer; -_global["clearInterval"] = timer.clearTimer; - -import { Console } from "./console"; -_global["console"] = new Console(); - -import { fetch } from "./fetch"; -_global["fetch"] = fetch; - -import { TextEncoder, TextDecoder } from "text-encoding"; -_global["TextEncoder"] = TextEncoder; -_global["TextDecoder"] = TextDecoder; diff --git a/integration_test.go b/integration_test.go deleted file mode 100644 index 2d1cbdbea2..0000000000 --- a/integration_test.go +++ /dev/null @@ -1,139 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -package deno - -import ( - "bytes" - "io/ioutil" - "net" - "net/http" - "os" - "os/exec" - "path" - "strings" - "testing" -) - -var denoFn string - -// Some tests require an HTTP server. We start one here. -// Note that "localhost:4545" is hardcoded into the tests at the moment, -// so if the server runs on a different port, it will fail. -func startServer() { - l, err := net.Listen("tcp", ":4545") - check(err) - rootHandler := http.FileServer(http.Dir(".")) - go func() { - err := http.Serve(l, rootHandler) - check(err) - }() -} - -func listTestFiles() []string { - files, err := ioutil.ReadDir("testdata") - check(err) - out := make([]string, 0) - for _, file := range files { - fn := file.Name() - if strings.HasSuffix(fn, ".out") { - out = append(out, fn) - } - } - return out -} - -func checkOutput(t *testing.T, outFile string, shouldSucceed bool) { - outFile = path.Join("testdata", outFile) - jsFile := strings.TrimSuffix(outFile, ".out") - - expected, err := ioutil.ReadFile(outFile) - if err != nil { - t.Fatal(err.Error()) - } - - actual, _, err := deno(jsFile) - if shouldSucceed && err != nil { - t.Fatalf("Expected success %s", err.Error()) - } else if !shouldSucceed && err == nil { - t.Fatalf("Expected failure but got success") - } - if !patternMatch(string(expected), string(actual)) { - t.Fatalf(`Actual output does not match expected. ------Actual------------------- -%s-----Expected----------------- -%s------------------------------`, string(actual), string(expected)) - } -} - -func deno(inputFn string) (actual []byte, cachedir string, err error) { - cachedir, err = ioutil.TempDir("", "TestIntegration") - check(err) - - cmd := exec.Command(denoFn, "--cachedir="+cachedir, inputFn) - var out bytes.Buffer - cmd.Stdout = &out - cmd.Stderr = &out - err = cmd.Run() - actual = out.Bytes() - return -} - -func integrationTestSetup() { - if denoFn == "" { - startServer() - cwd, err := os.Getwd() - check(err) - denoFn = path.Join(cwd, "deno") - } -} - -func TestIntegrationFiles(t *testing.T) { - integrationTestSetup() - outFiles := listTestFiles() - for _, outFile := range outFiles { - t.Run(outFile, func(t *testing.T) { - shouldSucceed := strings.Index(outFile, "error") < 0 - checkOutput(t, outFile, shouldSucceed) - }) - } -} - -func TestIntegrationUrlArgs(t *testing.T) { - integrationTestSetup() - - // Using good port 4545 - _, cachedir, err := deno("http://localhost:4545/testdata/001_hello.js") - if err != nil { - t.Fatalf("Expected success. %s", err.Error()) - } - cacheFn := path.Join(cachedir, "src/localhost:4545/testdata/001_hello.js") - println("good cacheFn", cacheFn) - if !exists(cacheFn) { - t.Fatalf("Expected 200 at '%s'", cacheFn) - } - // TODO check output - - // Using bad port 4546 instead of 4545. - _, cachedir, err = deno("http://localhost:4546/testdata/001_hello.js") - if err == nil { - t.Fatalf("Expected 404. %s", err.Error()) - } - // Check that cache dir is empty. - cacheFn = path.Join(cachedir, "src/localhost:4546/testdata/001_hello.js") - println("bad cacheFn", cacheFn) - if exists(cacheFn) { - t.Fatalf("Expected 404 at '%s'", cacheFn) - } -} - -func TestTestsTs(t *testing.T) { - integrationTestSetup() - // TODO Need unit test for each of the permissions. - cmd := exec.Command(denoFn, "--allow-net", "--allow-write", "tests.ts") - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - err := cmd.Run() - if err != nil { - t.Fatal(err.Error()) - } -} diff --git a/main.go b/main.go deleted file mode 100644 index c9923bd770..0000000000 --- a/main.go +++ /dev/null @@ -1,141 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -package deno - -import ( - "flag" - "fmt" - "os" - "path" - "runtime/pprof" - - "github.com/ry/v8worker2" -) - -var flagReload = flag.Bool("reload", false, "Reload cached remote source code.") -var flagV8Options = flag.Bool("v8-options", false, "Print V8 command line options.") -var flagDebug = flag.Bool("debug", false, "Enable debug output.") -var flagCPUProf = flag.String("cpuprof", "", "Write golang cpu profile to file.") -var flagMemProf = flag.String("memprof", "", "Write golang memory profile to file.") - -var flagAllowRead = flag.Bool("allow-read", true, - "Allow program to read file system.") -var flagAllowWrite = flag.Bool("allow-write", false, - "Allow program to write to the fs.") -var flagAllowNet = flag.Bool("allow-net", false, - "Allow program to make network connection.") - -var memProfile *os.File - -var Perms struct { - FsRead bool - FsWrite bool - Net bool -} - -func setPerms() { - Perms.FsRead = *flagAllowRead - Perms.FsWrite = *flagAllowWrite - Perms.Net = *flagAllowNet -} - -func stringAsset(filename string) string { - data, err := Asset(path.Join("dist", filename)) - check(err) - return string(data) -} - -func FlagsParse() []string { - flag.Parse() - args := flag.Args() - setPerms() - if *flagV8Options { - args = append(args, "--help") - } - // Adding this causes testdata/007_stack_trace.ts to fail without a - // stacktrace. - // args = append(args, "--abort-on-uncaught-exception") - args = v8worker2.SetFlags(args) - - return args -} - -// There is a single global worker for this process. -// This file should be the only part of deno that directly access it, so that -// all interaction with V8 can go through a single point. -var worker *v8worker2.Worker -var workerArgs []string -var main_js string -var main_map string - -func Init() { - workerArgs = FlagsParse() - - if len(workerArgs) == 0 { - fmt.Fprintf(os.Stderr, "Usage: %s file.ts\n", os.Args[0]) - flag.PrintDefaults() - os.Exit(1) - } - - // Maybe start Golang profilers. - // Use --prof for profiling JS. - StartProfiling() - - createDirs() - InitOS() - InitEcho() - InitTimers() - InitFetch() - - worker = v8worker2.New(recv) - - main_js = stringAsset("main.js") - err := worker.Load("/main.js", main_js) - exitOnError(err) - main_map = stringAsset("main.map") -} - -func StartProfiling() { - if *flagCPUProf != "" { - cpuProfile, err := os.Create(*flagCPUProf) - check(err) - check(pprof.StartCPUProfile(cpuProfile)) - } - if *flagMemProf != "" { - var err error - memProfile, err = os.Create(*flagMemProf) - check(err) - check(pprof.WriteHeapProfile(memProfile)) - } -} - -func stopProfiling() { - if *flagCPUProf != "" { - pprof.StopCPUProfile() - } - if *flagMemProf != "" { - check(memProfile.Close()) - } -} - -// It's up to library users to call -// deno.Eval("deno_main.js", "denoMain()") -func Eval(filename string, code string) { - err := worker.Load(filename, code) - exitOnError(err) -} - -func Loop() { - cwd, err := os.Getwd() - check(err) - PubMsg("start", &Msg{ - Command: Msg_START, - StartCwd: cwd, - StartArgv: workerArgs, - StartDebugFlag: *flagDebug, - StartMainJs: main_js, - StartMainMap: main_map, - }) - DispatchLoop() - stopProfiling() -} diff --git a/main.ts b/main.ts deleted file mode 100644 index f72d69cc1c..0000000000 --- a/main.ts +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -// This allows us to have async/await in our code. It must be loaded first. -import "babel-polyfill"; - -import * as dispatch from "./dispatch"; -import { deno as pb } from "./msg.pb"; - -import * as runtime from "./runtime"; -import * as util from "./util"; - -import { initTimers } from "./timers"; -import { initFetch } from "./fetch"; - -// To control internal logging output -// Set with the -debug command-line flag. -export let debug = false; -let startCalled = false; - -// denoMain is needed to allow hooks into the system. -// Also eventual snapshot support needs it. -// tslint:disable-next-line:no-any -(window as any)["denoMain"] = () => { - // tslint:disable-next-line:no-any - delete (window as any)["denoMain"]; - - initTimers(); - initFetch(); - - dispatch.sub("start", (payload: Uint8Array) => { - if (startCalled) { - throw Error("start message received more than once!"); - } - startCalled = true; - - const msg = pb.Msg.decode(payload); - const { - startCwd: cwd, - startArgv: argv, - startDebugFlag: debugFlag, - startMainJs: mainJs, - startMainMap: mainMap - } = msg; - - debug = debugFlag; - util.log("start", { cwd, argv, debugFlag }); - - runtime.setup(mainJs, mainMap); - - const inputFn = argv[0]; - const mod = runtime.resolveModule(inputFn, `${cwd}/`); - mod.compileAndRun(); - }); -}; diff --git a/msg.proto b/msg.proto deleted file mode 100644 index 6c4d1f9e17..0000000000 --- a/msg.proto +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -syntax = "proto3"; -package deno; -option go_package = "deno"; - -message BaseMsg { - string channel = 1; - bytes payload = 2; -} - -message Msg { - enum Command { - ERROR = 0; - START = 1; - CODE_FETCH = 2; - CODE_FETCH_RES = 3; - CODE_CACHE = 4; - EXIT = 5; - TIMER_START = 6; - TIMER_READY = 7; - TIMER_CLEAR = 8; - FETCH_REQ = 9; - FETCH_RES = 10; - READ_FILE_SYNC = 11; - READ_FILE_SYNC_RES = 12; - WRITE_FILE_SYNC = 13; - } - Command command = 1; - - // We avoid creating a message for each command (and use oneof or any types) - // In order to reduce code in the size of the generated javascript - // "msg.pb.js". It seems that each new message adds 20k and we want to - // potentially add many hundreds of commands. Therefore we just prefix command - // arguments by their name. - - // ERROR - string error = 2; - - // START - string start_cwd = 10; - repeated string start_argv = 11; - bool start_debug_flag = 12; - string start_main_js = 13; // The contents of dist/main.js - string start_main_map = 14; // The contents of dist/main.map - - // CODE_FETCH - string code_fetch_module_specifier = 20; - string code_fetch_containing_file = 21; - - // CODE_FETCH_RES - // If it's a non-http module, moduleName and filename will be the same. - // For http modules, moduleName is its resolved http URL, and filename - // is the location of the locally downloaded source code. - string code_fetch_res_module_name = 30; - string code_fetch_res_filename = 31; - string code_fetch_res_source_code = 32; - string code_fetch_res_output_code = 33; // Non-empty only if cached. - - // CODE_CACHE - string code_cache_filename = 41; - string code_cache_source_code = 42; - string code_cache_output_code = 43; - - // EXIT - int32 exit_code = 50; - - // TIMER_START - int32 timer_start_id = 60; - bool timer_start_interval = 61; - int32 timer_start_delay = 62; // In milliseconds. - - // TIMER_READY - int32 timer_ready_id = 70; - bool timer_ready_done = 71; - - // TIMER_CLEAR - int32 timer_clear_id = 80; - - // FETCH_REQ - int32 fetch_req_id = 90; - string fetch_req_url = 91; - // repeated string fetch_req_header_line = 91 - - // FETCH_RES - int32 fetch_res_id = 100; - int32 fetch_res_status = 101; - repeated string fetch_res_header_line = 102; - bytes fetch_res_body = 103; - - // READ_FILE_SYNC - string read_file_sync_filename = 110; - - // READ_FILE_SYNC_RES - bytes read_file_sync_data = 120; - - // WRITE_FILE_SYNC - string write_file_sync_filename = 130; - bytes write_file_sync_data = 131; - uint32 write_file_sync_perm = 132; - // write_file_sync_perm specified by https://godoc.org/os#FileMode -} diff --git a/os.go b/os.go deleted file mode 100644 index 5cbb0f5ec9..0000000000 --- a/os.go +++ /dev/null @@ -1,195 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -package deno - -import ( - "github.com/golang/protobuf/proto" - "github.com/spf13/afero" - "io/ioutil" - "net/url" - "os" - "path" - "strings" -) - -const assetPrefix string = "/$asset$/" - -var fs afero.Fs - -func InitOS() { - if Perms.FsWrite { - assert(Perms.FsRead, "Write access requires read access.") - fs = afero.NewOsFs() - } else if Perms.FsRead { - fs = afero.NewReadOnlyFs(afero.NewOsFs()) - } else { - panic("Not implemented.") - } - - Sub("os", func(buf []byte) []byte { - msg := &Msg{} - check(proto.Unmarshal(buf, msg)) - switch msg.Command { - case Msg_CODE_FETCH: - return HandleCodeFetch( - msg.CodeFetchModuleSpecifier, - msg.CodeFetchContainingFile) - case Msg_CODE_CACHE: - return HandleCodeCache( - msg.CodeCacheFilename, - msg.CodeCacheSourceCode, - msg.CodeCacheOutputCode) - case Msg_EXIT: - os.Exit(int(msg.ExitCode)) - case Msg_READ_FILE_SYNC: - return ReadFileSync(msg.ReadFileSyncFilename) - case Msg_WRITE_FILE_SYNC: - return WriteFileSync(msg.WriteFileSyncFilename, msg.WriteFileSyncData, - msg.WriteFileSyncPerm) - default: - panic("[os] Unexpected message " + string(buf)) - } - return nil - }) -} - -func SrcFileToUrl(filename string) string { - assert(len(SrcDir) > 0, "SrcDir shouldn't be empty") - if strings.HasPrefix(filename, SrcDir) { - rest := strings.TrimPrefix(filename, SrcDir) - if rest[0] == '/' { - rest = rest[1:] - } - - return "http://" + rest - } else { - return filename - } -} - -func ResolveModule(moduleSpecifier string, containingFile string) ( - moduleName string, filename string, err error) { - - logDebug("os.go ResolveModule moduleSpecifier %s containingFile %s", - moduleSpecifier, containingFile) - - containingFile = SrcFileToUrl(containingFile) - moduleSpecifier = SrcFileToUrl(moduleSpecifier) - - logDebug("os.go ResolveModule after moduleSpecifier %s containingFile %s", - moduleSpecifier, containingFile) - - moduleUrl, err := url.Parse(moduleSpecifier) - if err != nil { - return - } - baseUrl, err := url.Parse(containingFile) - if err != nil { - return - } - resolved := baseUrl.ResolveReference(moduleUrl) - moduleName = resolved.String() - if resolved.IsAbs() { - filename = path.Join(SrcDir, resolved.Host, resolved.Path) - } else { - filename = resolved.Path - } - return -} - -func HandleCodeFetch(moduleSpecifier string, containingFile string) (out []byte) { - assert(moduleSpecifier != "", "moduleSpecifier shouldn't be empty") - res := &Msg{} - var sourceCodeBuf []byte - var err error - - defer func() { - if err != nil { - res.Error = err.Error() - } - out, err = proto.Marshal(res) - check(err) - }() - - moduleName, filename, err := ResolveModule(moduleSpecifier, containingFile) - if err != nil { - return - } - - logDebug("CodeFetch moduleName %s moduleSpecifier %s containingFile %s filename %s", - moduleName, moduleSpecifier, containingFile, filename) - - if isRemote(moduleName) { - sourceCodeBuf, err = FetchRemoteSource(moduleName, filename) - } else if strings.HasPrefix(moduleName, assetPrefix) { - f := strings.TrimPrefix(moduleName, assetPrefix) - sourceCodeBuf, err = Asset(path.Join("dist", f)) - if err != nil { - logDebug("%s Asset doesn't exist. Return without error", moduleName) - err = nil - } - } else { - assert(moduleName == filename, - "if a module isn't remote, it should have the same filename") - sourceCodeBuf, err = ioutil.ReadFile(moduleName) - } - if err != nil { - return - } - - outputCode, err := LoadOutputCodeCache(filename, sourceCodeBuf) - if err != nil { - return - } - - var sourceCode = string(sourceCodeBuf) - res = &Msg{ - Command: Msg_CODE_FETCH_RES, - CodeFetchResModuleName: moduleName, - CodeFetchResFilename: filename, - CodeFetchResSourceCode: sourceCode, - CodeFetchResOutputCode: outputCode, - } - return -} - -func HandleCodeCache(filename string, sourceCode string, - outputCode string) []byte { - - fn := CacheFileName(filename, []byte(sourceCode)) - outputCodeBuf := []byte(outputCode) - err := ioutil.WriteFile(fn, outputCodeBuf, 0600) - res := &Msg{} - if err != nil { - res.Error = err.Error() - } - out, err := proto.Marshal(res) - check(err) - return out -} - -func ReadFileSync(filename string) []byte { - data, err := afero.ReadFile(fs, filename) - res := &Msg{ - Command: Msg_READ_FILE_SYNC_RES, - } - if err != nil { - res.Error = err.Error() - } else { - res.ReadFileSyncData = data - } - out, err := proto.Marshal(res) - check(err) - return out -} - -func WriteFileSync(filename string, data []byte, perm uint32) []byte { - err := afero.WriteFile(fs, filename, data, os.FileMode(perm)) - res := &Msg{} - if err != nil { - res.Error = err.Error() - } - out, err := proto.Marshal(res) - check(err) - return out -} diff --git a/os.ts b/os.ts deleted file mode 100644 index a51c6ec5d8..0000000000 --- a/os.ts +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -import { ModuleInfo } from "./types"; -import { pubInternal } from "./dispatch"; -import { deno as pb } from "./msg.pb"; -import { assert } from "./util"; - -export function exit(exitCode = 0): void { - pubInternal("os", { - command: pb.Msg.Command.EXIT, - exitCode - }); -} - -export function codeFetch( - moduleSpecifier: string, - containingFile: string -): ModuleInfo { - const res = pubInternal("os", { - command: pb.Msg.Command.CODE_FETCH, - codeFetchModuleSpecifier: moduleSpecifier, - codeFetchContainingFile: containingFile - }); - assert(res.command === pb.Msg.Command.CODE_FETCH_RES); - return { - moduleName: res.codeFetchResModuleName, - filename: res.codeFetchResFilename, - sourceCode: res.codeFetchResSourceCode, - outputCode: res.codeFetchResOutputCode - }; -} - -export function codeCache( - filename: string, - sourceCode: string, - outputCode: string -): void { - pubInternal("os", { - command: pb.Msg.Command.CODE_CACHE, - codeCacheFilename: filename, - codeCacheSourceCode: sourceCode, - codeCacheOutputCode: outputCode - }); -} - -export function readFileSync(filename: string): Uint8Array { - const res = pubInternal("os", { - command: pb.Msg.Command.READ_FILE_SYNC, - readFileSyncFilename: filename - }); - return res.readFileSyncData; -} - -export function writeFileSync( - filename: string, - data: Uint8Array, - perm: number -): void { - pubInternal("os", { - command: pb.Msg.Command.WRITE_FILE_SYNC, - writeFileSyncFilename: filename, - writeFileSyncData: data, - writeFileSyncPerm: perm - }); -} diff --git a/os_test.go b/os_test.go deleted file mode 100644 index d1ffd3e297..0000000000 --- a/os_test.go +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -package deno - -import ( - "path" - "testing" -) - -func AssertEqual(t *testing.T, actual string, expected string) { - if actual != expected { - t.Fatalf("not equal <<%s>> <<%s>>", actual, expected) - } -} - -func TestResolveModule1(t *testing.T) { - createDirs() - moduleName, filename, err := ResolveModule( - "http://localhost:4545/testdata/subdir/print_hello.ts", - "/Users/rld/go/src/github.com/ry/deno/testdata/006_url_imports.ts") - if err != nil { - t.Fatalf(err.Error()) - } - AssertEqual(t, moduleName, - "http://localhost:4545/testdata/subdir/print_hello.ts") - AssertEqual(t, filename, - path.Join(SrcDir, "localhost:4545/testdata/subdir/print_hello.ts")) -} - -func TestResolveModule2(t *testing.T) { - createDirs() - moduleName, filename, err := ResolveModule( - "./subdir/print_hello.ts", - "/Users/rld/go/src/github.com/ry/deno/testdata/006_url_imports.ts") - if err != nil { - t.Fatalf(err.Error()) - } - AssertEqual(t, moduleName, - "/Users/rld/go/src/github.com/ry/deno/testdata/subdir/print_hello.ts") - AssertEqual(t, filename, - "/Users/rld/go/src/github.com/ry/deno/testdata/subdir/print_hello.ts") -} - -func TestResolveModule3(t *testing.T) { - createDirs() - // In the case where the containingFile is a directory (indicated with a - // trailing slash) - moduleName, filename, err := ResolveModule( - "testdata/001_hello.js", - "/Users/rld/go/src/github.com/ry/deno/") - if err != nil { - t.Fatalf(err.Error()) - } - AssertEqual(t, moduleName, - "/Users/rld/go/src/github.com/ry/deno/testdata/001_hello.js") - AssertEqual(t, filename, - "/Users/rld/go/src/github.com/ry/deno/testdata/001_hello.js") -} - -func TestResolveModule4(t *testing.T) { - createDirs() - // Files in SrcDir should resolve to URLs. - moduleName, filename, err := ResolveModule( - path.Join(SrcDir, "unpkg.com/liltest@0.0.5/index.ts"), - ".") - if err != nil { - t.Fatalf(err.Error()) - } - AssertEqual(t, moduleName, - "http://unpkg.com/liltest@0.0.5/index.ts") - AssertEqual(t, filename, - path.Join(SrcDir, "unpkg.com/liltest@0.0.5/index.ts")) -} - -func TestResolveModuleExtensionsAintSpecial(t *testing.T) { - createDirs() - moduleName, filename, err := ResolveModule( - "./util", - path.Join(SrcDir, "unpkg.com/liltest@0.0.5/index.ts")) - if err != nil { - t.Fatalf(err.Error()) - } - AssertEqual(t, moduleName, - "http://unpkg.com/liltest@0.0.5/util") - AssertEqual(t, filename, - path.Join(SrcDir, "unpkg.com/liltest@0.0.5/util")) -} diff --git a/package.json b/package.json deleted file mode 100644 index 8da3f7406a..0000000000 --- a/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "deno", - "scripts": { - "lint": "tslint -p tsconfig.json -c tslint.json", - "fmt": "prettier --write *.ts* *.js *.json" - }, - "devDependencies": { - "@types/base64-js": "^1.2.5", - "@types/source-map-support": "^0.4.0", - "babel-polyfill": "^6.26.0", - "base64-js": "^1.3.0", - "espree": "^3.5.3", - "jsdoc": "^3.5.5", - "parcel-bundler": "^1.8.1", - "prettier": "^1.12.1", - "protobufjs": "^6.8.6", - "source-map": "0.6.0", - "text-encoding": "^0.6.4", - "tmp": "0.0.33", - "tslint": "5.10.0", - "typescript": "^2.8.3", - "uglify-js": "^2.8.29" - }, - "dependencies": {} -} diff --git a/runtime.ts b/runtime.ts deleted file mode 100644 index 46538c80fa..0000000000 --- a/runtime.ts +++ /dev/null @@ -1,339 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -// Glossary -// outputCode = generated javascript code -// sourceCode = typescript code (or input javascript code) -// moduleName = a resolved module name -// fileName = an unresolved raw fileName. -// for http modules , its the path to the locally downloaded -// version. - -import * as ts from "typescript"; -import * as util from "./util"; -import { log } from "./util"; -import * as os from "./os"; -import * as sourceMaps from "./v8_source_maps"; -import { _global, globalEval } from "./globals"; -import * as deno from "./deno"; - -const EOL = "\n"; - -// tslint:disable-next-line:no-any -export type AmdFactory = (...args: any[]) => undefined | object; -export type AmdDefine = (deps: string[], factory: AmdFactory) => void; - -// Uncaught exceptions are sent to window.onerror by v8worker2. -// https://git.io/vhOsf -window.onerror = (message, source, lineno, colno, error) => { - // TODO Currently there is a bug in v8_source_maps.ts that causes a segfault - // if it is used within window.onerror. To workaround we uninstall the - // Error.prepareStackTrace handler. Users will get unmapped stack traces on - // uncaught exceptions until this issue is fixed. - Error.prepareStackTrace = null; - console.log(error.message, error.stack); - os.exit(1); -}; - -export function setup(mainJs: string, mainMap: string): void { - sourceMaps.install({ - installPrepareStackTrace: true, - getGeneratedContents: (filename: string): string => { - if (filename === "/main.js") { - return mainJs; - } else if (filename === "/main.map") { - return mainMap; - } else { - const mod = FileModule.load(filename); - if (!mod) { - console.error("getGeneratedContents cannot find", filename); - } - return mod.outputCode; - } - } - }); -} - -// This class represents a module. We call it FileModule to make it explicit -// that each module represents a single file. -// Access to FileModule instances should only be done thru the static method -// FileModule.load(). FileModules are NOT executed upon first load, only when -// compileAndRun is called. -export class FileModule { - scriptVersion: string; - readonly exports = {}; - - private static readonly map = new Map(); - constructor( - readonly fileName: string, - readonly sourceCode = "", - public outputCode = "" - ) { - util.assert( - !FileModule.map.has(fileName), - `FileModule.map already has ${fileName}` - ); - FileModule.map.set(fileName, this); - if (outputCode !== "") { - this.scriptVersion = "1"; - } - } - - compileAndRun(): void { - if (!this.outputCode) { - // If there is no cached outputCode, then compile the code. - util.assert( - this.sourceCode != null && this.sourceCode.length > 0, - `Have no source code from ${this.fileName}` - ); - const compiler = Compiler.instance(); - this.outputCode = compiler.compile(this.fileName); - os.codeCache(this.fileName, this.sourceCode, this.outputCode); - } - util.log("compileAndRun", this.sourceCode); - execute(this.fileName, this.outputCode); - } - - static load(fileName: string): FileModule { - return this.map.get(fileName); - } - - static getScriptsWithSourceCode(): string[] { - const out = []; - for (const fn of this.map.keys()) { - const m = this.map.get(fn); - if (m.sourceCode) { - out.push(fn); - } - } - return out; - } -} - -export function makeDefine(fileName: string): AmdDefine { - const localDefine = (deps: string[], factory: AmdFactory): void => { - const localRequire = (x: string) => { - log("localRequire", x); - }; - const currentModule = FileModule.load(fileName); - const localExports = currentModule.exports; - log("localDefine", fileName, deps, localExports); - const args = deps.map(dep => { - if (dep === "require") { - return localRequire; - } else if (dep === "exports") { - return localExports; - } else if (dep === "typescript") { - return ts; - } else if (dep === "deno") { - return deno; - } else { - const resolved = resolveModuleName(dep, fileName); - const depModule = FileModule.load(resolved); - depModule.compileAndRun(); - return depModule.exports; - } - }); - factory(...args); - }; - return localDefine; -} - -export function resolveModule( - moduleSpecifier: string, - containingFile: string -): null | FileModule { - //util.log("resolveModule", { moduleSpecifier, containingFile }); - util.assert(moduleSpecifier != null && moduleSpecifier.length > 0); - // We ask golang to sourceCodeFetch. It will load the sourceCode and if - // there is any outputCode cached, it will return that as well. - let fetchResponse; - try { - fetchResponse = os.codeFetch(moduleSpecifier, containingFile); - } catch (e) { - // TODO Only catch "no such file or directory" errors. Need error codes. - return null; - } - const { filename, sourceCode, outputCode } = fetchResponse; - if (sourceCode.length === 0) { - return null; - } - util.log("resolveModule sourceCode length ", sourceCode.length); - const m = FileModule.load(filename); - if (m != null) { - return m; - } else { - return new FileModule(filename, sourceCode, outputCode); - } -} - -function resolveModuleName( - moduleSpecifier: string, - containingFile: string -): string | undefined { - const mod = resolveModule(moduleSpecifier, containingFile); - if (mod) { - return mod.fileName; - } else { - return undefined; - } -} - -function execute(fileName: string, outputCode: string): void { - util.assert(outputCode && outputCode.length > 0); - _global["define"] = makeDefine(fileName); - outputCode += `\n//# sourceURL=${fileName}`; - globalEval(outputCode); - _global["define"] = null; -} - -// This is a singleton class. Use Compiler.instance() to access. -class Compiler { - options: ts.CompilerOptions = { - allowJs: true, - module: ts.ModuleKind.AMD, - outDir: "$deno$", - inlineSourceMap: true, - lib: ["es2017"], - inlineSources: true, - target: ts.ScriptTarget.ES2017 - }; - /* - allowJs: true, - module: ts.ModuleKind.AMD, - noEmit: false, - outDir: '$deno$', - */ - private service: ts.LanguageService; - - private constructor() { - const host = new TypeScriptHost(this.options); - this.service = ts.createLanguageService(host); - } - - private static _instance: Compiler; - static instance(): Compiler { - return this._instance || (this._instance = new this()); - } - - compile(fileName: string): string { - const output = this.service.getEmitOutput(fileName); - - // Get the relevant diagnostics - this is 3x faster than - // `getPreEmitDiagnostics`. - const diagnostics = this.service - .getCompilerOptionsDiagnostics() - .concat(this.service.getSyntacticDiagnostics(fileName)) - .concat(this.service.getSemanticDiagnostics(fileName)); - if (diagnostics.length > 0) { - const errMsg = ts.formatDiagnosticsWithColorAndContext( - diagnostics, - formatDiagnosticsHost - ); - console.log(errMsg); - os.exit(1); - } - - util.assert(!output.emitSkipped); - - const outputCode = output.outputFiles[0].text; - // let sourceMapCode = output.outputFiles[0].text; - return outputCode; - } -} - -// Create the compiler host for type checking. -class TypeScriptHost implements ts.LanguageServiceHost { - constructor(readonly options: ts.CompilerOptions) {} - - getScriptFileNames(): string[] { - const keys = FileModule.getScriptsWithSourceCode(); - util.log("getScriptFileNames", keys); - return keys; - } - - getScriptVersion(fileName: string): string { - util.log("getScriptVersion", fileName); - const m = FileModule.load(fileName); - return m.scriptVersion; - } - - getScriptSnapshot(fileName: string): ts.IScriptSnapshot | undefined { - util.log("getScriptSnapshot", fileName); - const m = resolveModule(fileName, "."); - if (m == null) { - util.log("getScriptSnapshot", fileName, "NOT FOUND"); - return undefined; - } - //const m = resolveModule(fileName, "."); - util.assert(m.sourceCode.length > 0); - return ts.ScriptSnapshot.fromString(m.sourceCode); - } - - fileExists(fileName: string): boolean { - const m = resolveModule(fileName, "."); - const exists = m != null; - util.log("fileExist", fileName, exists); - return exists; - } - - readFile(path: string, encoding?: string): string | undefined { - util.log("readFile", path); - throw Error("not implemented"); - } - - getNewLine() { - return EOL; - } - - getCurrentDirectory() { - util.log("getCurrentDirectory"); - return "."; - } - - getCompilationSettings() { - util.log("getCompilationSettings"); - return this.options; - } - - getDefaultLibFileName(options: ts.CompilerOptions): string { - const fn = ts.getDefaultLibFileName(options); - util.log("getDefaultLibFileName", fn); - const m = resolveModule(fn, "/$asset$/"); - return m.fileName; - } - - resolveModuleNames( - moduleNames: string[], - containingFile: string, - reusedNames?: string[] - ): Array { - //util.log("resolveModuleNames", { moduleNames, reusedNames }); - return moduleNames.map((name: string) => { - let resolvedFileName; - if (name === "deno") { - resolvedFileName = resolveModuleName("deno.d.ts", "/$asset$/"); - } else if (name === "typescript") { - resolvedFileName = resolveModuleName("typescript.d.ts", "/$asset$/"); - } else { - resolvedFileName = resolveModuleName(name, containingFile); - if (resolvedFileName == null) { - return undefined; - } - } - const isExternalLibraryImport = false; - return { resolvedFileName, isExternalLibraryImport }; - }); - } -} - -const formatDiagnosticsHost: ts.FormatDiagnosticsHost = { - getCurrentDirectory(): string { - return "."; - }, - getCanonicalFileName(fileName: string): string { - return fileName; - }, - getNewLine(): string { - return EOL; - } -}; diff --git a/testdata/001_hello.js b/testdata/001_hello.js deleted file mode 100644 index accefceba6..0000000000 --- a/testdata/001_hello.js +++ /dev/null @@ -1 +0,0 @@ -console.log("Hello World"); diff --git a/testdata/001_hello.js.out b/testdata/001_hello.js.out deleted file mode 100644 index 557db03de9..0000000000 --- a/testdata/001_hello.js.out +++ /dev/null @@ -1 +0,0 @@ -Hello World diff --git a/testdata/002_hello.ts b/testdata/002_hello.ts deleted file mode 100644 index accefceba6..0000000000 --- a/testdata/002_hello.ts +++ /dev/null @@ -1 +0,0 @@ -console.log("Hello World"); diff --git a/testdata/002_hello.ts.out b/testdata/002_hello.ts.out deleted file mode 100644 index 557db03de9..0000000000 --- a/testdata/002_hello.ts.out +++ /dev/null @@ -1 +0,0 @@ -Hello World diff --git a/testdata/003_relative_import.ts b/testdata/003_relative_import.ts deleted file mode 100644 index 01d5d7faac..0000000000 --- a/testdata/003_relative_import.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { printHello } from "./subdir/print_hello.ts"; - -printHello(); diff --git a/testdata/003_relative_import.ts.out b/testdata/003_relative_import.ts.out deleted file mode 100644 index e965047ad7..0000000000 --- a/testdata/003_relative_import.ts.out +++ /dev/null @@ -1 +0,0 @@ -Hello diff --git a/testdata/004_set_timeout.ts b/testdata/004_set_timeout.ts deleted file mode 100644 index 214b25086c..0000000000 --- a/testdata/004_set_timeout.ts +++ /dev/null @@ -1,11 +0,0 @@ -setTimeout(() => { - console.log("World"); -}, 10); - -console.log("Hello"); - -const id = setTimeout(() => { - console.log("Not printed"); -}, 10000); - -clearTimeout(id); diff --git a/testdata/004_set_timeout.ts.out b/testdata/004_set_timeout.ts.out deleted file mode 100644 index f9264f7fbd..0000000000 --- a/testdata/004_set_timeout.ts.out +++ /dev/null @@ -1,2 +0,0 @@ -Hello -World diff --git a/testdata/005_more_imports.ts b/testdata/005_more_imports.ts deleted file mode 100644 index 52dd1df7b9..0000000000 --- a/testdata/005_more_imports.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { returnsHi, returnsFoo2, printHello3 } from "./subdir/mod1.ts"; - -printHello3(); - -if (returnsHi() !== "Hi") { - throw Error("Unexpected"); -} - -if (returnsFoo2() !== "Foo") { - throw Error("Unexpected"); -} diff --git a/testdata/005_more_imports.ts.out b/testdata/005_more_imports.ts.out deleted file mode 100644 index e965047ad7..0000000000 --- a/testdata/005_more_imports.ts.out +++ /dev/null @@ -1 +0,0 @@ -Hello diff --git a/testdata/006_url_imports.ts b/testdata/006_url_imports.ts deleted file mode 100644 index 57af683cf0..0000000000 --- a/testdata/006_url_imports.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { printHello } from "http://localhost:4545/testdata/subdir/print_hello.ts"; -printHello(); -console.log("success"); diff --git a/testdata/006_url_imports.ts.out b/testdata/006_url_imports.ts.out deleted file mode 100644 index f745fe3cf5..0000000000 --- a/testdata/006_url_imports.ts.out +++ /dev/null @@ -1,3 +0,0 @@ -Downloading http://localhost:4545/testdata/subdir/print_hello.ts -Hello -success diff --git a/testdata/008_stack_trace.ts b/testdata/008_stack_trace.ts deleted file mode 100644 index 6aa0fcc3b6..0000000000 --- a/testdata/008_stack_trace.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { throwsError } from "./subdir/mod1.ts"; - -function foo() { - throwsError(); -} - -foo(); diff --git a/testdata/009_pub_sub.ts b/testdata/009_pub_sub.ts deleted file mode 100644 index 3d33c820d2..0000000000 --- a/testdata/009_pub_sub.ts +++ /dev/null @@ -1,18 +0,0 @@ -import * as deno from "deno"; - -deno.sub("echo", (ui8: Uint8Array) => { - const str = String.fromCharCode.apply(null, ui8); - console.log("Got message", str); -}); - -function str2ui8(str: string): Uint8Array { - const ui8 = new Uint8Array(str.length); - for (let i = 0; i < str.length; i++) { - ui8[i] = str.charCodeAt(i); - } - return ui8; -} - -console.log("Before deno.pub()"); -deno.pub("echo", str2ui8("hello")); -console.log("After deno.pub()"); diff --git a/testdata/009_pub_sub.ts.out b/testdata/009_pub_sub.ts.out deleted file mode 100644 index d5581cafbe..0000000000 --- a/testdata/009_pub_sub.ts.out +++ /dev/null @@ -1,3 +0,0 @@ -Before deno.pub() -After deno.pub() -Got message hello diff --git a/testdata/010_set_interval.ts b/testdata/010_set_interval.ts deleted file mode 100644 index e013d00bc6..0000000000 --- a/testdata/010_set_interval.ts +++ /dev/null @@ -1,7 +0,0 @@ -const id = setInterval(function() { - console.log("test") -}, 200); - -setTimeout(function() { - clearInterval(id) -}, 500) diff --git a/testdata/010_set_interval.ts.out b/testdata/010_set_interval.ts.out deleted file mode 100644 index dec2cbe1fa..0000000000 --- a/testdata/010_set_interval.ts.out +++ /dev/null @@ -1,2 +0,0 @@ -test -test diff --git a/testdata/012_async.ts b/testdata/012_async.ts deleted file mode 100644 index 57ae355c25..0000000000 --- a/testdata/012_async.ts +++ /dev/null @@ -1,11 +0,0 @@ -// Check that we can use the async keyword. -async function main() { - await new Promise((resolve, reject) => { - console.log("2"); - setTimeout(resolve, 100); - }); - console.log("3"); -} - -console.log("1"); -main(); diff --git a/testdata/012_async.ts.out b/testdata/012_async.ts.out deleted file mode 100644 index 01e79c32a8..0000000000 --- a/testdata/012_async.ts.out +++ /dev/null @@ -1,3 +0,0 @@ -1 -2 -3 diff --git a/testdata/async_error.ts b/testdata/async_error.ts deleted file mode 100644 index 12dee11eb0..0000000000 --- a/testdata/async_error.ts +++ /dev/null @@ -1,9 +0,0 @@ - -console.log("hello"); -const foo = async () => { - console.log("before error"); - throw Error("error"); -} - -foo(); -console.log("world"); diff --git a/testdata/async_error.ts.out b/testdata/async_error.ts.out deleted file mode 100644 index 7b7dc9d199..0000000000 --- a/testdata/async_error.ts.out +++ /dev/null @@ -1,10 +0,0 @@ -hello -before error -error Error: error - at foo ([WILDCARD]testdata/async_error.ts:4:11) - at eval ([WILDCARD]testdata/async_error.ts:6:1) - at Object.eval [as globalEval] () - at execute (/main.js:[WILDCARD]) - at FileModule.compileAndRun (/main.js:[WILDCARD]) - at /main.js:[WILDCARD] - at /main.js:[WILDCARD] diff --git a/testdata/error.ts b/testdata/error.ts deleted file mode 100644 index 624bc55da0..0000000000 --- a/testdata/error.ts +++ /dev/null @@ -1,9 +0,0 @@ -function foo() { - throw Error("bad"); -} - -function bar() { - foo() -} - -bar() diff --git a/testdata/error.ts.out b/testdata/error.ts.out deleted file mode 100644 index 952758df91..0000000000 --- a/testdata/error.ts.out +++ /dev/null @@ -1,10 +0,0 @@ -/main.js:[WILDCARD] - throw _iteratorError; - ^ -Error: bad - at foo ([WILDCARD]testdata/error.ts:2:9) - at bar ([WILDCARD]testdata/error.ts:6:3) - at eval ([WILDCARD]testdata/error.ts:9:1) - at Object.eval [as globalEval] () - at execute (../runtime.ts:[WILDCARD]) - at FileModule.compileAndRun (../runtime.ts:[WILDCARD] diff --git a/testdata/import_typescript.ts b/testdata/import_typescript.ts deleted file mode 100644 index 0f161ceb0a..0000000000 --- a/testdata/import_typescript.ts +++ /dev/null @@ -1,3 +0,0 @@ -import * as ts from "typescript"; - -console.log("typescript version", ts.version); diff --git a/testdata/import_typescript.ts.out b/testdata/import_typescript.ts.out deleted file mode 100644 index 0a142219b3..0000000000 --- a/testdata/import_typescript.ts.out +++ /dev/null @@ -1 +0,0 @@ -typescript version 2.8.3 diff --git a/testdata/subdir/mod1.ts b/testdata/subdir/mod1.ts deleted file mode 100644 index 393535588a..0000000000 --- a/testdata/subdir/mod1.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { returnsFoo, printHello2 } from "./subdir2/mod2.ts"; - -export function returnsHi(): string { - return "Hi"; -} - -export function returnsFoo2(): string { - return returnsFoo(); -} - -export function printHello3(): void { - printHello2(); -} - -export function throwsError(): void { - throw Error("exception from mod1"); -} diff --git a/testdata/subdir/print_hello.ts b/testdata/subdir/print_hello.ts deleted file mode 100644 index 7ecce50405..0000000000 --- a/testdata/subdir/print_hello.ts +++ /dev/null @@ -1,3 +0,0 @@ -export function printHello(): void { - console.log("Hello"); -} diff --git a/testdata/subdir/subdir2/mod2.ts b/testdata/subdir/subdir2/mod2.ts deleted file mode 100644 index c88d4708c8..0000000000 --- a/testdata/subdir/subdir2/mod2.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { printHello } from "../print_hello.ts"; - -export function returnsFoo(): string { - return "Foo"; -} - -export function printHello2(): void { - printHello(); -} diff --git a/testing/testing.ts b/testing/testing.ts deleted file mode 100644 index 4d7cd9c6cc..0000000000 --- a/testing/testing.ts +++ /dev/null @@ -1,96 +0,0 @@ -/*! - Copyright 2018 Propel http://propel.site/. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -export { assert, assertEqual, equal } from "./util.ts"; - -export type TestFunction = () => void | Promise; - -export interface TestDefinition { - fn: TestFunction; - name: string; -} - -export const exitOnFail = true; - -/* A subset of the tests can be ran by providing a filter expression. - * In Node.js the filter is specified on the command line: - * - * ts-node test_node log # all tests with 'log' in the name - * ts-node test_node ^util # tests starting with 'util' - * - * In the browser, the filter is specified as part of the url: - * - * http://localhost:9876/test.html#script=some/script.js&filter=log - * http://localhost:9876/test.html#script=some/script.js&filter=^util - */ -let filterExpr: string = null; - -const filterRegExp = filterExpr ? new RegExp(filterExpr, "i") : null; -const tests: TestDefinition[] = []; - -export function test(t: TestDefinition | TestFunction): void { - const fn: TestFunction = typeof t === "function" ? t : t.fn; - const name: string = t.name; - - if (!name) { - throw new Error("Test function may not be anonymous"); - } - if (filter(name)) { - tests.push({ fn, name }); - } -} - -function filter(name: string): boolean { - if (filterRegExp) { - return filterRegExp.test(name); - } else { - return true; - } -} - -async function runTests() { - let passed = 0; - let failed = 0; - - for (let i = 0; i < tests.length; i++) { - const { fn, name } = tests[i]; - console.log(`${i+1}/${tests.length} +${passed} -${failed}: ${name}`); - try { - await fn(); - passed++; - } catch (e) { - console.error("\nTest FAIL", name); - console.error((e && e.stack) || e); - failed++; - if (exitOnFail) { - break; - } - } - } - - console.log(`\nDONE. Test passed: ${passed}, failed: ${failed}`); - - if (failed === 0) { - // All good. - } else { - // Use setTimeout to avoid the error being ignored due to unhandled - // promise rejections being swallowed. - setTimeout(() => { - throw new Error(`There were ${failed} test failures.`); - }, 0); - } -} - -setTimeout(runTests, 0); diff --git a/testing/util.ts b/testing/util.ts deleted file mode 100644 index 509713005b..0000000000 --- a/testing/util.ts +++ /dev/null @@ -1,60 +0,0 @@ -/*! - Copyright 2018 Propel http://propel.site/. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -// tslint:disable-next-line:no-any -export function assertEqual(actual: any, expected: any, msg?: string) { - if (!msg) { msg = `actual: ${actual} expected: ${expected}`; } - if (!equal(actual, expected)) { - console.error( - "assertEqual failed. actual = ", actual, "expected =", expected); - throw new Error(msg); - } -} - -export function assert(expr: boolean, msg = "") { - if (!expr) { - throw new Error(msg); - } -} - -// tslint:disable-next-line:no-any -export function equal(c: any, d: any): boolean { - const seen = new Map(); - return (function compare(a, b) { - if (a === b) { - return true; - } - if (typeof a === "number" && typeof b === "number" && - isNaN(a) && isNaN(b)) { - return true; - } - if (a && typeof a === "object" && b && typeof b === "object") { - if (seen.get(a) === b) { - return true; - } - if (Object.keys(a).length !== Object.keys(b).length) { - return false; - } - for (const key in { ...a, ...b }) { - if (!compare(a[key], b[key])) { - return false; - } - } - seen.set(a, b); - return true; - } - return false; - })(c, d); -} diff --git a/testing/util_test.ts b/testing/util_test.ts deleted file mode 100644 index 679ab5675e..0000000000 --- a/testing/util_test.ts +++ /dev/null @@ -1,32 +0,0 @@ -/*! - Copyright 2018 Propel http://propel.site/. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -import { test } from "./testing.ts"; -import { assert } from "./util.ts"; -import * as util from "./util.ts"; - -test(async function util_equal() { - assert(util.equal("world", "world")); - assert(!util.equal("hello", "world")); - assert(util.equal(5, 5)); - assert(!util.equal(5, 6)); - assert(util.equal(NaN, NaN)); - assert(util.equal({ hello: "world" }, { hello: "world" })); - assert(!util.equal({ world: "hello" }, { hello: "world" })); - assert(util.equal({ hello: "world", hi: { there: "everyone" } }, - { hello: "world", hi: { there: "everyone" } })); - assert(!util.equal({ hello: "world", hi: { there: "everyone" } }, - { hello: "world", hi: { there: "everyone else" } })); -}); diff --git a/tests.ts b/tests.ts deleted file mode 100644 index 22bf77a6c9..0000000000 --- a/tests.ts +++ /dev/null @@ -1,126 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -// This test is executed as part of integration_test.go -// But it can also be run manually: -// ./deno tests.ts -// There must also be a static file http server running on localhost:4545 -// serving the deno project directory. Try this: -// http-server -p 4545 --cors . -import { test, assert, assertEqual } from "./testing/testing.ts"; -import { readFileSync, writeFileSync } from "deno"; - -test(async function tests_test() { - assert(true); -}); - -test(async function tests_fetch() { - const response = await fetch("http://localhost:4545/package.json"); - const json = await response.json(); - assertEqual(json.name, "deno"); -}); - -test(function tests_console_assert() { - console.assert(true); - - let hasThrown = false; - try { - console.assert(false); - } catch { - hasThrown = true; - } - assertEqual(hasThrown, true); -}); - -test(async function tests_readFileSync() { - const data = readFileSync("package.json"); - if (!data.byteLength) { - throw Error( - `Expected positive value for data.byteLength ${data.byteLength}` - ); - } - const decoder = new TextDecoder("utf-8"); - const json = decoder.decode(data); - const pkg = JSON.parse(json); - assertEqual(pkg.name, "deno"); -}); - -test(async function tests_writeFileSync() { - const enc = new TextEncoder(); - const data = enc.encode("Hello"); - // TODO need ability to get tmp dir. - const fn = "/tmp/test.txt"; - writeFileSync("/tmp/test.txt", data, 0o666); - const dataRead = readFileSync("/tmp/test.txt"); - const dec = new TextDecoder("utf-8"); - const actual = dec.decode(dataRead); - assertEqual("Hello", actual); -}); - -test(function tests_console_assert() { - console.assert(true); - - let hasThrown = false; - try { - console.assert(false); - } catch { - hasThrown = true; - } - assertEqual(hasThrown, true); -}); - -test(function tests_console_stringify_circular() { - class Base { - a = 1; - m1() {} - } - - class Extended extends Base { - b = 2; - m2() {} - } - - // tslint:disable-next-line:no-any - const nestedObj: any = { - num: 1, - bool: true, - str: "a", - method() {}, - un: undefined, - nu: null, - arrowFunc: () => {}, - extendedClass: new Extended(), - nFunc: new Function(), - extendedCstr: Extended - }; - - const circularObj = { - num: 2, - bool: false, - str: "b", - method() {}, - un: undefined, - nu: null, - nested: nestedObj, - emptyObj: {}, - arr: [1, "s", false, null, nestedObj], - baseClass: new Base() - }; - - nestedObj.o = circularObj; - - try { - console.log(1); - console.log("s"); - console.log(false); - console.log(Symbol(1)); - console.log(null); - console.log(undefined); - console.log(new Extended()); - console.log(function f() {}); - console.log(nestedObj); - console.log(JSON); - console.log(console); - } catch { - throw new Error("Expected no crash on circular object"); - } -}); diff --git a/text-encoding.d.ts b/text-encoding.d.ts deleted file mode 100644 index 6feadad9c4..0000000000 --- a/text-encoding.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -// Remove and depend on @types/text-encoding once this PR is merged -// https://github.com/DefinitelyTyped/DefinitelyTyped/pull/26141 -declare module "text-encoding" { - export const TextEncoder: TextEncoder; - export const TextDecoder: TextDecoder; -} diff --git a/timers.go b/timers.go deleted file mode 100644 index 76b66cc630..0000000000 --- a/timers.go +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -package deno - -import ( - "github.com/golang/protobuf/proto" - "time" -) - -type Timer struct { - Id int32 - Done bool - Cleared bool - Interval bool - Delay int32 // In milliseconds -} - -var timers = make(map[int32]*Timer) - -func InitTimers() { - Sub("timers", func(buf []byte) []byte { - msg := &Msg{} - check(proto.Unmarshal(buf, msg)) - switch msg.Command { - case Msg_TIMER_START: - id := msg.TimerStartId - t := &Timer{ - Id: id, - Done: false, - Interval: msg.TimerStartInterval, - Delay: msg.TimerStartDelay, - Cleared: false, - } - if t.Delay < 10 { - t.Delay = 10 - } - t.StartTimer() - timers[id] = t - return nil - case Msg_TIMER_CLEAR: - // TODO maybe need mutex here. - timer := timers[msg.TimerClearId] - timer.Clear() - default: - panic("[timers] Unexpected message " + string(buf)) - } - return nil - }) -} - -func (t *Timer) Clear() { - if !t.Cleared { - wg.Done() - t.Cleared = true - delete(timers, t.Id) - } - t.Done = true -} - -func (t *Timer) StartTimer() { - wg.Add(1) - go func() { - defer t.Clear() - for { - time.Sleep(time.Duration(t.Delay) * time.Millisecond) - if !t.Interval { - t.Done = true - } - PubMsg("timers", &Msg{ - Command: Msg_TIMER_READY, - TimerReadyId: t.Id, - TimerReadyDone: t.Done, - }) - if t.Done { - return - } - } - }() -} diff --git a/timers.ts b/timers.ts deleted file mode 100644 index da2cccd89a..0000000000 --- a/timers.ts +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -import { deno as pb } from "./msg.pb"; -import { pubInternal, sub } from "./dispatch"; -import { assert } from "./util"; - -let nextTimerId = 1; - -// tslint:disable-next-line:no-any -export type TimerCallback = (...args: any[]) => void; - -interface Timer { - id: number; - cb: TimerCallback; - interval: boolean; - // tslint:disable-next-line:no-any - args: any[]; - delay: number; // milliseconds -} - -const timers = new Map(); - -export function initTimers() { - sub("timers", onMessage); -} - -function onMessage(payload: Uint8Array) { - const msg = pb.Msg.decode(payload); - assert(msg.command === pb.Msg.Command.TIMER_READY); - const { timerReadyId, timerReadyDone } = msg; - const timer = timers.get(timerReadyId); - if (!timer) { - return; - } - timer.cb(...timer.args); - if (timerReadyDone) { - timers.delete(timerReadyId); - } -} - -function setTimer( - cb: TimerCallback, - delay: number, - interval: boolean, - // tslint:disable-next-line:no-any - args: any[] -): number { - const timer = { - id: nextTimerId++, - interval, - delay, - args, - cb - }; - timers.set(timer.id, timer); - pubInternal("timers", { - command: pb.Msg.Command.TIMER_START, - timerStartId: timer.id, - timerStartInterval: timer.interval, - timerStartDelay: timer.delay - }); - return timer.id; -} - -export function setTimeout( - cb: TimerCallback, - delay: number, - // tslint:disable-next-line:no-any - ...args: any[] -): number { - return setTimer(cb, delay, false, args); -} - -export function setInterval( - cb: TimerCallback, - delay: number, - // tslint:disable-next-line:no-any - ...args: any[] -): number { - return setTimer(cb, delay, true, args); -} - -export function clearTimer(id: number) { - timers.delete(id); - pubInternal("timers", { - command: pb.Msg.Command.TIMER_CLEAR, - timerClearId: id - }); -} diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 410ff757ab..0000000000 --- a/tsconfig.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "compilerOptions": { - "allowJs": true, - "module": "commonjs", - "noImplicitAny": true, - "baseUrl": ".", - "removeComments": true, - "preserveConstEnums": true, - "declaration": true, - "target": "es2017", - "lib": ["es2017", "dom"], - "noEmit": true, - "noUnusedLocals": true, - "noImplicitReturns": true, - "noImplicitThis": true, - "alwaysStrict": true, - "noUnusedParameters": false, - "pretty": true, - "noFallthroughCasesInSwitch": true, - "allowUnreachableCode": false, - "experimentalDecorators": true - }, - "include": ["*.ts", "*.js"], - "exclude": ["tests.ts"] -} diff --git a/tslint.json b/tslint.json deleted file mode 100644 index a169c3861d..0000000000 --- a/tslint.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "rules": { - "array-type": [true, "array-simple"], - "arrow-return-shorthand": true, - "ban": [ - true, - ["fit"], - ["fdescribe"], - ["xit"], - ["xdescribe"], - ["fitAsync"], - ["xitAsync"], - ["fitFakeAsync"], - ["xitFakeAsync"] - ], - "ban-types": [ - true, - ["Object", "Use {} instead."], - ["String", "Use 'string' instead."], - ["Number", "Use 'number' instead."], - ["Boolean", "Use 'boolean' instead."] - ], - "class-name": true, - "curly": true, - "interface-name": [true, "never-prefix"], - "jsdoc-format": true, - "forin": false, - "label-position": true, - "max-line-length": [true, 80], - "new-parens": true, - "no-angle-bracket-type-assertion": true, - "no-any": true, - "no-construct": true, - "no-consecutive-blank-lines": true, - "no-debugger": true, - "no-default-export": true, - "no-inferrable-types": true, - //"no-namespace": [true, "allow-declarations"], - "no-reference": true, - "no-require-imports": true, - "no-string-throw": true, - "no-unused-expression": true, - "no-unused-variable": true, - "no-var-keyword": true, - "object-literal-shorthand": true, - "only-arrow-functions": [ - true, - "allow-declarations", - "allow-named-functions" - ], - "prefer-const": true, - "quotemark": [true, "double"], - "radix": true, - "restrict-plus-operands": true, - "semicolon": [true, "always", "ignore-bound-class-methods"], - "switch-default": true, - "triple-equals": [true, "allow-null-check"], - "use-isnan": true, - "variable-name": [ - true, - "check-format", - "ban-keywords", - "allow-leading-underscore", - "allow-trailing-underscore" - ] - } -} diff --git a/types.ts b/types.ts deleted file mode 100644 index d32d9f5a62..0000000000 --- a/types.ts +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -export type TypedArray = Uint8Array | Float32Array | Int32Array; - -export interface ModuleInfo { - moduleName?: string; - filename?: string; - sourceCode?: string; - outputCode?: string; -} diff --git a/url.js b/url.js deleted file mode 100644 index 76e32cc86f..0000000000 --- a/url.js +++ /dev/null @@ -1,671 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ - * Forked from https://github.com/github/url-polyfill - * Version 16c1aa Feb 9 2018. - */ - -(function(scope) { - "use strict"; - - // feature detect for URL constructor - var hasWorkingUrl = false; - if (!scope.forceJURL) { - try { - var u = new URL("b", "http://a"); - u.pathname = "c%20d"; - hasWorkingUrl = u.href === "http://a/c%20d"; - } catch (e) {} - } - - if (hasWorkingUrl) return; - - var relative = Object.create(null); - relative["ftp"] = 21; - relative["file"] = 0; - relative["gopher"] = 70; - relative["http"] = 80; - relative["https"] = 443; - relative["ws"] = 80; - relative["wss"] = 443; - - var relativePathDotMapping = Object.create(null); - relativePathDotMapping["%2e"] = "."; - relativePathDotMapping[".%2e"] = ".."; - relativePathDotMapping["%2e."] = ".."; - relativePathDotMapping["%2e%2e"] = ".."; - - function isRelativeScheme(scheme) { - return relative[scheme] !== undefined; - } - - function invalid() { - clear.call(this); - this._isInvalid = true; - } - - function IDNAToASCII(h) { - if ("" == h) { - invalid.call(this); - } - // XXX - return h.toLowerCase(); - } - - function percentEscape(c) { - var unicode = c.charCodeAt(0); - if ( - unicode > 0x20 && - unicode < 0x7f && - // " # < > ? ` - [0x22, 0x23, 0x3c, 0x3e, 0x3f, 0x60].indexOf(unicode) == -1 - ) { - return c; - } - return encodeURIComponent(c); - } - - function percentEscapeQuery(c) { - // XXX This actually needs to encode c using encoding and then - // convert the bytes one-by-one. - - var unicode = c.charCodeAt(0); - if ( - unicode > 0x20 && - unicode < 0x7f && - // " # < > ` (do not escape '?') - [0x22, 0x23, 0x3c, 0x3e, 0x60].indexOf(unicode) == -1 - ) { - return c; - } - return encodeURIComponent(c); - } - - var EOF = undefined, - ALPHA = /[a-zA-Z]/, - ALPHANUMERIC = /[a-zA-Z0-9\+\-\.]/; - - function parse(input, stateOverride, base) { - function err(message) { - errors.push(message); - } - - var state = stateOverride || "scheme start", - cursor = 0, - buffer = "", - seenAt = false, - seenBracket = false, - errors = []; - - loop: while ( - (input[cursor - 1] != EOF || cursor == 0) && - !this._isInvalid - ) { - var c = input[cursor]; - switch (state) { - case "scheme start": - if (c && ALPHA.test(c)) { - buffer += c.toLowerCase(); // ASCII-safe - state = "scheme"; - } else if (!stateOverride) { - buffer = ""; - state = "no scheme"; - continue; - } else { - err("Invalid scheme."); - break loop; - } - break; - - case "scheme": - if (c && ALPHANUMERIC.test(c)) { - buffer += c.toLowerCase(); // ASCII-safe - } else if (":" == c) { - this._scheme = buffer; - buffer = ""; - if (stateOverride) { - break loop; - } - if (isRelativeScheme(this._scheme)) { - this._isRelative = true; - } - if ("file" == this._scheme) { - state = "relative"; - } else if ( - this._isRelative && - base && - base._scheme == this._scheme - ) { - state = "relative or authority"; - } else if (this._isRelative) { - state = "authority first slash"; - } else { - state = "scheme data"; - } - } else if (!stateOverride) { - buffer = ""; - cursor = 0; - state = "no scheme"; - continue; - } else if (EOF == c) { - break loop; - } else { - err("Code point not allowed in scheme: " + c); - break loop; - } - break; - - case "scheme data": - if ("?" == c) { - query = "?"; - state = "query"; - } else if ("#" == c) { - this._fragment = "#"; - state = "fragment"; - } else { - // XXX error handling - if (EOF != c && "\t" != c && "\n" != c && "\r" != c) { - this._schemeData += percentEscape(c); - } - } - break; - - case "no scheme": - if (!base || !isRelativeScheme(base._scheme)) { - err("Missing scheme."); - invalid.call(this); - } else { - state = "relative"; - continue; - } - break; - - case "relative or authority": - if ("/" == c && "/" == input[cursor + 1]) { - state = "authority ignore slashes"; - } else { - err("Expected /, got: " + c); - state = "relative"; - continue; - } - break; - - case "relative": - this._isRelative = true; - if ("file" != this._scheme) this._scheme = base._scheme; - if (EOF == c) { - this._host = base._host; - this._port = base._port; - this._path = base._path.slice(); - this._query = base._query; - this._username = base._username; - this._password = base._password; - break loop; - } else if ("/" == c || "\\" == c) { - if ("\\" == c) err("\\ is an invalid code point."); - state = "relative slash"; - } else if ("?" == c) { - this._host = base._host; - this._port = base._port; - this._path = base._path.slice(); - this._query = "?"; - this._username = base._username; - this._password = base._password; - state = "query"; - } else if ("#" == c) { - this._host = base._host; - this._port = base._port; - this._path = base._path.slice(); - this._query = base._query; - this._fragment = "#"; - this._username = base._username; - this._password = base._password; - state = "fragment"; - } else { - var nextC = input[cursor + 1]; - var nextNextC = input[cursor + 2]; - if ( - "file" != this._scheme || - !ALPHA.test(c) || - (nextC != ":" && nextC != "|") || - (EOF != nextNextC && - "/" != nextNextC && - "\\" != nextNextC && - "?" != nextNextC && - "#" != nextNextC) - ) { - this._host = base._host; - this._port = base._port; - this._username = base._username; - this._password = base._password; - this._path = base._path.slice(); - this._path.pop(); - } - state = "relative path"; - continue; - } - break; - - case "relative slash": - if ("/" == c || "\\" == c) { - if ("\\" == c) { - err("\\ is an invalid code point."); - } - if ("file" == this._scheme) { - state = "file host"; - } else { - state = "authority ignore slashes"; - } - } else { - if ("file" != this._scheme) { - this._host = base._host; - this._port = base._port; - this._username = base._username; - this._password = base._password; - } - state = "relative path"; - continue; - } - break; - - case "authority first slash": - if ("/" == c) { - state = "authority second slash"; - } else { - err("Expected '/', got: " + c); - state = "authority ignore slashes"; - continue; - } - break; - - case "authority second slash": - state = "authority ignore slashes"; - if ("/" != c) { - err("Expected '/', got: " + c); - continue; - } - break; - - case "authority ignore slashes": - if ("/" != c && "\\" != c) { - state = "authority"; - continue; - } else { - err("Expected authority, got: " + c); - } - break; - - case "authority": - if ("@" == c) { - if (seenAt) { - err("@ already seen."); - buffer += "%40"; - } - seenAt = true; - for (var i = 0; i < buffer.length; i++) { - var cp = buffer[i]; - if ("\t" == cp || "\n" == cp || "\r" == cp) { - err("Invalid whitespace in authority."); - continue; - } - // XXX check URL code points - if (":" == cp && null === this._password) { - this._password = ""; - continue; - } - var tempC = percentEscape(cp); - null !== this._password - ? (this._password += tempC) - : (this._username += tempC); - } - buffer = ""; - } else if ( - EOF == c || - "/" == c || - "\\" == c || - "?" == c || - "#" == c - ) { - cursor -= buffer.length; - buffer = ""; - state = "host"; - continue; - } else { - buffer += c; - } - break; - - case "file host": - if (EOF == c || "/" == c || "\\" == c || "?" == c || "#" == c) { - if ( - buffer.length == 2 && - ALPHA.test(buffer[0]) && - (buffer[1] == ":" || buffer[1] == "|") - ) { - state = "relative path"; - } else if (buffer.length == 0) { - state = "relative path start"; - } else { - this._host = IDNAToASCII.call(this, buffer); - buffer = ""; - state = "relative path start"; - } - continue; - } else if ("\t" == c || "\n" == c || "\r" == c) { - err("Invalid whitespace in file host."); - } else { - buffer += c; - } - break; - - case "host": - case "hostname": - if (":" == c && !seenBracket) { - // XXX host parsing - this._host = IDNAToASCII.call(this, buffer); - buffer = ""; - state = "port"; - if ("hostname" == stateOverride) { - break loop; - } - } else if ( - EOF == c || - "/" == c || - "\\" == c || - "?" == c || - "#" == c - ) { - this._host = IDNAToASCII.call(this, buffer); - buffer = ""; - state = "relative path start"; - if (stateOverride) { - break loop; - } - continue; - } else if ("\t" != c && "\n" != c && "\r" != c) { - if ("[" == c) { - seenBracket = true; - } else if ("]" == c) { - seenBracket = false; - } - buffer += c; - } else { - err("Invalid code point in host/hostname: " + c); - } - break; - - case "port": - if (/[0-9]/.test(c)) { - buffer += c; - } else if ( - EOF == c || - "/" == c || - "\\" == c || - "?" == c || - "#" == c || - stateOverride - ) { - if ("" != buffer) { - var temp = parseInt(buffer, 10); - if (temp != relative[this._scheme]) { - this._port = temp + ""; - } - buffer = ""; - } - if (stateOverride) { - break loop; - } - state = "relative path start"; - continue; - } else if ("\t" == c || "\n" == c || "\r" == c) { - err("Invalid code point in port: " + c); - } else { - invalid.call(this); - } - break; - - case "relative path start": - if ("\\" == c) err("'\\' not allowed in path."); - state = "relative path"; - if ("/" != c && "\\" != c) { - continue; - } - break; - - case "relative path": - if ( - EOF == c || - "/" == c || - "\\" == c || - (!stateOverride && ("?" == c || "#" == c)) - ) { - if ("\\" == c) { - err("\\ not allowed in relative path."); - } - var tmp; - if ((tmp = relativePathDotMapping[buffer.toLowerCase()])) { - buffer = tmp; - } - if (".." == buffer) { - this._path.pop(); - if ("/" != c && "\\" != c) { - this._path.push(""); - } - } else if ("." == buffer && "/" != c && "\\" != c) { - this._path.push(""); - } else if ("." != buffer) { - if ( - "file" == this._scheme && - this._path.length == 0 && - buffer.length == 2 && - ALPHA.test(buffer[0]) && - buffer[1] == "|" - ) { - buffer = buffer[0] + ":"; - } - this._path.push(buffer); - } - buffer = ""; - if ("?" == c) { - this._query = "?"; - state = "query"; - } else if ("#" == c) { - this._fragment = "#"; - state = "fragment"; - } - } else if ("\t" != c && "\n" != c && "\r" != c) { - buffer += percentEscape(c); - } - break; - - case "query": - if (!stateOverride && "#" == c) { - this._fragment = "#"; - state = "fragment"; - } else if (EOF != c && "\t" != c && "\n" != c && "\r" != c) { - this._query += percentEscapeQuery(c); - } - break; - - case "fragment": - if (EOF != c && "\t" != c && "\n" != c && "\r" != c) { - this._fragment += c; - } - break; - } - - cursor++; - } - } - - function clear() { - this._scheme = ""; - this._schemeData = ""; - this._username = ""; - this._password = null; - this._host = ""; - this._port = ""; - this._path = []; - this._query = ""; - this._fragment = ""; - this._isInvalid = false; - this._isRelative = false; - } - - // Does not process domain names or IP addresses. - // Does not handle encoding for the query parameter. - function jURL(url, base /* , encoding */) { - if (base !== undefined && !(base instanceof jURL)) - base = new jURL(String(base)); - - url = String(url); - - this._url = url; - clear.call(this); - - var input = url.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g, ""); - // encoding = encoding || 'utf-8' - - parse.call(this, input, null, base); - } - - jURL.prototype = { - toString: function() { - return this.href; - }, - get href() { - if (this._isInvalid) return this._url; - - var authority = ""; - if ("" != this._username || null != this._password) { - authority = - this._username + - (null != this._password ? ":" + this._password : "") + - "@"; - } - - return ( - this.protocol + - (this._isRelative ? "//" + authority + this.host : "") + - this.pathname + - this._query + - this._fragment - ); - }, - set href(href) { - clear.call(this); - parse.call(this, href); - }, - - get protocol() { - return this._scheme + ":"; - }, - set protocol(protocol) { - if (this._isInvalid) return; - parse.call(this, protocol + ":", "scheme start"); - }, - - get host() { - return this._isInvalid - ? "" - : this._port - ? this._host + ":" + this._port - : this._host; - }, - set host(host) { - if (this._isInvalid || !this._isRelative) return; - parse.call(this, host, "host"); - }, - - get hostname() { - return this._host; - }, - set hostname(hostname) { - if (this._isInvalid || !this._isRelative) return; - parse.call(this, hostname, "hostname"); - }, - - get port() { - return this._port; - }, - set port(port) { - if (this._isInvalid || !this._isRelative) return; - parse.call(this, port, "port"); - }, - - get pathname() { - return this._isInvalid - ? "" - : this._isRelative - ? "/" + this._path.join("/") - : this._schemeData; - }, - set pathname(pathname) { - if (this._isInvalid || !this._isRelative) return; - this._path = []; - parse.call(this, pathname, "relative path start"); - }, - - get search() { - return this._isInvalid || !this._query || "?" == this._query - ? "" - : this._query; - }, - set search(search) { - if (this._isInvalid || !this._isRelative) return; - this._query = "?"; - if ("?" == search[0]) search = search.slice(1); - parse.call(this, search, "query"); - }, - - get hash() { - return this._isInvalid || !this._fragment || "#" == this._fragment - ? "" - : this._fragment; - }, - set hash(hash) { - if (this._isInvalid) return; - this._fragment = "#"; - if ("#" == hash[0]) hash = hash.slice(1); - parse.call(this, hash, "fragment"); - }, - - get origin() { - var host; - if (this._isInvalid || !this._scheme) { - return ""; - } - // javascript: Gecko returns String(""), WebKit/Blink String("null") - // Gecko throws error for "data://" - // data: Gecko returns "", Blink returns "data://", WebKit returns "null" - // Gecko returns String("") for file: mailto: - // WebKit/Blink returns String("SCHEME://") for file: mailto: - switch (this._scheme) { - case "data": - case "file": - case "javascript": - case "mailto": - return "null"; - } - host = this.host; - if (!host) { - return ""; - } - return this._scheme + "://" + host; - } - }; - - // Copy over the static methods - var OriginalURL = scope.URL; - if (OriginalURL) { - jURL.createObjectURL = function(blob) { - // IE extension allows a second optional options argument. - // http://msdn.microsoft.com/en-us/library/ie/hh772302(v=vs.85).aspx - return OriginalURL.createObjectURL.apply(OriginalURL, arguments); - }; - jURL.revokeObjectURL = function(url) { - OriginalURL.revokeObjectURL(url); - }; - } - - scope.URL = jURL; -})(window); diff --git a/util.go b/util.go deleted file mode 100644 index d5b83c3937..0000000000 --- a/util.go +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -package deno - -import ( - "fmt" - "net/url" - "os" - "strings" -) - -func logDebug(format string, v ...interface{}) { - // Unless the debug flag is specified, discard logs. - if *flagDebug { - fmt.Printf(format+"\n", v...) - } -} - -// exists returns whether the given file or directory exists or not -func exists(path string) bool { - _, err := os.Stat(path) - if err == nil { - return true - } - if os.IsNotExist(err) { - return false - } - panic(err) -} - -func assert(cond bool, msg string) { - if !cond { - panic(msg) - } -} - -func isRemote(filename string) bool { - u, err := url.Parse(filename) - check(err) - return u.IsAbs() -} - -func check(e error) { - if e != nil { - panic(e) - } -} - -func exitOnError(err error) { - if err != nil { - os.Stderr.WriteString(err.Error()) - os.Exit(1) - } -} - -func async(cb func()) { - wg.Add(1) - go func() { - cb() - wg.Done() - }() -} - -const wildcard = "[WILDCARD]" - -// Matches the pattern string against the text string. The pattern can -// contain "[WILDCARD]" substrings which will match one or more characters. -// Returns true if matched. -func patternMatch(pattern string, text string) bool { - // Empty pattern only match empty text. - if len(pattern) == 0 { - return len(text) == 0 - } - - if pattern == wildcard { - return true - } - - parts := strings.Split(pattern, wildcard) - - if len(parts) == 1 { - return pattern == text - } - - if strings.HasPrefix(text, parts[0]) { - text = text[len(parts[0]):] - } else { - return false - } - - for i := 1; i < len(parts); i++ { - // If the last part is empty, we match. - if i == len(parts)-1 { - if parts[i] == "" || parts[i] == "\n" { - return true - } - } - index := strings.Index(text, parts[i]) - if index < 0 { - return false - } - text = text[index+len(parts[i]):] - } - - return len(text) == 0 -} diff --git a/util.ts b/util.ts deleted file mode 100644 index 70cb79a554..0000000000 --- a/util.ts +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -import { debug } from "./main"; -import { TypedArray } from "./types"; - -// Internal logging for deno. Use the "debug" variable above to control -// output. -// tslint:disable-next-line:no-any -export function log(...args: any[]): void { - if (debug) { - console.log(...args); - } -} - -export function assert(cond: boolean, msg = "") { - if (!cond) { - throw Error(`Assert fail. ${msg}`); - } -} - -export function typedArrayToArrayBuffer(ta: TypedArray): ArrayBuffer { - const ab = ta.buffer.slice(ta.byteOffset, ta.byteOffset + ta.byteLength); - return ab as ArrayBuffer; -} - -export function arrayToStr(ui8: Uint8Array): string { - return String.fromCharCode(...ui8); -} - -// A `Resolvable` is a Promise with the `reject` and `resolve` functions -// placed as methods on the promise object itself. It allows you to do: -// -// const p = createResolvable(); -// ... -// p.resolve(42); -// -// It'd be prettier to make Resolvable a class that inherits from Promise, -// rather than an interface. This is possible in ES2016, however typescript -// produces broken code when targeting ES5 code. -// See https://github.com/Microsoft/TypeScript/issues/15202 -// At the time of writing, the github issue is closed but the problem remains. -export interface Resolvable extends Promise { - resolve: (value?: T | PromiseLike) => void; - // tslint:disable-next-line:no-any - reject: (reason?: any) => void; -} -export function createResolvable(): Resolvable { - let methods; - const promise = new Promise((resolve, reject) => { - methods = { resolve, reject }; - }); - return Object.assign(promise, methods) as Resolvable; -} diff --git a/util_test.go b/util_test.go deleted file mode 100644 index 9f44454dff..0000000000 --- a/util_test.go +++ /dev/null @@ -1,62 +0,0 @@ -package deno - -import ( - "testing" -) - -const exStackTrace = `hello -before error -error Error: error - at foo (/Users/rld/go/src/github.com/ry/deno/testdata/013_async_throw.ts:4:11) - at eval (/Users/rld/go/src/github.com/ry/deno/testdata/013_async_throw.ts:6:1) - at Object.eval [as globalEval] () - at execute (/main.js:144781:15) - at FileModule.compileAndRun (/main.js:144678:13) - at /main.js:145161:13 - at /main.js:15733:13` -const exStackTracePattern = `hello -before error -error Error: error - at foo ([WILDCARD]testdata/013_async_throw.ts:4:11) - at eval ([WILDCARD]testdata/013_async_throw.ts:6:1) - at Object.eval [as globalEval] () - at execute (/main.js:[WILDCARD]` - -func TestPatternMatch(t *testing.T) { - if patternMatch("aa", "a") != false { - t.Fatalf("Wrong resullt (1).") - } - if patternMatch("aaa[WILDCARD]b", "aaaxsdfdb") != true { - t.Fatalf("Wrong resullt (2).") - } - if patternMatch("aab[WILDCARD]", "xsd") != false { - t.Fatalf("Wrong resullt (3).") - } - if patternMatch("a[WILDCARD]b[WILDCARD]c", "abc") != true { - t.Fatalf("Wrong resullt (4).") - } - if patternMatch("a[WILDCARD]b[WILDCARD]c", "axbc") != true { - t.Fatalf("Wrong resullt (5).") - } - if patternMatch("a[WILDCARD]b[WILDCARD]c", "abxc") != true { - t.Fatalf("Wrong resullt (6).") - } - if patternMatch("a[WILDCARD]b[WILDCARD]c", "axbxc") != true { - t.Fatalf("Wrong resullt (7).") - } - if patternMatch("a[WILDCARD]b[WILDCARD]c", "abcx") != false { - t.Fatalf("Wrong resullt (8).") - } - if patternMatch("a[WILDCARD][WILDCARD]c", "abc") != true { - t.Fatalf("Wrong resullt (9).") - } - if patternMatch("a[WILDCARD][WILDCARD]c", "ac") != true { - t.Fatalf("Wrong resullt (10).") - } -} - -func TestPatternMatchStackTrace(t *testing.T) { - if patternMatch(exStackTracePattern, exStackTrace) != true { - t.Fatalf("Wrong resullt (11).") - } -} diff --git a/v8_source_maps.ts b/v8_source_maps.ts deleted file mode 100644 index 2384f34dc8..0000000000 --- a/v8_source_maps.ts +++ /dev/null @@ -1,273 +0,0 @@ -// Copyright 2014 Evan Wallace -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -// Originated from source-map-support but has been heavily modified for deno. -import { SourceMapConsumer, MappedPosition } from "source-map"; -import * as base64 from "base64-js"; -import { arrayToStr } from "./util"; - -const consumers = new Map(); - -interface Options { - // A callback the returns generated file contents. - getGeneratedContents: GetGeneratedContentsCallback; - // Usually set the following to true. Set to false for testing. - installPrepareStackTrace: boolean; -} - -interface CallSite extends NodeJS.CallSite { - getScriptNameOrSourceURL(): string; -} - -interface Position { - source: string; // Filename - column: number; - line: number; -} - -type GetGeneratedContentsCallback = (fileName: string) => string; - -let getGeneratedContents: GetGeneratedContentsCallback; - -export function install(options: Options) { - getGeneratedContents = options.getGeneratedContents; - if (options.installPrepareStackTrace) { - Error.prepareStackTrace = prepareStackTraceWrapper; - } -} - -export function prepareStackTraceWrapper( - error: Error, - stack: CallSite[] -): string { - try { - return prepareStackTrace(error, stack); - } catch (prepareStackError) { - Error.prepareStackTrace = null; - console.log("=====Error inside of prepareStackTrace===="); - console.log(prepareStackError.stack.toString()); - console.log("=====Original error======================="); - throw error; - } -} - -export function prepareStackTrace(error: Error, stack: CallSite[]): string { - const frames = stack.map( - (frame: CallSite) => `\n at ${wrapCallSite(frame).toString()}` - ); - return error.toString() + frames.join(""); -} - -export function wrapCallSite(frame: CallSite): CallSite { - if (frame.isNative()) { - return frame; - } - - // Most call sites will return the source file from getFileName(), but code - // passed to eval() ending in "//# sourceURL=..." will return the source file - // from getScriptNameOrSourceURL() instead - const source = frame.getFileName() || frame.getScriptNameOrSourceURL(); - - if (source) { - const line = frame.getLineNumber(); - const column = frame.getColumnNumber() - 1; - const position = mapSourcePosition({ source, line, column }); - frame = cloneCallSite(frame); - frame.getFileName = () => position.source; - frame.getLineNumber = () => position.line; - frame.getColumnNumber = () => Number(position.column) + 1; - frame.getScriptNameOrSourceURL = () => position.source; - frame.toString = () => CallSiteToString(frame); - return frame; - } - - // Code called using eval() needs special handling - let origin = frame.isEval() && frame.getEvalOrigin(); - if (origin) { - origin = mapEvalOrigin(origin); - frame = cloneCallSite(frame); - frame.getEvalOrigin = () => origin; - return frame; - } - - // If we get here then we were unable to change the source position - return frame; -} - -function cloneCallSite(frame: CallSite): CallSite { - // tslint:disable:no-any - const obj: any = {}; - const frame_ = frame as any; - const props = Object.getOwnPropertyNames(Object.getPrototypeOf(frame)); - props.forEach(name => { - obj[name] = /^(?:is|get)/.test(name) - ? () => frame_[name].call(frame) - : frame_[name]; - }); - return (obj as any) as CallSite; - // tslint:enable:no-any -} - -// Taken from source-map-support, original copied from V8's messages.js -// MIT License. Copyright (c) 2014 Evan Wallace -function CallSiteToString(frame: CallSite): string { - let fileName; - let fileLocation = ""; - if (frame.isNative()) { - fileLocation = "native"; - } else { - fileName = frame.getScriptNameOrSourceURL(); - if (!fileName && frame.isEval()) { - fileLocation = frame.getEvalOrigin(); - fileLocation += ", "; // Expecting source position to follow. - } - - if (fileName) { - fileLocation += fileName; - } else { - // Source code does not originate from a file and is not native, but we - // can still get the source position inside the source string, e.g. in - // an eval string. - fileLocation += ""; - } - const lineNumber = frame.getLineNumber(); - if (lineNumber != null) { - fileLocation += ":" + String(lineNumber); - const columnNumber = frame.getColumnNumber(); - if (columnNumber) { - fileLocation += ":" + String(columnNumber); - } - } - } - - let line = ""; - const functionName = frame.getFunctionName(); - let addSuffix = true; - const isConstructor = frame.isConstructor(); - const isMethodCall = !(frame.isToplevel() || isConstructor); - if (isMethodCall) { - let typeName = frame.getTypeName(); - // Fixes shim to be backward compatable with Node v0 to v4 - if (typeName === "[object Object]") { - typeName = "null"; - } - const methodName = frame.getMethodName(); - if (functionName) { - if (typeName && functionName.indexOf(typeName) !== 0) { - line += typeName + "."; - } - line += functionName; - if ( - methodName && - functionName.indexOf("." + methodName) !== - functionName.length - methodName.length - 1 - ) { - line += ` [as ${methodName} ]`; - } - } else { - line += typeName + "." + (methodName || ""); - } - } else if (isConstructor) { - line += "new " + (functionName || ""); - } else if (functionName) { - line += functionName; - } else { - line += fileLocation; - addSuffix = false; - } - if (addSuffix) { - line += ` (${fileLocation})`; - } - return line; -} - -// Regex for detecting source maps -const reSourceMap = /^data:application\/json[^,]+base64,/; - -function loadConsumer(source: string): SourceMapConsumer { - let consumer = consumers.get(source); - if (consumer == null) { - const code = getGeneratedContents(source); - if (!code) { - return null; - } - - let sourceMappingURL = retrieveSourceMapURL(code); - if (!sourceMappingURL) { - throw Error("No source map?"); - } - - let sourceMapData: string; - if (reSourceMap.test(sourceMappingURL)) { - // Support source map URL as a data url - const rawData = sourceMappingURL.slice(sourceMappingURL.indexOf(",") + 1); - const ui8 = base64.toByteArray(rawData); - sourceMapData = arrayToStr(ui8); - sourceMappingURL = source; - } else { - // Support source map URLs relative to the source URL - //sourceMappingURL = supportRelativeURL(source, sourceMappingURL); - sourceMapData = getGeneratedContents(sourceMappingURL); - } - - //console.log("sourceMapData", sourceMapData); - const rawSourceMap = JSON.parse(sourceMapData); - consumer = new SourceMapConsumer(rawSourceMap); - consumers.set(source, consumer); - } - return consumer; -} - -function retrieveSourceMapURL(fileData: string): string { - // Get the URL of the source map - // tslint:disable-next-line:max-line-length - const re = /(?:\/\/[@#][ \t]+sourceMappingURL=([^\s'"]+?)[ \t]*$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^\*]+?)[ \t]*(?:\*\/)[ \t]*$)/gm; - // Keep executing the search to find the *last* sourceMappingURL to avoid - // picking up sourceMappingURLs from comments, strings, etc. - let lastMatch, match; - while ((match = re.exec(fileData))) { - lastMatch = match; - } - if (!lastMatch) { - return null; - } - return lastMatch[1]; -} - -function mapSourcePosition(position: Position): MappedPosition { - const consumer = loadConsumer(position.source); - if (consumer == null) { - return position; - } - const mapped = consumer.originalPositionFor(position); - return mapped; -} - -// Parses code generated by FormatEvalOrigin(), a function inside V8: -// https://code.google.com/p/v8/source/browse/trunk/src/messages.js -function mapEvalOrigin(origin: string): string { - // Most eval() calls are in this format - let match = /^eval at ([^(]+) \((.+):(\d+):(\d+)\)$/.exec(origin); - if (match) { - const position = mapSourcePosition({ - source: match[2], - line: Number(match[3]), - column: Number(match[4]) - 1 - }); - const pos = [ - position.source, - position.line, - Number(position.column) + 1 - ].join(":"); - return `eval at ${match[1]} (${pos})`; - } - - // Parse nested eval() calls using recursion - match = /^eval at ([^(]+) \((.+)\)$/.exec(origin); - if (match) { - return `eval at ${match[1]} (${mapEvalOrigin(match[2])})`; - } - - // Make sure we still return useful information if we didn't find anything - return origin; -} diff --git a/v8worker2.d.ts b/v8worker2.d.ts deleted file mode 100644 index 1c39653a47..0000000000 --- a/v8worker2.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2018 Ryan Dahl -// All rights reserved. MIT License. -declare namespace V8Worker2 { - function print(...args: any[]): void; - type RecvCallback = (ab: ArrayBuffer) => void; - function recv(cb: RecvCallback): void; - function send(ab: ArrayBuffer): null | ArrayBuffer; -} diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 34fd5eba42..0000000000 --- a/yarn.lock +++ /dev/null @@ -1,3846 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" - -"@protobufjs/base64@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" - -"@protobufjs/codegen@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" - -"@protobufjs/eventemitter@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" - -"@protobufjs/fetch@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" - dependencies: - "@protobufjs/aspromise" "^1.1.1" - "@protobufjs/inquire" "^1.1.0" - -"@protobufjs/float@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" - -"@protobufjs/inquire@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" - -"@protobufjs/path@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" - -"@protobufjs/pool@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" - -"@protobufjs/utf8@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" - -"@types/base64-js@^1.2.5": - version "1.2.5" - resolved "https://registry.yarnpkg.com/@types/base64-js/-/base64-js-1.2.5.tgz#582b2476169a6cba460a214d476c744441d873d5" - -"@types/long@^3.0.32": - version "3.0.32" - resolved "https://registry.yarnpkg.com/@types/long/-/long-3.0.32.tgz#f4e5af31e9e9b196d8e5fca8a5e2e20aa3d60b69" - -"@types/node@*": - version "10.1.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.1.2.tgz#1b928a0baa408fc8ae3ac012cc81375addc147c6" - -"@types/node@^8.9.4": - version "8.10.14" - resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.14.tgz#a24767cfa22023f1bf7e751c0ead56a14c07ed45" - -"@types/source-map-support@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@types/source-map-support/-/source-map-support-0.4.0.tgz#a62a1866614af68c888173c001481f242aaf148b" - dependencies: - "@types/node" "*" - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" - dependencies: - acorn "^3.0.4" - -acorn@^3.0.4: - version "3.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" - -acorn@^5.0.0, acorn@^5.5.0: - version "5.5.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" - -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" - -alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - dependencies: - color-convert "^1.9.0" - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - -are-we-there-yet@~1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -assert@^1.1.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" - dependencies: - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - -async-each@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" - -async-limiter@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" - -atob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.1.tgz#ae2d5a729477f289d60dd7f96a6314a22dd6c22a" - -autoprefixer@^6.3.1: - version "6.7.7" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" - dependencies: - browserslist "^1.7.6" - caniuse-db "^1.0.30000634" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^5.2.16" - postcss-value-parser "^3.2.3" - -babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.25.0, babel-core@^6.26.0: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - -babel-generator@^6.25.0, babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-builder-react-jsx@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - esutils "^2.0.2" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - -babel-plugin-syntax-jsx@^6.8.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" - -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - -babel-plugin-transform-async-to-generator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.23.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1, babel-plugin-transform-es2015-modules-commonjs@^6.26.0: - version "6.26.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" - dependencies: - babel-helper-builder-react-jsx "^6.24.1" - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-regenerator@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-polyfill@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" - dependencies: - babel-runtime "^6.26.0" - core-js "^2.5.0" - regenerator-runtime "^0.10.5" - -babel-preset-env@^1.6.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^3.2.6" - invariant "^2.2.2" - semver "^5.3.0" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@^6.11.6, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.15.0, babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babylon-walk@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/babylon-walk/-/babylon-walk-1.0.2.tgz#3b15a5ddbb482a78b4ce9c01c8ba181702d9d6ce" - dependencies: - babel-runtime "^6.11.6" - babel-types "^6.15.0" - lodash.clone "^4.5.0" - -babylon@7.0.0-beta.19: - version "7.0.0-beta.19" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.19.tgz#e928c7e807e970e0536b078ab3e0c48f9e052503" - -babylon@^6.17.4, babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - -balanced-match@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - -base64-js@^1.0.2, base64-js@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -binary-extensions@^1.0.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" - -bindings@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz#14ad6113812d2d37d72e67b4cacb4bb726505f11" - -bluebird@^3.0.5, bluebird@~3.5.0: - version "3.5.1" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - -boolbase@^1.0.0, boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.0, braces@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -brfs@^1.2.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/brfs/-/brfs-1.6.1.tgz#b78ce2336d818e25eea04a0947cba6d4fb8849c3" - dependencies: - quote-stream "^1.0.1" - resolve "^1.1.5" - static-module "^2.2.0" - through2 "^2.0.0" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.1.tgz#3343124db6d7ad53e26a8826318712bdc8450f9c" - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - -browserify-rsa@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" - dependencies: - bn.js "^4.1.1" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.2" - elliptic "^6.0.0" - inherits "^2.0.1" - parse-asn1 "^5.0.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - dependencies: - pako "~1.0.5" - -browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: - version "1.7.7" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" - dependencies: - caniuse-db "^1.0.30000639" - electron-to-chromium "^1.2.7" - -browserslist@^3.2.6: - version "3.2.7" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.7.tgz#aa488634d320b55e88bab0256184dbbcca1e6de9" - dependencies: - caniuse-lite "^1.0.30000835" - electron-to-chromium "^1.3.45" - -buffer-equal@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" - -buffer-from@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531" - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - -buffer@^4.3.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builtin-modules@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -camelcase@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - -caniuse-api@^1.5.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" - dependencies: - browserslist "^1.3.6" - caniuse-db "^1.0.30000529" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30000839" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000839.tgz#55a86e402c74ae17149707bea3ea399522233497" - -caniuse-lite@^1.0.30000835: - version "1.0.30000839" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000839.tgz#41fcc036cf1cb77a0e0be041210f77f1ced44a7b" - -catharsis@~0.8.9: - version "0.8.9" - resolved "https://registry.yarnpkg.com/catharsis/-/catharsis-0.8.9.tgz#98cc890ca652dd2ef0e70b37925310ff9e90fc8b" - dependencies: - underscore-contrib "~0.3.0" - -center-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" - dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chokidar@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.3.tgz#dcbd4f6cbb2a55b4799ba8a840ac527e5f4b1176" - dependencies: - anymatch "^2.0.0" - async-each "^1.0.0" - braces "^2.3.0" - glob-parent "^3.1.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^2.1.1" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - upath "^1.0.0" - optionalDependencies: - fsevents "^1.1.2" - -chownr@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -clap@^1.0.9: - version "1.2.3" - resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" - dependencies: - chalk "^1.1.3" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" - dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - -clones@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/clones/-/clones-1.1.0.tgz#87e904132d6140c5c0b72006c08c0d05bd7b63b3" - -coa@~1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" - dependencies: - q "^1.1.2" - -coa@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.1.tgz#f3f8b0b15073e35d70263fb1042cb2c023db38af" - dependencies: - q "^1.1.2" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.3.0, color-convert@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" - dependencies: - color-name "^1.1.1" - -color-name@^1.0.0, color-name@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - -color-string@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" - dependencies: - color-name "^1.0.0" - -color@^0.11.0: - version "0.11.4" - resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" - dependencies: - clone "^1.0.2" - color-convert "^1.3.0" - color-string "^0.3.0" - -colormin@^1.0.5: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" - dependencies: - color "^0.11.0" - css-color-names "0.0.4" - has "^1.0.1" - -colors@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - -command-exists@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.6.tgz#577f8e5feb0cb0f159cd557a51a9be1bdd76e09e" - -commander@^2.11.0, commander@^2.12.1, commander@^2.9.0: - version "2.15.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" - -commander@~2.13.0: - version "2.13.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" - -component-emitter@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -concat-stream@~1.6.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -config-chain@~1.1.5: - version "1.1.11" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.11.tgz#aba09747dfbe4c3e70e766a6e41586e1859fc6f2" - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -console-browserify@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - dependencies: - date-now "^0.1.4" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - -convert-source-map@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - -core-js@^2.4.0, core-js@^2.5.0: - version "2.5.6" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.6.tgz#0fe6d45bf3cac3ac364a9d72de7576f4eb221b9d" - -core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - -create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@^6.0.4: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -css-color-names@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - -css-select-base-adapter@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.0.tgz#0102b3d14630df86c3eb9fa9f5456270106cf990" - -css-select@~1.3.0-rc0: - version "1.3.0-rc0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.3.0-rc0.tgz#6f93196aaae737666ea1036a8cb14a8fcb7a9231" - dependencies: - boolbase "^1.0.0" - css-what "2.1" - domutils "1.5.1" - nth-check "^1.0.1" - -css-tree@1.0.0-alpha.27: - version "1.0.0-alpha.27" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.27.tgz#f211526909c7dc940843d83b9376ed98ddb8de47" - dependencies: - mdn-data "^1.0.0" - source-map "^0.5.3" - -css-tree@1.0.0-alpha25: - version "1.0.0-alpha25" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha25.tgz#1bbfabfbf6eeef4f01d9108ff2edd0be2fe35597" - dependencies: - mdn-data "^1.0.0" - source-map "^0.5.3" - -css-url-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/css-url-regex/-/css-url-regex-1.1.0.tgz#83834230cc9f74c457de59eebd1543feeb83b7ec" - -css-what@2.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" - -cssnano@^3.10.0, cssnano@^3.4.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" - dependencies: - autoprefixer "^6.3.1" - decamelize "^1.1.2" - defined "^1.0.0" - has "^1.0.1" - object-assign "^4.0.1" - postcss "^5.0.14" - postcss-calc "^5.2.0" - postcss-colormin "^2.1.8" - postcss-convert-values "^2.3.4" - postcss-discard-comments "^2.0.4" - postcss-discard-duplicates "^2.0.1" - postcss-discard-empty "^2.0.1" - postcss-discard-overridden "^0.1.1" - postcss-discard-unused "^2.2.1" - postcss-filter-plugins "^2.0.0" - postcss-merge-idents "^2.1.5" - postcss-merge-longhand "^2.0.1" - postcss-merge-rules "^2.0.3" - postcss-minify-font-values "^1.0.2" - postcss-minify-gradients "^1.0.1" - postcss-minify-params "^1.0.4" - postcss-minify-selectors "^2.0.4" - postcss-normalize-charset "^1.1.0" - postcss-normalize-url "^3.0.7" - postcss-ordered-values "^2.1.0" - postcss-reduce-idents "^2.2.2" - postcss-reduce-initial "^1.0.0" - postcss-reduce-transforms "^1.0.3" - postcss-svgo "^2.1.1" - postcss-unique-selectors "^2.0.2" - postcss-value-parser "^3.2.3" - postcss-zindex "^2.0.1" - -csso@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.0.tgz#acdbba5719e2c87bc801eadc032764b2e4b9d4e7" - dependencies: - css-tree "1.0.0-alpha.27" - -csso@~2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" - dependencies: - clap "^1.0.9" - source-map "^0.5.3" - -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - -deasync@^0.1.12: - version "0.1.13" - resolved "https://registry.yarnpkg.com/deasync/-/deasync-0.1.13.tgz#815c2b69bbd1117cae570152cd895661c09f20ea" - dependencies: - bindings "~1.2.1" - nan "^2.0.7" - -debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - dependencies: - ms "2.0.0" - -decamelize@^1.0.0, decamelize@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - -deep-extend@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.5.1.tgz#b894a9dd90d3023fbf1c55a394fb858eb2066f1f" - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - -define-properties@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" - dependencies: - foreach "^2.0.5" - object-keys "^1.0.8" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - -des.js@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - dependencies: - repeating "^2.0.0" - -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - -diff@^3.2.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dom-serializer@0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" - dependencies: - domelementtype "~1.1.1" - entities "~1.1.1" - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - -domelementtype@1, domelementtype@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" - -domelementtype@~1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" - -domhandler@^2.3.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" - dependencies: - domelementtype "1" - -domutils@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - dependencies: - dom-serializer "0" - domelementtype "1" - -domutils@^1.5.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - dependencies: - dom-serializer "0" - domelementtype "1" - -dotenv@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-5.0.1.tgz#a5317459bd3d79ab88cff6e44057a6a3fbb1fcef" - -duplexer2@~0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - dependencies: - readable-stream "^2.0.2" - -editorconfig@^0.13.2: - version "0.13.3" - resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.13.3.tgz#e5219e587951d60958fd94ea9a9a008cdeff1b34" - dependencies: - bluebird "^3.0.5" - commander "^2.9.0" - lru-cache "^3.2.0" - semver "^5.1.0" - sigmund "^1.0.1" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - -electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.45: - version "1.3.45" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.45.tgz#458ac1b1c5c760ce8811a16d2bfbd97ec30bafb8" - -elliptic@^6.0.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - -entities@^1.1.1, entities@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" - -es-abstract@^1.5.1, es-abstract@^1.6.1: - version "1.11.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.11.0.tgz#cce87d518f0496893b1a30cd8461835535480681" - dependencies: - es-to-primitive "^1.1.1" - function-bind "^1.1.1" - has "^1.0.1" - is-callable "^1.1.3" - is-regex "^1.0.4" - -es-to-primitive@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" - dependencies: - is-callable "^1.1.1" - is-date-object "^1.0.1" - is-symbol "^1.0.1" - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5, escape-string-regexp@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - -escodegen@^1.8.1, escodegen@~1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2" - dependencies: - esprima "^3.1.3" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -espree@^3.5.3: - version "3.5.4" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" - dependencies: - acorn "^5.5.0" - acorn-jsx "^3.0.0" - -esprima@^2.6.0: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - -esprima@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - -esprima@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" - -estraverse@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - -esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - -events@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -falafel@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/falafel/-/falafel-2.1.0.tgz#96bb17761daba94f46d001738b3cedf3a67fe06c" - dependencies: - acorn "^5.0.0" - foreach "^2.0.5" - isarray "0.0.1" - object-keys "^1.0.6" - -fast-levenshtein@~2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - -filesize@^3.6.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -flatten@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - -foreach@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - -fs-minipass@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" - dependencies: - minipass "^2.2.1" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -fsevents@^1.1.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.3.tgz#08292982e7059f6674c93d8b829c1e8604979ac0" - dependencies: - nan "^2.9.2" - node-pre-gyp "^0.9.0" - -function-bind@^1.0.2, function-bind@^1.1.0, function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -get-port@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - -graceful-fs@^4.1.2, graceful-fs@^4.1.9: - version "4.1.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" - -grapheme-breaker@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/grapheme-breaker/-/grapheme-breaker-0.3.2.tgz#5b9e6b78c3832452d2ba2bb1cb830f96276410ac" - dependencies: - brfs "^1.2.0" - unicode-trie "^0.3.1" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" - dependencies: - function-bind "^1.0.2" - -hash-base@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.0" - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - -html-comment-regex@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" - -htmlnano@^0.1.9: - version "0.1.9" - resolved "https://registry.yarnpkg.com/htmlnano/-/htmlnano-0.1.9.tgz#e6137aea84d20311a3875c42eb2799a1ff352627" - dependencies: - cssnano "^3.4.0" - object-assign "^4.0.1" - posthtml "^0.11.3" - posthtml-render "^1.1.3" - svgo "^1.0.5" - uglify-es "^3.3.9" - -htmlparser2@^3.9.2: - version "3.9.2" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" - dependencies: - domelementtype "^1.3.0" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^2.0.2" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - -iconv-lite@^0.4.4: - version "0.4.23" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ieee754@^1.1.4: - version "1.1.11" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.11.tgz#c16384ffe00f5b7835824e67b6f2bd44a5229455" - -ignore-walk@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" - dependencies: - minimatch "^3.0.4" - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - -ini@^1.3.4, ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - dependencies: - loose-envify "^1.0.0" - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - dependencies: - kind-of "^6.0.0" - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - -is-callable@^1.1.1, is-callable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - -is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - dependencies: - number-is-nan "^1.0.0" - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" - dependencies: - is-extglob "^2.1.1" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - dependencies: - kind-of "^3.0.2" - -is-number@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" - -is-odd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24" - dependencies: - is-number "^4.0.0" - -is-plain-obj@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - -is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - dependencies: - isobject "^3.0.1" - -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - dependencies: - has "^1.0.1" - -is-svg@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" - dependencies: - html-comment-regex "^1.1.0" - -is-symbol@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" - -is-url@^1.2.2: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - -isobject@^2.0.0, isobject@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - -js-base64@^2.1.9: - version "2.4.3" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.3.tgz#2e545ec2b0f2957f41356510205214e98fad6582" - -js-beautify@^1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.7.5.tgz#69d9651ef60dbb649f65527b53674950138a7919" - dependencies: - config-chain "~1.1.5" - editorconfig "^0.13.2" - mkdirp "~0.5.0" - nopt "~3.0.1" - -js-tokens@^3.0.0, js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - -js-yaml@^3.10.0, js-yaml@^3.7.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@~3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@~3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" - dependencies: - argparse "^1.0.7" - esprima "^2.6.0" - -js2xmlparser@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-3.0.0.tgz#3fb60eaa089c5440f9319f51760ccd07e2499733" - dependencies: - xmlcreate "^1.0.1" - -jsdoc@^3.5.5: - version "3.5.5" - resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.5.5.tgz#484521b126e81904d632ff83ec9aaa096708fa4d" - dependencies: - babylon "7.0.0-beta.19" - bluebird "~3.5.0" - catharsis "~0.8.9" - escape-string-regexp "~1.0.5" - js2xmlparser "~3.0.0" - klaw "~2.0.0" - marked "~0.3.6" - mkdirp "~0.5.1" - requizzle "~0.2.1" - strip-json-comments "~2.0.1" - taffydb "2.6.2" - underscore "~1.8.3" - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - -json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - dependencies: - minimist "^1.2.0" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - -klaw@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-2.0.0.tgz#59c128e0dc5ce410201151194eeb9cbf858650f6" - dependencies: - graceful-fs "^4.1.9" - -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -lodash.clone@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6" - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - -lodash@^4.17.4: - version "4.17.10" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" - -long@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - -longest@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - -loose-envify@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" - dependencies: - js-tokens "^3.0.0" - -lru-cache@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-3.2.0.tgz#71789b3b7f5399bec8565dda38aa30d2a097efee" - dependencies: - pseudomap "^1.0.1" - -macaddress@^0.2.8: - version "0.2.8" - resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" - -magic-string@^0.22.4: - version "0.22.5" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e" - dependencies: - vlq "^0.2.2" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - dependencies: - object-visit "^1.0.0" - -marked@~0.3.6: - version "0.3.19" - resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz#5d47f709c4c9fc3c216b6d46127280f40b39d790" - -math-expression-evaluator@^1.2.14: - version "1.2.17" - resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" - -md5.js@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -mdn-data@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.2.tgz#ceaa6a831b4de494352af984d301e3a8f2cad6e5" - -merge-source-map@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.0.4.tgz#a5de46538dae84d4114cc5ea02b4772a6346701f" - dependencies: - source-map "^0.5.6" - -micromatch@^3.0.4, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" - -minimalistic-assert@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - -minimatch@^3.0.2, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - dependencies: - brace-expansion "^1.1.7" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -minimist@^1.1.3, minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - -minipass@^2.2.1, minipass@^2.2.4: - version "2.3.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.0.tgz#2e11b1c46df7fe7f1afbe9a490280add21ffe384" - dependencies: - safe-buffer "^5.1.1" - yallist "^3.0.0" - -minizlib@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" - dependencies: - minipass "^2.2.1" - -mixin-deep@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - dependencies: - minimist "0.0.8" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - -nan@^2.0.7, nan@^2.9.2: - version "2.10.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" - -nanomatch@^1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-odd "^2.0.0" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -needle@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.1.tgz#b5e325bd3aae8c2678902fa296f729455d1d3a7d" - dependencies: - debug "^2.1.2" - iconv-lite "^0.4.4" - sax "^1.2.4" - -nice-try@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.4.tgz#d93962f6c52f2c1558c0fbda6d512819f1efe1c4" - -node-forge@^0.7.1: - version "0.7.5" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df" - -node-libs-browser@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^1.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.0" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.10.3" - vm-browserify "0.0.4" - -node-pre-gyp@^0.9.0: - version "0.9.1" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.9.1.tgz#f11c07516dd92f87199dbc7e1838eab7cd56c9e0" - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.0" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.1.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - dependencies: - abbrev "1" - osenv "^0.1.4" - -nopt@~3.0.1: - version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - dependencies: - abbrev "1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - -normalize-url@^1.4.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" - dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" - -npm-bundled@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.3.tgz#7e71703d973af3370a9591bafe3a63aca0be2308" - -npm-packlist@^1.1.6: - version "1.1.10" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.10.tgz#1039db9e985727e464df066f4cf0ab6ef85c398a" - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - -npmlog@^4.0.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - -nth-check@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" - dependencies: - boolbase "~1.0.0" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@~1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.4.1.tgz#37ffb10e71adaf3748d05f713b4c9452f402cbc4" - -object-keys@^1.0.6, object-keys@^1.0.8: - version "1.0.11" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - dependencies: - isobject "^3.0.0" - -object.getownpropertydescriptors@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" - dependencies: - define-properties "^1.1.2" - es-abstract "^1.5.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - dependencies: - isobject "^3.0.1" - -object.values@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.0.4.tgz#e524da09b4f66ff05df457546ec72ac99f13069a" - dependencies: - define-properties "^1.1.2" - es-abstract "^1.6.1" - function-bind "^1.1.0" - has "^1.0.1" - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - dependencies: - ee-first "1.1.1" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -opn@^5.1.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.3.0.tgz#64871565c863875f052cfdf53d3e3cb5adb53b1c" - dependencies: - is-wsl "^1.1.0" - -optionator@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.4" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - wordwrap "~1.0.0" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - -osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -pako@^0.2.5: - version "0.2.9" - resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" - -pako@~1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" - -parcel-bundler@^1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/parcel-bundler/-/parcel-bundler-1.8.1.tgz#ac62d0690786f51d7f309694bab6856f685a6986" - dependencies: - babel-code-frame "^6.26.0" - babel-core "^6.25.0" - babel-generator "^6.25.0" - babel-plugin-transform-es2015-modules-commonjs "^6.26.0" - babel-plugin-transform-react-jsx "^6.24.1" - babel-preset-env "^1.6.1" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.17.4" - babylon-walk "^1.0.2" - browserslist "^3.2.6" - chalk "^2.1.0" - chokidar "^2.0.3" - command-exists "^1.2.6" - commander "^2.11.0" - cross-spawn "^6.0.4" - cssnano "^3.10.0" - deasync "^0.1.12" - dotenv "^5.0.0" - filesize "^3.6.0" - get-port "^3.2.0" - glob "^7.1.2" - grapheme-breaker "^0.3.2" - htmlnano "^0.1.9" - is-url "^1.2.2" - js-yaml "^3.10.0" - json5 "^1.0.1" - micromatch "^3.0.4" - mkdirp "^0.5.1" - node-forge "^0.7.1" - node-libs-browser "^2.0.0" - opn "^5.1.0" - physical-cpu-count "^2.0.0" - postcss "^6.0.19" - postcss-value-parser "^3.3.0" - posthtml "^0.11.2" - posthtml-parser "^0.4.0" - posthtml-render "^1.1.3" - resolve "^1.4.0" - semver "^5.4.1" - serialize-to-js "^1.1.1" - serve-static "^1.12.4" - source-map "0.6.1" - strip-ansi "^4.0.0" - toml "^2.3.3" - tomlify-j0.4 "^3.0.0" - uglify-es "^3.2.1" - v8-compile-cache "^2.0.0" - ws "^5.1.1" - -parse-asn1@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - -parseurl@~1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - -path-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - -path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - -path-parse@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" - -pbkdf2@^3.0.3: - version "3.0.16" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.16.tgz#7404208ec6b01b62d85bf83853a8064f8d9c2a5c" - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -physical-cpu-count@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz#18de2f97e4bf7a9551ad7511942b5496f7aba660" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - -postcss-calc@^5.2.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" - dependencies: - postcss "^5.0.2" - postcss-message-helpers "^2.0.0" - reduce-css-calc "^1.2.6" - -postcss-colormin@^2.1.8: - version "2.2.2" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" - dependencies: - colormin "^1.0.5" - postcss "^5.0.13" - postcss-value-parser "^3.2.3" - -postcss-convert-values@^2.3.4: - version "2.6.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" - dependencies: - postcss "^5.0.11" - postcss-value-parser "^3.1.2" - -postcss-discard-comments@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" - dependencies: - postcss "^5.0.14" - -postcss-discard-duplicates@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" - dependencies: - postcss "^5.0.4" - -postcss-discard-empty@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" - dependencies: - postcss "^5.0.14" - -postcss-discard-overridden@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" - dependencies: - postcss "^5.0.16" - -postcss-discard-unused@^2.2.1: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" - dependencies: - postcss "^5.0.14" - uniqs "^2.0.0" - -postcss-filter-plugins@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz#6d85862534d735ac420e4a85806e1f5d4286d84c" - dependencies: - postcss "^5.0.4" - uniqid "^4.0.0" - -postcss-merge-idents@^2.1.5: - version "2.1.7" - resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" - dependencies: - has "^1.0.1" - postcss "^5.0.10" - postcss-value-parser "^3.1.1" - -postcss-merge-longhand@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" - dependencies: - postcss "^5.0.4" - -postcss-merge-rules@^2.0.3: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" - dependencies: - browserslist "^1.5.2" - caniuse-api "^1.5.2" - postcss "^5.0.4" - postcss-selector-parser "^2.2.2" - vendors "^1.0.0" - -postcss-message-helpers@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" - -postcss-minify-font-values@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" - dependencies: - object-assign "^4.0.1" - postcss "^5.0.4" - postcss-value-parser "^3.0.2" - -postcss-minify-gradients@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" - dependencies: - postcss "^5.0.12" - postcss-value-parser "^3.3.0" - -postcss-minify-params@^1.0.4: - version "1.2.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" - dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.2" - postcss-value-parser "^3.0.2" - uniqs "^2.0.0" - -postcss-minify-selectors@^2.0.4: - version "2.1.1" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" - dependencies: - alphanum-sort "^1.0.2" - has "^1.0.1" - postcss "^5.0.14" - postcss-selector-parser "^2.0.0" - -postcss-normalize-charset@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" - dependencies: - postcss "^5.0.5" - -postcss-normalize-url@^3.0.7: - version "3.0.8" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^1.4.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" - -postcss-ordered-values@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" - dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.1" - -postcss-reduce-idents@^2.2.2: - version "2.4.0" - resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" - dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.2" - -postcss-reduce-initial@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" - dependencies: - postcss "^5.0.4" - -postcss-reduce-transforms@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" - dependencies: - has "^1.0.1" - postcss "^5.0.8" - postcss-value-parser "^3.0.1" - -postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" - dependencies: - flatten "^1.0.2" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-svgo@^2.1.1: - version "2.1.6" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" - dependencies: - is-svg "^2.0.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" - svgo "^0.7.0" - -postcss-unique-selectors@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" - dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.4" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" - -postcss-zindex@^2.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" - dependencies: - has "^1.0.1" - postcss "^5.0.4" - uniqs "^2.0.0" - -postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.8, postcss@^5.2.16: - version "5.2.18" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" - dependencies: - chalk "^1.1.3" - js-base64 "^2.1.9" - source-map "^0.5.6" - supports-color "^3.2.3" - -postcss@^6.0.19: - version "6.0.22" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.22.tgz#e23b78314905c3b90cbd61702121e7a78848f2a3" - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.4.0" - -posthtml-parser@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/posthtml-parser/-/posthtml-parser-0.3.3.tgz#3fe986fca9f00c0f109d731ba590b192f26e776d" - dependencies: - htmlparser2 "^3.9.2" - isobject "^2.1.0" - object-assign "^4.1.1" - -posthtml-parser@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/posthtml-parser/-/posthtml-parser-0.4.1.tgz#95b78fef766fbbe0a6f861b6e95582bc3d1ff933" - dependencies: - htmlparser2 "^3.9.2" - object-assign "^4.1.1" - -posthtml-render@^1.1.0, posthtml-render@^1.1.3: - version "1.1.4" - resolved "https://registry.yarnpkg.com/posthtml-render/-/posthtml-render-1.1.4.tgz#95dac09892f4f183fad5ac823f08f42c0256551e" - -posthtml@^0.11.2, posthtml@^0.11.3: - version "0.11.3" - resolved "https://registry.yarnpkg.com/posthtml/-/posthtml-0.11.3.tgz#17ea2921b0555b7455f33c977bd16d8b8cb74f27" - dependencies: - object-assign "^4.1.1" - posthtml-parser "^0.3.3" - posthtml-render "^1.1.0" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - -prepend-http@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - -prettier@^1.12.1: - version "1.12.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.12.1.tgz#c1ad20e803e7749faf905a409d2367e06bbe7325" - -private@^0.1.6, private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - -process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - -protobufjs@^6.8.6: - version "6.8.6" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.8.6.tgz#ce3cf4fff9625b62966c455fc4c15e4331a11ca2" - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^3.0.32" - "@types/node" "^8.9.4" - long "^4.0.0" - -pseudomap@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - -public-encrypt@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.2.tgz#46eb9107206bf73489f8b85b69d91334c6610994" - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - -query-string@^4.1.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" - dependencies: - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - -quote-stream@^1.0.1, quote-stream@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/quote-stream/-/quote-stream-1.0.2.tgz#84963f8c9c26b942e153feeb53aae74652b7e0b2" - dependencies: - buffer-equal "0.0.1" - minimist "^1.1.3" - through2 "^2.0.0" - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" - -rc@^1.1.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.7.tgz#8a10ca30d588d00464360372b890d06dacd02297" - dependencies: - deep-extend "^0.5.1" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.3: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readdirp@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" - dependencies: - graceful-fs "^4.1.2" - minimatch "^3.0.2" - readable-stream "^2.0.2" - set-immediate-shim "^1.0.1" - -reduce-css-calc@^1.2.6: - version "1.3.0" - resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" - dependencies: - balanced-match "^0.4.2" - math-expression-evaluator "^1.2.14" - reduce-function-call "^1.0.1" - -reduce-function-call@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99" - dependencies: - balanced-match "^0.4.2" - -regenerate@^1.2.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - -regenerator-runtime@^0.10.5: - version "0.10.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" - dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" - private "^0.1.6" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - dependencies: - jsesc "~0.5.0" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - -repeat-element@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" - -repeat-string@^1.5.2, repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - dependencies: - is-finite "^1.0.0" - -requizzle@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.1.tgz#6943c3530c4d9a7e46f1cddd51c158fc670cdbde" - dependencies: - underscore "~1.6.0" - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - -resolve@^1.1.5, resolve@^1.3.2, resolve@^1.4.0: - version "1.7.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.7.1.tgz#aadd656374fd298aee895bc026b8297418677fd3" - dependencies: - path-parse "^1.0.5" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - dependencies: - align-text "^0.1.1" - -rimraf@^2.6.1: - version "2.6.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" - dependencies: - glob "^7.0.5" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - -safer-eval@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/safer-eval/-/safer-eval-1.2.3.tgz#73ba74a34bc8a07d6a44135c815fd18a8eebe7a0" - dependencies: - clones "^1.1.0" - -sax@^1.2.4, sax@~1.2.1, sax@~1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - -semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" - -send@0.16.2: - version "0.16.2" - resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.6.2" - mime "1.4.1" - ms "2.0.0" - on-finished "~2.3.0" - range-parser "~1.2.0" - statuses "~1.4.0" - -serialize-to-js@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/serialize-to-js/-/serialize-to-js-1.2.0.tgz#5887ee3b966158295207a6ed6fc1a3a8a07c55b6" - dependencies: - js-beautify "^1.7.5" - safer-eval "^1.2.3" - -serve-static@^1.12.4: - version "1.13.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.2" - send "0.16.2" - -set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - -set-immediate-shim@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - -set-value@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.1" - to-object-path "^0.3.0" - -set-value@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shallow-copy@~0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/shallow-copy/-/shallow-copy-0.0.1.tgz#415f42702d73d810330292cc5ee86eae1a11a170" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - -sigmund@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" - -signal-exit@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - dependencies: - is-plain-obj "^1.0.0" - -source-map-resolve@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - dependencies: - atob "^2.1.1" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - dependencies: - source-map "^0.5.6" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - -source-map@0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.0.tgz#36446016b0e5b626cf0315d6ff14b15bafb9dc10" - -source-map@0.6.1, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - -source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - -stable@~0.1.6: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - -static-eval@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-2.0.0.tgz#0e821f8926847def7b4b50cda5d55c04a9b13864" - dependencies: - escodegen "^1.8.1" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -static-module@^2.2.0: - version "2.2.5" - resolved "https://registry.yarnpkg.com/static-module/-/static-module-2.2.5.tgz#bd40abceae33da6b7afb84a0e4329ff8852bfbbf" - dependencies: - concat-stream "~1.6.0" - convert-source-map "^1.5.1" - duplexer2 "~0.1.4" - escodegen "~1.9.0" - falafel "^2.1.0" - has "^1.0.1" - magic-string "^0.22.4" - merge-source-map "1.0.4" - object-inspect "~1.4.0" - quote-stream "~1.0.2" - readable-stream "~2.3.3" - shallow-copy "~0.0.1" - static-eval "^2.0.0" - through2 "~2.0.3" - -"statuses@>= 1.4.0 < 2": - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - -statuses@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" - -stream-browserify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-http@^2.7.2: - version "2.8.2" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.2.tgz#4126e8c6b107004465918aa2fc35549e77402c87" - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - -string-width@^1.0.1, string-width@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string_decoder@^1.0.0, string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - dependencies: - ansi-regex "^3.0.0" - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -supports-color@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - dependencies: - has-flag "^1.0.0" - -supports-color@^5.3.0, supports-color@^5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" - dependencies: - has-flag "^3.0.0" - -svgo@^0.7.0: - version "0.7.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" - dependencies: - coa "~1.0.1" - colors "~1.1.2" - csso "~2.3.1" - js-yaml "~3.7.0" - mkdirp "~0.5.1" - sax "~1.2.1" - whet.extend "~0.9.9" - -svgo@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.0.5.tgz#7040364c062a0538abacff4401cea6a26a7a389a" - dependencies: - coa "~2.0.1" - colors "~1.1.2" - css-select "~1.3.0-rc0" - css-select-base-adapter "~0.1.0" - css-tree "1.0.0-alpha25" - css-url-regex "^1.1.0" - csso "^3.5.0" - js-yaml "~3.10.0" - mkdirp "~0.5.1" - object.values "^1.0.4" - sax "~1.2.4" - stable "~0.1.6" - unquote "~1.1.1" - util.promisify "~1.0.0" - -taffydb@2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.6.2.tgz#7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268" - -tar@^4: - version "4.4.2" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.2.tgz#60685211ba46b38847b1ae7ee1a24d744a2cd462" - dependencies: - chownr "^1.0.1" - fs-minipass "^1.2.5" - minipass "^2.2.4" - minizlib "^1.1.0" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.2" - -text-encoding@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/text-encoding/-/text-encoding-0.6.4.tgz#e399a982257a276dae428bb92845cb71bdc26d19" - -through2@^2.0.0, through2@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" - dependencies: - readable-stream "^2.1.5" - xtend "~4.0.1" - -timers-browserify@^2.0.4: - version "2.0.10" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" - dependencies: - setimmediate "^1.0.4" - -tiny-inflate@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.2.tgz#93d9decffc8805bd57eae4310f0b745e9b6fb3a7" - -tmp@0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - dependencies: - os-tmpdir "~1.0.2" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toml@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/toml/-/toml-2.3.3.tgz#8d683d729577cb286231dfc7a8affe58d31728fb" - -tomlify-j0.4@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/tomlify-j0.4/-/tomlify-j0.4-3.0.0.tgz#99414d45268c3a3b8bf38be82145b7bba34b7473" - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - -tslib@^1.8.0, tslib@^1.8.1: - version "1.9.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8" - -tslint@5.10.0: - version "5.10.0" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.10.0.tgz#11e26bccb88afa02dd0d9956cae3d4540b5f54c3" - dependencies: - babel-code-frame "^6.22.0" - builtin-modules "^1.1.1" - chalk "^2.3.0" - commander "^2.12.1" - diff "^3.2.0" - glob "^7.1.1" - js-yaml "^3.7.0" - minimatch "^3.0.4" - resolve "^1.3.2" - semver "^5.3.0" - tslib "^1.8.0" - tsutils "^2.12.1" - -tsutils@^2.12.1: - version "2.27.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.27.0.tgz#9efb252b188eaa0ca3ade41dc410d6ce7eaab816" - dependencies: - tslib "^1.8.1" - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - dependencies: - prelude-ls "~1.1.2" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - -typescript@^2.8.3: - version "2.8.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.8.3.tgz#5d817f9b6f31bb871835f4edf0089f21abe6c170" - -uglify-es@^3.2.1, uglify-es@^3.3.9: - version "3.3.9" - resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" - dependencies: - commander "~2.13.0" - source-map "~0.6.1" - -uglify-js@^2.8.29: - version "2.8.29" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" - dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" - -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - -underscore-contrib@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/underscore-contrib/-/underscore-contrib-0.3.0.tgz#665b66c24783f8fa2b18c9f8cbb0e2c7d48c26c7" - dependencies: - underscore "1.6.0" - -underscore@1.6.0, underscore@~1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" - -underscore@~1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" - -unicode-trie@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/unicode-trie/-/unicode-trie-0.3.1.tgz#d671dddd89101a08bac37b6a5161010602052085" - dependencies: - pako "^0.2.5" - tiny-inflate "^1.0.0" - -union-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^0.4.3" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - -uniqid@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/uniqid/-/uniqid-4.1.1.tgz#89220ddf6b751ae52b5f72484863528596bb84c1" - dependencies: - macaddress "^0.2.8" - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.0.5.tgz#02cab9ecebe95bbec6d5fc2566325725ab6d1a73" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544" - dependencies: - kind-of "^6.0.2" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - -util.promisify@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" - -util@0.10.3, util@^0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - dependencies: - inherits "2.0.1" - -v8-compile-cache@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.0.tgz#526492e35fc616864284700b7043e01baee09f0a" - -vendors@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.2.tgz#7fcb5eef9f5623b156bcea89ec37d63676f21801" - -vlq@^0.2.2: - version "0.2.3" - resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" - -vm-browserify@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" - dependencies: - indexof "0.0.1" - -whet.extend@~0.9.9: - version "0.9.9" - resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" - -which@^1.2.9: - version "1.3.0" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" - dependencies: - string-width "^1.0.2" - -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - -wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - -ws@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.1.1.tgz#1d43704689711ac1942fd2f283e38f825c4b8b95" - dependencies: - async-limiter "~1.0.0" - -xmlcreate@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-1.0.2.tgz#fa6bf762a60a413fb3dd8f4b03c5b269238d308f" - -xtend@^4.0.0, xtend@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - -yallist@^3.0.0, yallist@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" - -yargs@~3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0"