diff --git a/assets/deps.png b/assets/deps.png index 49167257a4..475f844856 100644 Binary files a/assets/deps.png and b/assets/deps.png differ diff --git a/assets/dot-example.dot b/assets/dot-example.dot new file mode 100644 index 0000000000..b2af0bf274 --- /dev/null +++ b/assets/dot-example.dot @@ -0,0 +1,21 @@ +digraph g { +rankdir="LR"; +fontname="Inconsolata"; +fontsize="9"; +fontcolor="gray"; +label="Generated with @thi.ng/dot"; +labeljust="l"; +labelloc="b"; +node[style="filled", fontname="Inconsolata", fontsize="11"]; +edge[arrowsize="0.75", fontname="Inconsolata", fontsize="9"]; +"x"[color="black", fontcolor="white", label="x (12)"]; +"y"[color="black", fontcolor="white", label="y (23)"]; +"res"[color="black", fontcolor="white", label="res (8050)", peripheries="2"]; +"op1"[fillcolor="green", shape="Mrecord", label="{ <0> a | <1> b } | op1\n(+) | { out }"]; +"op2"[fillcolor="yellow", shape="Mrecord", label="{ <0> a | <1> b } | op2\n(*) | { out }"]; +"x" -> "op1":"1"; +"y" -> "op1":"0"; +"y" -> "op2":"0"[label="xform", color="blue"]; +"op1":"out" -> "op2":"1"; +"op2":"out" -> "res"; +} \ No newline at end of file diff --git a/assets/dot-example.png b/assets/dot-example.png new file mode 100644 index 0000000000..4a87db5b58 Binary files /dev/null and b/assets/dot-example.png differ diff --git a/examples/README.md b/examples/README.md index 36644f3e44..d9b6b289bb 100644 --- a/examples/README.md +++ b/examples/README.md @@ -8,14 +8,14 @@ If you want to [contribute](../CONTRIBUTING.md) an example, please get in touch | ---: | --- | --- | --- | --- | | 1 | [async-effect](./async-effect) | Async side effect handling (JSON I/O) | atom, hdom, interceptors | intermediate | | 2 | [cellular-automata](./cellular-automata) | Transducer based, customizable 2D cellular automata | hdom, hdom-components, transducers | basic | -| 3 | [dashboard](./cellular-automata) | Barebones components w/ local state | hdom, hdom-components, transducers | basic | -| 4 | [devcards](./devcards) | multiple app instances with/without shared state | atom, hdom, hdom-components | intermediate | +| 3 | [dashboard](./cellular-automata) | Barebones components w/ local state | hdom, transducers | basic | +| 4 | [devcards](./devcards) | multiple app instances with/without shared state | atom, hdom | intermediate | | 5 | [hdom-basics](./hdom-basics) | hello world | hdom, hiccup | basic | | 6 | [hdom-benchmark](./hdom-benchmark) | hdom rendering perf / stress test, canvas FPS counter | hdom, rstream, transducers | intermediate | | 7 | [interceptor-basics](./hdom-benchmark) | event handling w/ interceptors and side effects | atom, hdom, interceptors | intermediate | | 8 | [json-components](./json-components) | JSON->component transformation, live editor | hdom, transducers | intermediate | | 9 | [login-form](./login-form) | basic SPA without router | atom, hdom | intermediate | -| 10 | [pointfree-svg](./pointfree-svg) | generate SVG using pointfree DSL | hiccup, hdom-components, pointfree-lang | intermediate | +| 10 | [pointfree-svg](./pointfree-svg) | generate SVG using pointfree DSL | hiccup, hiccup-svg, pointfree-lang | intermediate | | 11 | [router-basics](./router-basics) | complete mini SPA | atom, hdom, interceptors, router | advanced | | 12 | [rstream-dataflow](./rstream-dataflow) | dataflow graph | atom, hdom, rstream, rstream-gestures, rstream-graph, transducers | intermediate | | 13 | [rstream-grid](./rstream-grid) | dataflow graph svg gen | atom, hdom, hiccup-svg, interceptors, rstream-graph, transducers | advanced | diff --git a/examples/async-effect/package.json b/examples/async-effect/package.json index 9f93957bf2..a5d7dea08e 100644 --- a/examples/async-effect/package.json +++ b/examples/async-effect/package.json @@ -5,15 +5,15 @@ "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { - "build": "webpack --mode production", + "build": "webpack --mode production --display-reasons --display-modules", "start": "webpack-dev-server --open --mode development --devtool inline-source-map" }, "devDependencies": { - "ts-loader": "^4.2.0", - "typescript": "^2.8.1", - "webpack": "^4.6.0", - "webpack-cli": "^2.0.14", - "webpack-dev-server": "^3.1.3" + "ts-loader": "^4.3.0", + "typescript": "^2.8.3", + "webpack": "^4.8.1", + "webpack-cli": "^2.1.3", + "webpack-dev-server": "^3.1.4" }, "dependencies": { "@thi.ng/api": "latest", diff --git a/examples/cellular-automata/package.json b/examples/cellular-automata/package.json index 08ab809e92..a0e2b2e3fa 100644 --- a/examples/cellular-automata/package.json +++ b/examples/cellular-automata/package.json @@ -5,15 +5,15 @@ "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { - "build": "webpack --mode production", + "build": "webpack --mode production --display-reasons --display-modules", "start": "webpack-dev-server --open --mode development --devtool inline-source-map" }, "devDependencies": { - "ts-loader": "^4.2.0", - "typescript": "^2.8.1", - "webpack": "^4.6.0", - "webpack-cli": "^2.0.14", - "webpack-dev-server": "^3.1.3" + "ts-loader": "^4.3.0", + "typescript": "^2.8.3", + "webpack": "^4.8.1", + "webpack-cli": "^2.1.3", + "webpack-dev-server": "^3.1.4" }, "dependencies": { "@thi.ng/api": "latest", diff --git a/examples/cellular-automata/src/index.ts b/examples/cellular-automata/src/index.ts index c3dd4ddc8f..a174f33c82 100644 --- a/examples/cellular-automata/src/index.ts +++ b/examples/cellular-automata/src/index.ts @@ -110,18 +110,23 @@ const ruleBoxes = (prefix, i, rstride = 9) => .map((rule, j) => checkbox(rule, (e) => setRule(i, j, e.target.checked))), ]; +const isPreset = (id) => presets.findIndex((x) => x[0] === id) !== -1; + // Use Conway CA default state rules [[dead], [alive]] if no preset present in hash applyRules(location.hash.length > 18 ? location.hash.substr(1) : presets[1][0]); // define & start main app component start("app", () => { + const id = location.hash.substr(1); return ["div", ruleBoxes("birth", 0), ruleBoxes("survive", 1), ["div", ["button", { onclick: () => randomizeRules() }, "randomize rules"], ["button", { onclick: () => randomizeGrid() }, "reset grid"], - [dropdown, { onchange: (e) => applyRules(e.target.value) }, presets, location.hash.substr(1)] + [dropdown, { onchange: (e) => applyRules(e.target.value) }, + presets, + isPreset(id) ? id : ""] ], ["pre", format(grid = convolve(grid, rules, W, H), W)] ]; diff --git a/examples/dashboard/package.json b/examples/dashboard/package.json index fa56c30e22..12661c80a6 100644 --- a/examples/dashboard/package.json +++ b/examples/dashboard/package.json @@ -5,15 +5,15 @@ "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { - "build": "webpack --mode production", + "build": "webpack --mode production --display-reasons --display-modules", "start": "webpack-dev-server --open --mode development --devtool inline-source-map" }, "devDependencies": { - "ts-loader": "^4.2.0", - "typescript": "^2.8.1", - "webpack": "^4.6.0", - "webpack-cli": "^2.0.14", - "webpack-dev-server": "^3.1.3" + "ts-loader": "^4.3.0", + "typescript": "^2.8.3", + "webpack": "^4.8.1", + "webpack-cli": "^2.1.3", + "webpack-dev-server": "^3.1.4" }, "dependencies": { "@thi.ng/hdom": "latest" diff --git a/examples/devcards/package.json b/examples/devcards/package.json index e960a3fecc..26c0f78bde 100644 --- a/examples/devcards/package.json +++ b/examples/devcards/package.json @@ -5,15 +5,15 @@ "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { - "build": "webpack --mode production", + "build": "webpack --mode production --display-reasons --display-modules", "start": "webpack-dev-server --open --mode development --devtool inline-source-map" }, "devDependencies": { - "ts-loader": "^4.2.0", - "typescript": "^2.8.1", - "webpack": "^4.6.0", - "webpack-cli": "^2.0.14", - "webpack-dev-server": "^3.1.3" + "ts-loader": "^4.3.0", + "typescript": "^2.8.3", + "webpack": "^4.8.1", + "webpack-cli": "^2.1.3", + "webpack-dev-server": "^3.1.4" }, "dependencies": { "@thi.ng/api": "latest", diff --git a/examples/hdom-basics/package.json b/examples/hdom-basics/package.json index 1486c25c25..6ebcb28e5a 100644 --- a/examples/hdom-basics/package.json +++ b/examples/hdom-basics/package.json @@ -5,15 +5,15 @@ "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { - "build": "webpack --mode production", + "build": "webpack --mode production --display-reasons --display-modules", "start": "webpack-dev-server --open --mode development --devtool inline-source-map" }, "devDependencies": { - "ts-loader": "^4.2.0", - "typescript": "^2.8.1", - "webpack": "^4.6.0", - "webpack-cli": "^2.0.14", - "webpack-dev-server": "^3.1.3" + "ts-loader": "^4.3.0", + "typescript": "^2.8.3", + "webpack": "^4.8.1", + "webpack-cli": "^2.1.3", + "webpack-dev-server": "^3.1.4" }, "dependencies": { "@thi.ng/hdom": "latest" diff --git a/examples/hdom-benchmark/package.json b/examples/hdom-benchmark/package.json index cf531df637..4775c7f7ab 100644 --- a/examples/hdom-benchmark/package.json +++ b/examples/hdom-benchmark/package.json @@ -5,15 +5,15 @@ "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { - "build": "webpack --mode production", + "build": "webpack --mode production --display-reasons --display-modules", "start": "webpack-dev-server --open --mode development --devtool inline-source-map" }, "devDependencies": { - "ts-loader": "^4.2.0", - "typescript": "^2.8.1", - "webpack": "^4.6.0", - "webpack-cli": "^2.0.14", - "webpack-dev-server": "^3.1.3" + "ts-loader": "^4.3.0", + "typescript": "^2.8.3", + "webpack": "^4.8.1", + "webpack-cli": "^2.1.3", + "webpack-dev-server": "^3.1.4" }, "dependencies": { "@thi.ng/api": "latest", diff --git a/examples/interceptor-basics/package.json b/examples/interceptor-basics/package.json index c39cc62dbe..900094ad34 100644 --- a/examples/interceptor-basics/package.json +++ b/examples/interceptor-basics/package.json @@ -5,15 +5,15 @@ "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { - "build": "webpack --mode production", + "build": "webpack --mode production --display-reasons --display-modules", "start": "webpack-dev-server --open --mode development --devtool inline-source-map" }, "devDependencies": { - "ts-loader": "^4.2.0", - "typescript": "^2.8.1", - "webpack": "^4.6.0", - "webpack-cli": "^2.0.14", - "webpack-dev-server": "^3.1.3" + "ts-loader": "^4.3.0", + "typescript": "^2.8.3", + "webpack": "^4.8.1", + "webpack-cli": "^2.1.3", + "webpack-dev-server": "^3.1.4" }, "dependencies": { "@thi.ng/api": "latest", diff --git a/examples/json-components/package.json b/examples/json-components/package.json index 478cf0251d..56930a05b4 100644 --- a/examples/json-components/package.json +++ b/examples/json-components/package.json @@ -5,15 +5,15 @@ "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { - "build": "webpack --mode production", + "build": "webpack --mode production --display-reasons --display-modules", "start": "webpack-dev-server --open --mode development --devtool inline-source-map" }, "devDependencies": { - "ts-loader": "^4.2.0", - "typescript": "^2.8.1", - "webpack": "^4.6.0", - "webpack-cli": "^2.0.14", - "webpack-dev-server": "^3.1.3" + "ts-loader": "^4.3.0", + "typescript": "^2.8.3", + "webpack": "^4.8.1", + "webpack-cli": "^2.1.3", + "webpack-dev-server": "^3.1.4" }, "dependencies": { "@thi.ng/hdom": "latest", diff --git a/examples/login-form/package.json b/examples/login-form/package.json index dd24a873bb..0b04f4ff7b 100644 --- a/examples/login-form/package.json +++ b/examples/login-form/package.json @@ -5,15 +5,15 @@ "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { - "build": "webpack --mode production", + "build": "webpack --mode production --display-reasons --display-modules", "start": "webpack-dev-server --open --mode development --devtool inline-source-map" }, "devDependencies": { - "ts-loader": "^4.2.0", - "typescript": "^2.8.1", - "webpack": "^4.6.0", - "webpack-cli": "^2.0.14", - "webpack-dev-server": "^3.1.3" + "ts-loader": "^4.3.0", + "typescript": "^2.8.3", + "webpack": "^4.8.1", + "webpack-cli": "^2.1.3", + "webpack-dev-server": "^3.1.4" }, "dependencies": { "@thi.ng/atom": "latest", diff --git a/examples/pointfree-svg/README.md b/examples/pointfree-svg/README.md index 9f5d35732b..39cd8fed4b 100644 --- a/examples/pointfree-svg/README.md +++ b/examples/pointfree-svg/README.md @@ -3,7 +3,7 @@ This is a non-interactive demo combining the following packages to generate the SVG graphic below: - [@thi.ng/hiccup](https://github.com/thi-ng/umbrella/tree/master/packages/hiccup) -- [@thi.ng/hdom-components](https://github.com/thi-ng/umbrella/tree/master/packages/hdom-components) +- [@thi.ng/hiccup-svg](https://github.com/thi-ng/umbrella/tree/master/packages/hiccup-svg) - [@thi.ng/pointfree](https://github.com/thi-ng/umbrella/tree/master/packages/pointfree) - [@thi.ng/pointfree-lang](https://github.com/thi-ng/umbrella/tree/master/packages/pointfree-lang) diff --git a/examples/router-basics/package.json b/examples/router-basics/package.json index 75afaa2c56..c0941760f6 100644 --- a/examples/router-basics/package.json +++ b/examples/router-basics/package.json @@ -6,7 +6,7 @@ "author": "Karsten Schmidt", "license": "Apache-2.0", "scripts": { - "build": "webpack --mode production", + "build": "webpack --mode production --display-reasons --display-modules", "start": "webpack-dev-server --open --mode development --devtool inline-source-map" }, "dependencies": { @@ -16,10 +16,10 @@ "@thi.ng/router": "latest" }, "devDependencies": { - "ts-loader": "^4.2.0", - "typescript": "^2.8.1", - "webpack": "^4.6.0", - "webpack-cli": "^2.0.14", - "webpack-dev-server": "^3.1.3" + "ts-loader": "^4.3.0", + "typescript": "^2.8.3", + "webpack": "^4.8.1", + "webpack-cli": "^2.1.3", + "webpack-dev-server": "^3.1.4" } } \ No newline at end of file diff --git a/examples/rstream-dataflow/package.json b/examples/rstream-dataflow/package.json index db8d49a916..1b7c67a971 100644 --- a/examples/rstream-dataflow/package.json +++ b/examples/rstream-dataflow/package.json @@ -5,15 +5,15 @@ "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { - "build": "webpack --mode production", + "build": "webpack --mode production --display-reasons --display-modules", "start": "webpack-dev-server --open --mode development --devtool inline-source-map" }, "devDependencies": { - "ts-loader": "^4.2.0", - "typescript": "^2.8.1", - "webpack": "^4.6.0", - "webpack-cli": "^2.0.14", - "webpack-dev-server": "^3.1.3" + "ts-loader": "^4.3.0", + "typescript": "^2.8.3", + "webpack": "^4.8.1", + "webpack-cli": "^2.1.3", + "webpack-dev-server": "^3.1.4" }, "dependencies": { "@thi.ng/api": "latest", diff --git a/examples/rstream-grid/package.json b/examples/rstream-grid/package.json index 8eaf075684..d6a079a9ef 100644 --- a/examples/rstream-grid/package.json +++ b/examples/rstream-grid/package.json @@ -3,7 +3,7 @@ "version": "0.0.1", "description": "TODO", "repository": "https://github.com/[your-gh-username]/rs-undo", - "author": "TODO", + "author": "Karsten Schmidt", "license": "MIT", "scripts": { "build": "webpack --mode production --display-reasons --display-modules", @@ -19,10 +19,10 @@ }, "devDependencies": { "@types/node": "^9.6.2", - "typescript": "^2.8.1", - "ts-loader": "^4.2.0", + "typescript": "^2.8.3", + "ts-loader": "^4.3.0", "webpack": "^4.5.0", - "webpack-cli": "^2.0.14", - "webpack-dev-server": "^3.1.3" + "webpack-cli": "^2.1.3", + "webpack-dev-server": "^3.1.4" } } \ No newline at end of file diff --git a/examples/svg-particles/package.json b/examples/svg-particles/package.json index 5ae3d24d82..7814835ba0 100644 --- a/examples/svg-particles/package.json +++ b/examples/svg-particles/package.json @@ -5,15 +5,15 @@ "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { - "build": "webpack --mode production", + "build": "webpack --mode production --display-reasons --display-modules", "start": "webpack-dev-server --open --mode development --devtool inline-source-map" }, "devDependencies": { - "ts-loader": "^4.2.0", - "typescript": "^2.8.1", - "webpack": "^4.6.0", - "webpack-cli": "^2.0.14", - "webpack-dev-server": "^3.1.3" + "ts-loader": "^4.3.0", + "typescript": "^2.8.3", + "webpack": "^4.8.1", + "webpack-cli": "^2.1.3", + "webpack-dev-server": "^3.1.4" }, "dependencies": { "@thi.ng/hdom": "latest", diff --git a/examples/svg-waveform/package.json b/examples/svg-waveform/package.json index 185baf07a8..f6feb0980d 100644 --- a/examples/svg-waveform/package.json +++ b/examples/svg-waveform/package.json @@ -3,10 +3,10 @@ "version": "0.0.1", "description": "TODO", "repository": "https://github.com/[your-gh-username]/rs-icep", - "author": "TODO", + "author": "Karsten Schmidt", "license": "MIT", "scripts": { - "build": "webpack --mode production", + "build": "webpack --mode production --display-reasons --display-modules", "start": "webpack-dev-server --open --mode development --devtool inline-source-map" }, "dependencies": { @@ -18,10 +18,10 @@ }, "devDependencies": { "@types/node": "^9.6.2", - "typescript": "^2.8.1", - "ts-loader": "^4.2.0", + "typescript": "^2.8.3", + "ts-loader": "^4.3.0", "webpack": "^4.5.0", - "webpack-cli": "^2.0.14", - "webpack-dev-server": "^3.1.3" + "webpack-cli": "^2.1.3", + "webpack-dev-server": "^3.1.4" } } \ No newline at end of file diff --git a/examples/todo-list/package.json b/examples/todo-list/package.json index 3209a9b62a..53a41fa5ce 100644 --- a/examples/todo-list/package.json +++ b/examples/todo-list/package.json @@ -5,15 +5,15 @@ "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { - "build": "webpack --mode production", + "build": "webpack --mode production --display-reasons --display-modules", "start": "webpack-dev-server --open --mode development --devtool inline-source-map" }, "devDependencies": { - "ts-loader": "^4.2.0", - "typescript": "^2.8.1", - "webpack": "^4.6.0", - "webpack-cli": "^2.0.14", - "webpack-dev-server": "^3.1.3" + "ts-loader": "^4.3.0", + "typescript": "^2.8.3", + "webpack": "^4.8.1", + "webpack-cli": "^2.1.3", + "webpack-dev-server": "^3.1.4" }, "dependencies": { "@thi.ng/atom": "latest", diff --git a/examples/webgl/package.json b/examples/webgl/package.json index 0a1e738644..734394df2e 100644 --- a/examples/webgl/package.json +++ b/examples/webgl/package.json @@ -5,15 +5,15 @@ "author": "Karsten Schmidt ", "license": "Apache-2.0", "scripts": { - "build": "webpack --mode production", + "build": "webpack --mode production --display-reasons --display-modules", "start": "webpack-dev-server --open --mode development --devtool inline-source-map" }, "devDependencies": { - "ts-loader": "^4.2.0", - "typescript": "^2.8.1", - "webpack": "^4.6.0", - "webpack-cli": "^2.0.14", - "webpack-dev-server": "^3.1.3" + "ts-loader": "^4.3.0", + "typescript": "^2.8.3", + "webpack": "^4.8.1", + "webpack-cli": "^2.1.3", + "webpack-dev-server": "^3.1.4" }, "dependencies": { "@thi.ng/hdom": "latest", diff --git a/lerna.json b/lerna.json index e220b15a35..4b51580f23 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "lerna": "2.10.1", + "lerna": "2.11.0", "packages": [ "packages/*" ], diff --git a/package.json b/package.json index 368398a8cc..e8d6fbc073 100644 --- a/package.json +++ b/package.json @@ -5,17 +5,18 @@ ], "devDependencies": { "benchmark": "^2.1.4", - "lerna": "^2.10.2", - "nyc": "^11.6.0", - "tslint": "^5.9.1", - "typescript": "^2.8.1", - "ts-loader": "^4.2.0", - "webpack": "^4.6.0", - "webpack-cli": "^2.0.14", - "webpack-dev-server": "^3.1.3" + "lerna": "^2.11.0", + "mocha": "^5.1.1", + "nyc": "^11.7.2", + "ts-loader": "^4.3.0", + "tslint": "^5.10.0", + "typescript": "^2.8.3", + "webpack": "^4.8.1", + "webpack-cli": "^2.1.3", + "webpack-dev-server": "^3.1.4" }, "scripts": { - "build": "yarn install && lerna bootstrap && lerna run build --sort", + "build": "yarn install && lerna -v && lerna bootstrap && lerna run build --sort", "cover": "lerna run cover", "depgraph": "scripts/depgraph && git add assets/deps.png && git commit -m 'docs: update dep graph' && git push", "doc": "lerna run doc", @@ -23,4 +24,4 @@ "pub": "lerna publish && yarn depgraph && yarn doc && scripts/upload-docs", "test": "yarn build && lerna run test" } -} \ No newline at end of file +} diff --git a/packages/api/CHANGELOG.md b/packages/api/CHANGELOG.md index fc2958d2e2..59c27e72e1 100644 --- a/packages/api/CHANGELOG.md +++ b/packages/api/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [2.3.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/api@2.3.1...@thi.ng/api@2.3.2) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/api + ## [2.3.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/api@2.3.0...@thi.ng/api@2.3.1) (2018-04-29) diff --git a/packages/api/package.json b/packages/api/package.json index 8e3961f500..47e0012746 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/api", - "version": "2.3.1", + "version": "2.3.2", "description": "Common, generic types & interfaces for thi.ng projects", "main": "./index.js", "typings": "./index.d.ts", @@ -16,15 +16,15 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/checks": "^1.5.1" + "@thi.ng/checks": "^1.5.2" }, "keywords": [ "compare", diff --git a/packages/associative/CHANGELOG.md b/packages/associative/CHANGELOG.md index 1972097b6f..1dc46306a5 100644 --- a/packages/associative/CHANGELOG.md +++ b/packages/associative/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [0.5.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/associative@0.4.6...@thi.ng/associative@0.5.0) (2018-05-09) + + +### Features + +* **associative:** add mapKeysObj() / mapKeysMap() ([a9574a0](https://github.com/thi-ng/umbrella/commit/a9574a0)) +* **associative:** add new functions, update arg & return types ([5991be6](https://github.com/thi-ng/umbrella/commit/5991be6)) + + + + ## [0.4.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/associative@0.4.5...@thi.ng/associative@0.4.6) (2018-04-29) diff --git a/packages/associative/package.json b/packages/associative/package.json index 7f25322332..ee0e738f0f 100644 --- a/packages/associative/package.json +++ b/packages/associative/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/associative", - "version": "0.4.6", + "version": "0.5.0", "description": "Alternative Set & Map data type implementations with customizable equality semantics & supporting operations", "main": "./index.js", "typings": "./index.d.ts", @@ -16,17 +16,17 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.1", - "@thi.ng/dcons": "^0.3.3", - "@thi.ng/iterators": "^4.1.9" + "@thi.ng/api": "^2.3.2", + "@thi.ng/dcons": "^0.3.4", + "@thi.ng/iterators": "^4.1.10" }, "keywords": [ "data structures", diff --git a/packages/associative/src/common-keys.ts b/packages/associative/src/common-keys.ts new file mode 100644 index 0000000000..513736f4d1 --- /dev/null +++ b/packages/associative/src/common-keys.ts @@ -0,0 +1,39 @@ +import { IObjectOf } from "@thi.ng/api/api"; + +/** + * Like `commonKeysObj()`, but for ES6 Maps. + * + * @param a + * @param b + */ +export function commonKeysMap(a: Map, b: Map) { + const res: K[] = []; + for (let k of a.keys()) { + if (b.has(k)) { + res.push(k); + } + } + return res; +} + +/** + * Returns array of keys present in both args, i.e. the set intersection + * of the given objects' key / property sets. + * + * ``` + * commonKeys({ a: 1, b: 2 }, { c: 10, b: 20, a: 30 }) + * // [ "a", "b" ] + * ``` + * + * @param a + * @param b + */ +export function commonKeysObj(a: IObjectOf, b: IObjectOf) { + const res: string[] = []; + for (let k in a) { + if (b.hasOwnProperty(k)) { + res.push(k); + } + } + return res; +} diff --git a/packages/associative/src/index.ts b/packages/associative/src/index.ts index 50d4f77140..9d0da2837f 100644 --- a/packages/associative/src/index.ts +++ b/packages/associative/src/index.ts @@ -1,16 +1,18 @@ export * from "./array-set"; -export * from "./equiv-map"; -export * from "./ll-set"; -export * from "./sorted-map"; -export * from "./sorted-set"; - +export * from "./common-keys"; export * from "./difference"; -export * from "./intersection"; -export * from "./union"; - +export * from "./equiv-map"; export * from "./indexed"; +export * from "./intersection"; export * from "./invert"; export * from "./join"; +export * from "./ll-set"; +export * from "./merge-apply"; +export * from "./merge-deep"; +export * from "./merge-with"; export * from "./merge"; export * from "./rename-keys"; export * from "./select-keys"; +export * from "./sorted-map"; +export * from "./sorted-set"; +export * from "./union"; diff --git a/packages/associative/src/indexed.ts b/packages/associative/src/indexed.ts index 0151ceab21..f54b920e45 100644 --- a/packages/associative/src/indexed.ts +++ b/packages/associative/src/indexed.ts @@ -3,9 +3,9 @@ import { selectKeysObj } from "./select-keys"; import { empty } from "./utils"; /** - * Takes a set of objects and array of indexing keys. Calls - * `selectKeysObj` on each set value and used returned objects as new - * keys to group original values. Returns a map of sets. + * Takes an iterable of plain objects and array of indexing keys. Calls + * `selectKeysObj` on each value and uses returned objects as new keys + * to group original values. Returns a new `EquivMap` of sets. * * ``` * indexed( @@ -17,19 +17,17 @@ import { empty } from "./utils"; * // { a: 1, b: 2 } => Set { { a: 1, b: 2 } } } * ``` * - * @param records set of objects to index + * @param records objects to index * @param ks keys used for indexing */ -export function indexed(records: Set, ks: PropertyKey[]) { +export function indexed(records: Iterable, ks: PropertyKey[]) { const res = new EquivMap>(); - let m, ik, rv; - for (m of records) { - ik = selectKeysObj(m, ks); + let x, ik, rv; + for (x of records) { + ik = selectKeysObj(x, ks); rv = res.get(ik); - if (!rv) { - res.set(ik, rv = empty(records, Set)); - } - rv.add(m); + !rv && res.set(ik, rv = empty(records, Set)); + rv.add(x); } return res; } diff --git a/packages/associative/src/join.ts b/packages/associative/src/join.ts index 54c4287cd2..4f81f7ef0b 100644 --- a/packages/associative/src/join.ts +++ b/packages/associative/src/join.ts @@ -1,7 +1,7 @@ import { IObjectOf } from "@thi.ng/api/api"; +import { commonKeysObj } from "./common-keys"; import { indexed } from "./indexed"; -import { intersection } from "./intersection"; import { invertObj } from "./invert"; import { mergeObj } from "./merge"; import { renameKeysObj } from "./rename-keys"; @@ -13,6 +13,7 @@ import { empty, first, objValues } from "./utils"; * is assumed to have plain objects as values with at least one of the * keys present in both sides. Furthermore the objects in each set are * assumed to have the same internal structure (i.e. sets of keys). + * Returns new set of same type as `xrel`. * * ``` * join( @@ -33,23 +34,20 @@ import { empty, first, objValues } from "./utils"; * @param xrel * @param yrel */ -export function join(xrel: Set, yrel: Set) { +export function join(xrel: Set>, yrel: Set>): Set> { if (xrel.size && yrel.size) { - const ks = [...intersection( - new Set(Object.keys(first(xrel) || {})), - new Set(Object.keys(first(yrel) || {}))) - ]; - let r, s; + const ks = commonKeysObj(first(xrel) || {}, first(yrel) || {}); + let a: Set, b: Set; if (xrel.size <= yrel.size) { - r = xrel; - s = yrel; + a = xrel; + b = yrel; } else { - r = yrel; - s = xrel; + a = yrel; + b = xrel; } - const idx = indexed(r, ks); - const res = empty(xrel, Set); - for (let x of s) { + const idx = indexed(a, ks); + const res: Set = empty(xrel, Set); + for (let x of b) { const found = idx.get(selectKeysObj(x, ks)); if (found) { for (let f of found) { @@ -64,8 +62,11 @@ export function join(xrel: Set, yrel: Set) { /** * Similar to `join()`, computes the join between two sets of relations, - * using the given keys in `kmap` only. `kmap` can also be used to - * rename join keys in `yrel` where needed, e.g. + * using the given keys in `kmap` only for joining and ignoring others. + * `kmap` can also be used to translate join keys in `yrel` where + * needed. Else, if no renaming is desired, the values in `kmap` should + * be the same as their respective keys, e.g. `{id: "id"}`. Returns new + * set of same type as `xrel`. * * ``` * joinWith( @@ -78,15 +79,16 @@ export function join(xrel: Set, yrel: Set) { * {type: 2, color: "blue"}]), * {id: "type"} * ) + * // Set { + * // { type: 1, color: 'red', id: 1, name: 'foo' }, + * // { type: 2, color: 'blue', id: 2, name: 'bar' } } * ``` - * If no renaming is desired, the values in `kmap` should be the same as - * their respective keys. * * @param xrel * @param yrel * @param kmap keys to compute join for */ -export function joinWith(xrel: Set, yrel: Set, kmap: IObjectOf) { +export function joinWith(xrel: Set, yrel: Set, kmap: IObjectOf): Set { if (xrel.size && yrel.size) { let r: Set, s: Set; let k: IObjectOf; @@ -101,7 +103,7 @@ export function joinWith(xrel: Set, yrel: Set, kmap: IObjectOf = empty(xrel, Set); for (let x of s) { const found = idx.get(renameKeysObj(selectKeysObj(x, ks), k)); if (found) { diff --git a/packages/associative/src/merge-apply.ts b/packages/associative/src/merge-apply.ts new file mode 100644 index 0000000000..5d52106b13 --- /dev/null +++ b/packages/associative/src/merge-apply.ts @@ -0,0 +1,44 @@ +import { IObjectOf } from "@thi.ng/api/api"; +import { isFunction } from "@thi.ng/checks/is-function"; + +import { copy } from "./utils"; + +/** + * Similar to `mergeApplyObj()`, but for ES6 Maps instead of plain objects. + * + * @param src + * @param xs + */ +export function mergeApplyMap(src: Map, xs: Map V)>) { + const res: any = copy(src, Map); + for (let p of xs) { + let [k, v] = p; + isFunction(v) && (v = v(res[k])); + res.set(k, v); + } + return res; +} + +/** + * Similar to `mergeObj()`, but only supports 2 args and any function + * values in `xs` will be called with respective value in `src` to + * produce a new / derived value for that key. Returns new merged object + * and does not modify any of the inputs. + * + * ``` + * mapKeysObj({a: "hello", b: 23}, {a: (x) => x + " world", b: 42}); + * // { a: 'hello world', b: 42 } + * ``` + * + * @param src + * @param xs + */ +export function mergeApplyObj(src: IObjectOf, xs: IObjectOf V)>) { + const res: any = { ...src }; + for (let k in xs) { + let v = xs[k]; + isFunction(v) && (v = v(res[k])); + res[k] = v; + } + return res; +} diff --git a/packages/associative/src/merge-deep.ts b/packages/associative/src/merge-deep.ts new file mode 100644 index 0000000000..b05eef217d --- /dev/null +++ b/packages/associative/src/merge-deep.ts @@ -0,0 +1,10 @@ +import { IObjectOf } from "@thi.ng/api/api"; +import { isPlainObject } from "@thi.ng/checks/is-plain-object"; + +import { mergeObjWith } from "./merge-with"; + +export function mergeDeepObj(dest: IObjectOf, ...xs: IObjectOf[]) { + return mergeObjWith( + (a, b) => isPlainObject(a) && isPlainObject(b) ? mergeDeepObj(a, b) : b, + dest, ...xs); +} diff --git a/packages/associative/src/merge-with.ts b/packages/associative/src/merge-with.ts new file mode 100644 index 0000000000..364cc28240 --- /dev/null +++ b/packages/associative/src/merge-with.ts @@ -0,0 +1,32 @@ +import { IObjectOf } from "@thi.ng/api/api"; + +import { copy } from "./utils"; + +export function mergeMapWith(f: (a: V, b: V) => V, dest: Map, ...xs: Map[]) { + const res: Map = copy(dest, Map); + for (let x of xs) { + for (let [k, v] of x) { + if (res.has(k)) { + res.set(k, f(res.get(k), v)); + } else { + res.set(k, v); + } + } + } + return res; +} + +export function mergeObjWith(f: (a: T, b: T) => T, dest: IObjectOf, ...xs: IObjectOf[]) { + const res: IObjectOf = { ...dest }; + for (let x of xs) { + for (let k in x) { + const v = x[k]; + if (res.hasOwnProperty(k)) { + res[k] = f(dest[k], v); + } else { + res[k] = v; + } + } + } + return res; +} diff --git a/packages/associative/src/merge.ts b/packages/associative/src/merge.ts index b19dedf226..2da2a81a37 100644 --- a/packages/associative/src/merge.ts +++ b/packages/associative/src/merge.ts @@ -1,26 +1,28 @@ +import { IObjectOf } from "@thi.ng/api/api"; + /** - * Merges all given maps in left-to-right order into `m`. - * Returns `m`. + * Merges all given maps in left-to-right order into `dest`. + * Returns `dest`. * - * @param m - * @param maps + * @param dest + * @param xs */ -export function mergeMaps(m: Map, ...maps: Map[]) { - for (let mm of maps) { - for (let p of mm) { - m.set(p[0], p[1]); +export function mergeMap(dest: Map, ...xs: Map[]) { + for (let x of xs) { + for (let pair of x) { + dest.set(pair[0], pair[1]); } } - return m; + return dest; } /** - * Merges all given objects in left-to-right order into `m`. - * Returns `m`. + * Merges all given objects in left-to-right order into `dest`. + * Returns `dest`. * - * @param m - * @param maps + * @param dest + * @param xs */ -export function mergeObj(m, ...maps: any[]) { - return Object.assign(m, ...maps); +export function mergeObj(dest: IObjectOf, ...xs: IObjectOf[]): IObjectOf { + return Object.assign(dest, ...xs); } diff --git a/packages/associative/src/rename-keys.ts b/packages/associative/src/rename-keys.ts index 18379e99c3..860186ce1a 100644 --- a/packages/associative/src/rename-keys.ts +++ b/packages/associative/src/rename-keys.ts @@ -2,21 +2,38 @@ import { IObjectOf } from "@thi.ng/api/api"; import { empty } from "./utils"; -export function renameKeysMap(src: Map, km: IObjectOf): Map { - const dest = empty(src, Map); - for (let p of src) { - const k = p[0]; - const kk = km[k]; - dest.set(kk !== undefined ? kk : k, p[1]); +/** + * Renames keys in `src` using mapping provided by key map `km`. Does + * support key swapping / swizzling. Does not modify original. + * + * @param src + * @param km + */ +export function renameKeysMap(src: Map, km: Map) { + const dest: Map = empty(src, Map); + for (let [k, v] of src) { + dest.set(km.has(k) ? km.get(k) : k, v); } return dest; } -export function renameKeysObj(src: any, km: IObjectOf) { +/** + * Renames keys in `src` using mapping provided by key map `km`. Does + * support key swapping / swizzling. Does not modify original. + * + * ``` + * // swap a & b, rename c + * renameKeysObj({a: 1, b: 2, c: 3}, {a: "b", b: "a", c: "cc"}) + * // {b: 1, a: 2, cc: 3} + * ``` + * + * @param src + * @param km + */ +export function renameKeysObj(src: IObjectOf, km: IObjectOf) { const dest = {}; for (let k in src) { - const kk = km[k]; - dest[kk != null ? kk : k] = src[k]; + dest[km.hasOwnProperty(k) ? km[k] : k] = src[k]; } return dest; } diff --git a/packages/atom/CHANGELOG.md b/packages/atom/CHANGELOG.md index 8130bd9728..1f5207371e 100644 --- a/packages/atom/CHANGELOG.md +++ b/packages/atom/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [1.3.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/atom@1.3.6...@thi.ng/atom@1.3.7) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/atom + ## [1.3.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/atom@1.3.5...@thi.ng/atom@1.3.6) (2018-04-29) diff --git a/packages/atom/package.json b/packages/atom/package.json index 166ce89a2c..4acdd73373 100644 --- a/packages/atom/package.json +++ b/packages/atom/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/atom", - "version": "1.3.6", + "version": "1.3.7", "description": "Mutable wrapper for immutable values", "main": "./index.js", "typings": "./index.d.ts", @@ -16,16 +16,16 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.1", - "@thi.ng/paths": "^1.3.3" + "@thi.ng/api": "^2.3.2", + "@thi.ng/paths": "^1.3.4" }, "keywords": [ "cursor", diff --git a/packages/bitstream/CHANGELOG.md b/packages/bitstream/CHANGELOG.md index 5f2dd3beb5..e24bfa474e 100644 --- a/packages/bitstream/CHANGELOG.md +++ b/packages/bitstream/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [0.4.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitstream@0.4.7...@thi.ng/bitstream@0.4.8) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/bitstream + ## [0.4.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/bitstream@0.4.6...@thi.ng/bitstream@0.4.7) (2018-04-29) diff --git a/packages/bitstream/package.json b/packages/bitstream/package.json index e4e7b80b23..b07c94a1ef 100644 --- a/packages/bitstream/package.json +++ b/packages/bitstream/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/bitstream", - "version": "0.4.7", + "version": "0.4.8", "description": "ES6 iterator based read/write bit streams & support for variable word widths", "main": "./index.js", "typings": "./index.d.ts", @@ -16,15 +16,15 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "dependencies": { - "@thi.ng/api": "^2.3.1" + "@thi.ng/api": "^2.3.2" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "keywords": [ "binary", diff --git a/packages/cache/CHANGELOG.md b/packages/cache/CHANGELOG.md index 5b83bd1405..35b5647504 100644 --- a/packages/cache/CHANGELOG.md +++ b/packages/cache/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [0.2.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/cache@0.2.4...@thi.ng/cache@0.2.5) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/cache + ## [0.2.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/cache@0.2.3...@thi.ng/cache@0.2.4) (2018-04-29) diff --git a/packages/cache/package.json b/packages/cache/package.json index ed32b53559..e41a4a7ce5 100644 --- a/packages/cache/package.json +++ b/packages/cache/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/cache", - "version": "0.2.4", + "version": "0.2.5", "description": "In-memory cache implementations with ES6 Map-like API and different eviction strategies", "main": "./index.js", "typings": "./index.d.ts", @@ -16,17 +16,17 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.1", - "@thi.ng/dcons": "^0.3.3", - "@thi.ng/iterators": "^4.1.9" + "@thi.ng/api": "^2.3.2", + "@thi.ng/dcons": "^0.3.4", + "@thi.ng/iterators": "^4.1.10" }, "keywords": [ "cache", diff --git a/packages/checks/CHANGELOG.md b/packages/checks/CHANGELOG.md index 505c5eef0f..87b85f5a3e 100644 --- a/packages/checks/CHANGELOG.md +++ b/packages/checks/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [1.5.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/checks@1.5.1...@thi.ng/checks@1.5.2) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/checks + ## [1.5.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/checks@1.5.0...@thi.ng/checks@1.5.1) (2018-04-29) diff --git a/packages/checks/package.json b/packages/checks/package.json index c1de4c39b3..4e87243851 100644 --- a/packages/checks/package.json +++ b/packages/checks/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/checks", - "version": "1.5.1", + "version": "1.5.2", "description": "Single-function sub-modules for type, feature & value checks", "main": "./index.js", "typings": "./index.d.ts", @@ -16,12 +16,12 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "keywords": [ "check", diff --git a/packages/csp/CHANGELOG.md b/packages/csp/CHANGELOG.md index 75ba56a087..b9a541044c 100644 --- a/packages/csp/CHANGELOG.md +++ b/packages/csp/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [0.3.33](https://github.com/thi-ng/umbrella/compare/@thi.ng/csp@0.3.32...@thi.ng/csp@0.3.33) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/csp + ## [0.3.32](https://github.com/thi-ng/umbrella/compare/@thi.ng/csp@0.3.31...@thi.ng/csp@0.3.32) (2018-04-29) diff --git a/packages/csp/package.json b/packages/csp/package.json index a7b6c72d30..7769014f12 100644 --- a/packages/csp/package.json +++ b/packages/csp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/csp", - "version": "0.3.32", + "version": "0.3.33", "description": "ES6 promise based CSP implementation", "main": "./index.js", "typings": "./index.d.ts", @@ -20,16 +20,16 @@ "testnode": "tsc -p test && node build/test/node.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/dcons": "^0.3.3", - "@thi.ng/transducers": "^1.8.4" + "@thi.ng/dcons": "^0.3.4", + "@thi.ng/transducers": "^1.8.5" }, "keywords": [ "async", diff --git a/packages/dcons/CHANGELOG.md b/packages/dcons/CHANGELOG.md index ea2e37d2e7..b9ab4243cc 100644 --- a/packages/dcons/CHANGELOG.md +++ b/packages/dcons/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [0.3.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/dcons@0.3.3...@thi.ng/dcons@0.3.4) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/dcons + ## [0.3.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/dcons@0.3.2...@thi.ng/dcons@0.3.3) (2018-04-29) diff --git a/packages/dcons/package.json b/packages/dcons/package.json index 842777fc58..e78533da9d 100644 --- a/packages/dcons/package.json +++ b/packages/dcons/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dcons", - "version": "0.3.3", + "version": "0.3.4", "description": "Comprehensive doubly linked list structure w/ iterator support", "main": "./index.js", "typings": "./index.d.ts", @@ -16,15 +16,15 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.1" + "@thi.ng/api": "^2.3.2" }, "keywords": [ "datastructure", diff --git a/packages/dgraph/CHANGELOG.md b/packages/dgraph/CHANGELOG.md index dfdfd61b84..ff7d29e862 100644 --- a/packages/dgraph/CHANGELOG.md +++ b/packages/dgraph/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [0.1.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph@0.1.9...@thi.ng/dgraph@0.1.10) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/dgraph + ## [0.1.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/dgraph@0.1.8...@thi.ng/dgraph@0.1.9) (2018-04-29) diff --git a/packages/dgraph/package.json b/packages/dgraph/package.json index 044da28f32..745b4cffab 100644 --- a/packages/dgraph/package.json +++ b/packages/dgraph/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/dgraph", - "version": "0.1.9", + "version": "0.1.10", "description": "Type-agnostic directed acyclic graph (DAG) & graph operations", "main": "./index.js", "typings": "./index.d.ts", @@ -16,17 +16,17 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.1", - "@thi.ng/associative": "^0.4.6", - "@thi.ng/iterators": "^4.1.9" + "@thi.ng/api": "^2.3.2", + "@thi.ng/associative": "^0.5.0", + "@thi.ng/iterators": "^4.1.10" }, "keywords": [ "data structure", diff --git a/packages/diff/CHANGELOG.md b/packages/diff/CHANGELOG.md index 86a4ea2510..154e75e4a5 100644 --- a/packages/diff/CHANGELOG.md +++ b/packages/diff/CHANGELOG.md @@ -3,6 +3,25 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [1.0.11](https://github.com/thi-ng/umbrella/compare/@thi.ng/diff@1.0.10...@thi.ng/diff@1.0.11) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/diff + + +## [1.0.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/diff@1.0.9...@thi.ng/diff@1.0.10) (2018-04-30) + + +### Performance Improvements + +* **diff:** add option to only build linear edit log ([431527a](https://github.com/thi-ng/umbrella/commit/431527a)) + + + + ## [1.0.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/diff@1.0.8...@thi.ng/diff@1.0.9) (2018-04-29) diff --git a/packages/diff/package.json b/packages/diff/package.json index ce7ac613f7..68810d34c2 100644 --- a/packages/diff/package.json +++ b/packages/diff/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/diff", - "version": "1.0.9", + "version": "1.0.11", "description": "Array & object Diff", "main": "./index.js", "typings": "./index.d.ts", @@ -15,14 +15,14 @@ "test": "rm -rf build && tsc -p test && mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.1" + "@thi.ng/api": "^2.3.2" }, "keywords": [ "array", diff --git a/packages/diff/src/array.ts b/packages/diff/src/array.ts index 7b907edf7d..bcd4c29a2c 100644 --- a/packages/diff/src/array.ts +++ b/packages/diff/src/array.ts @@ -12,7 +12,7 @@ import { ArrayDiff } from "./api"; * Various optimizations, fixes & refactorings. * By default uses `@thi.ng/api/equiv` for equality checks. */ -export function diffArray(_a: T[], _b: T[], equiv = _equiv) { +export function diffArray(_a: T[], _b: T[], equiv = _equiv, linearOnly = false) { const state = >{ distance: 0, adds: {}, @@ -24,11 +24,6 @@ export function diffArray(_a: T[], _b: T[], equiv = _equiv) { return state; } const reverse = _a.length >= _b.length; - const adds = state[reverse ? "dels" : "adds"]; - const dels = state[reverse ? "adds" : "dels"]; - const linear = state.linear; - const aID = reverse ? -1 : 1; - const dID = reverse ? 1 : -1; let a, b, na, nb; if (reverse) { @@ -89,20 +84,44 @@ export function diffArray(_a: T[], _b: T[], equiv = _equiv) { r = pp[2]; } - for (let i = epc.length - 1, px = 0, py = 0; i >= 0; i--) { + if (linearOnly) { + buildLinearLog(epc, state, a, b, reverse); + } else { + buildFullLog(epc, state, a, b, reverse); + } + return state; +} + +function buildFullLog(epc: any[], state: ArrayDiff, a: any, b: any, reverse: boolean) { + const linear = state.linear; + let adds, dels, aID, dID; + if (reverse) { + adds = state.dels; + dels = state.adds; + aID = -1; + dID = 1; + } else { + adds = state.adds; + dels = state.dels; + aID = 1; + dID = -1; + } + for (let i = epc.length, px = 0, py = 0; --i >= 0;) { const e = epc[i]; let v; while (px < e[0] || py < e[1]) { - const d = e[1] - e[0]; - if (d > py - px) { + const d = e[1] - e[0], dp = py - px; + if (d > dp) { adds[py] = v = b[py]; linear.push([aID, py, v]); py++; - } else if (d < py - px) { + } + else if (d < dp) { dels[px] = v = a[px]; linear.push([dID, px, v]); px++; - } else { + } + else { state.const[px] = v = a[px]; linear.push([0, px, v]); px++; @@ -110,5 +129,29 @@ export function diffArray(_a: T[], _b: T[], equiv = _equiv) { } } } - return state; +} + +function buildLinearLog(epc: any[], state: ArrayDiff, a: any, b: any, reverse: boolean) { + const linear = state.linear; + const aID = reverse ? -1 : 1; + const dID = reverse ? 1 : -1; + for (let i = epc.length, px = 0, py = 0; --i >= 0;) { + const e = epc[i]; + while (px < e[0] || py < e[1]) { + const d = e[1] - e[0], dp = py - px; + if (d > dp) { + linear.push([aID, py, b[py]]); + py++; + } + else if (d < dp) { + linear.push([dID, px, a[px]]); + px++; + } + else { + linear.push([0, px, a[px]]); + px++; + py++; + } + } + } } diff --git a/packages/dot/.npmignore b/packages/dot/.npmignore new file mode 100644 index 0000000000..d703bda97a --- /dev/null +++ b/packages/dot/.npmignore @@ -0,0 +1,10 @@ +build +coverage +dev +doc +src* +test +.nyc_output +tsconfig.json +*.tgz +*.html diff --git a/packages/dot/CHANGELOG.md b/packages/dot/CHANGELOG.md new file mode 100644 index 0000000000..1c8bb9e7b9 --- /dev/null +++ b/packages/dot/CHANGELOG.md @@ -0,0 +1,12 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + + +# 0.1.0 (2018-05-09) + + +### Features + +* **dot:** initial import [@thi](https://github.com/thi).ng/dot ([500dfa3](https://github.com/thi-ng/umbrella/commit/500dfa3)) diff --git a/packages/dot/LICENSE b/packages/dot/LICENSE new file mode 100644 index 0000000000..8dada3edaf --- /dev/null +++ b/packages/dot/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + 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. diff --git a/packages/dot/README.md b/packages/dot/README.md new file mode 100644 index 0000000000..e1048b20de --- /dev/null +++ b/packages/dot/README.md @@ -0,0 +1,123 @@ +# @thi.ng/dot + +[![npm (scoped)](https://img.shields.io/npm/v/@thi.ng/dot.svg)](https://www.npmjs.com/package/@thi.ng/dot) + +This project is part of the +[@thi.ng/umbrella](https://github.com/thi-ng/umbrella/) monorepo. + +## About + +[Graphviz](http://www.graphviz.org/) DOM abstraction as vanilla JS +objects & serialization to DOT format. Provides several +[interfaces](https://github.com/thi-ng/umbrella/tree/master/packages/dot/src/api.ts) +covering a large subset of GraphViz options and +[functions](https://github.com/thi-ng/umbrella/tree/master/packages/dot/src/serialize.ts) +to serialize whole graphs (incl. subgraphs), nodes or edges. Supports +both directed and undirected graphs. + +Please see the [GraphViz DOT +guide](https://graphviz.gitlab.io/_pages/pdf/dotguide.pdf) for further +details. + +## Installation + +``` +yarn add @thi.ng/dot +``` + +## Usage examples + +![example graph](../../assets/dot-example.png) + +The source code of this example is also available in +[/test/example.ts](https://github.com/thi-ng/umbrella/tree/master/packages/dot/test/example.ts). + +```typescript +import * as dot from "@thi.ng/dot"; + +// node type style presets +const terminal = { + color: "black", + fontcolor: "white", +}; + +// operator nodes use "Mrecord" shape +// with input and output port declarations +const operator = { + fillcolor: "yellow", + shape: "Mrecord", + ins: { 0: "a", 1: "b" }, + outs: { "out": "out" } +}; + +dot.serializeGraph({ + directed: true, // default + // graph attributes + attribs: { + rankdir: "LR", + fontname: "Inconsolata", + fontsize: 9, + fontcolor: "gray", + label: "Generated with @thi.ng/dot", + labeljust: "l", + labelloc: "b", + // node defaults + node: { + style: "filled", + fontname: "Inconsolata", + fontsize: 11 + }, + // edge defaults + edge: { + arrowsize: 0.75, + fontname: "Inconsolata", + fontsize: 9 + } + }, + // graph nodes (the keys are used as node IDs) + // use spread operator to inject style presets + nodes: { + x: { ...terminal, label: "x (12)" }, + y: { ...terminal, label: "y (23)" }, + res: { ...terminal, label: "result (8050)", peripheries: 2 }, + op1: { ...operator, fillcolor: "green", label: "op1\n(+)" }, + op2: { ...operator, label: "op2\n(*)" }, + }, + // graph edges (w/ optional ports & extra attribs) + edges: [ + { src: "x", dest: "op1", destPort: 1 }, + { src: "y", dest: "op1", destPort: 0 }, + { src: "y", dest: "op2", destPort: 0, label: "xform", color: "blue" }, + { src: "op1", srcPort: "out", dest: "op2", destPort: 1 }, + { src: "op2", srcPort: "out", dest: "res"}, + ] +}); +``` + +Resulting output: + +```dot +digraph g { +rankdir="LR"; +node[style="filled", fontname="Inconsolata", fontsize="11"]; +edge[arrowsize="0.75", fontname="Inconsolata", fontsize="9"]; +"x"[color="black", fontcolor="white", label="x (12)"]; +"y"[color="black", fontcolor="white", label="y (23)"]; +"op1"[fillcolor="yellow", shape=Mrecord, label="{ <0> a | <1> b } | op1\n(+) | { out }"]; +"op2"[fillcolor="yellow", shape=Mrecord, label="{ <0> a | <1> b } | op2\n(*) | { out }"]; +"res"[color="black", fontcolor="white", label="res (805)", peripheries="2"]; +"x" -> "op1":"1"; +"y" -> "op1":"0"; +"op1":"out" -> "op2":"1"; +"y" -> "op2":"0"[label="xform", color="blue"]; +"op2":"out" -> "res"; +} +``` + +## Authors + +- Karsten Schmidt + +## License + +© 2018 Karsten Schmidt // Apache Software License 2.0 diff --git a/packages/dot/package.json b/packages/dot/package.json new file mode 100644 index 0000000000..54c13debb7 --- /dev/null +++ b/packages/dot/package.json @@ -0,0 +1,37 @@ +{ + "name": "@thi.ng/dot", + "version": "0.1.0", + "description": "TODO", + "main": "./index.js", + "typings": "./index.d.ts", + "repository": "https://github.com/thi-ng/umbrella", + "author": "Karsten Schmidt ", + "license": "Apache-2.0", + "scripts": { + "build": "yarn run clean && tsc --declaration", + "clean": "rm -rf *.js *.d.ts .nyc_output build coverage doc", + "cover": "yarn test && nyc report --reporter=lcov", + "doc": "node_modules/.bin/typedoc --mode modules --out doc src", + "pub": "yarn run build && yarn publish --access public", + "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" + }, + "devDependencies": { + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", + "typedoc": "^0.11.1", + "typescript": "^2.8.3" + }, + "dependencies": { + "@thi.ng/api": "^2.3.2", + "@thi.ng/checks": "^1.5.2" + }, + "keywords": [ + "ES6", + "typescript" + ], + "publishConfig": { + "access": "public" + } +} diff --git a/packages/dot/src/api.ts b/packages/dot/src/api.ts new file mode 100644 index 0000000000..3efffb6b0f --- /dev/null +++ b/packages/dot/src/api.ts @@ -0,0 +1,108 @@ +import { IObjectOf } from "@thi.ng/api/api"; + +export type NodeShape = + "box" | + "circle" | + "diamond" | + "doublecircle" | + "doubleoctagon" | + "egg" | + "ellipse" | + "hexagon" | + "house" | + "invhouse" | + "invtrapezium" | + "invtriangle" | + "Mcircle" | + "Mdiamond" | + "Mrecord" | + "Msquare" | + "none" | + "octagon" | + "parallelogram" | + "plaintext" | + "point" | + "polygon" | + "record" | + "trapezium" | + "triangle" | + "triple_octagon"; + +export type Color = string | number[]; + +export interface GraphAttribs { + bgcolor: Color; + clusterrank: "global" | "local" | "none"; + color: Color; + compound: boolean; + concentrate: boolean; + dpi: number; + edge: Partial; + fillcolor: Color; + fontcolor: Color; + fontname: string; + fontsize: number; + label: string; + labeljust: "l" | "r" | "c"; + labelloc: "t" | "b"; + landscape: boolean; + margin: number; + node: Partial; + nodesep: number; + orientation: "portrait" | "landscape"; + rank: "same" | "min" | "max" | "source" | "sink"; + rankdir: "LR" | "TB"; + ranksep: number; + ratio: string; + [id: string]: any; +} + +export interface Graph { + attribs?: Partial; + directed?: boolean; + edges: Edge[]; + id?: string; + nodes: IObjectOf>; + sub?: IObjectOf; +} + +export interface NodeAttribs { + color: Color; + fillcolor: Color; + fontcolor: Color; + fontname: string; + fontsize: number; + penwidth: number; + peripheries: number; + shape: NodeShape; + sides: number; + skew: number; + style: string; + [id: string]: any; +} + +export interface Node extends NodeAttribs { + ins: IObjectOf; + outs: IObjectOf; + label: string; + tooltip: string; + target: string; + url: string; +} + +export interface EdgeAttribs { + color: Color; + fontcolor: Color; + fontname: string; + fontsize: number; + label: string; + style: string; + [id: string]: any; +} + +export interface Edge extends Partial { + src: PropertyKey; + dest: PropertyKey; + srcPort?: PropertyKey; + destPort?: PropertyKey; +} diff --git a/packages/dot/src/index.ts b/packages/dot/src/index.ts new file mode 100644 index 0000000000..d7db747c94 --- /dev/null +++ b/packages/dot/src/index.ts @@ -0,0 +1,2 @@ +export * from "./api"; +export * from "./serialize"; diff --git a/packages/dot/src/serialize.ts b/packages/dot/src/serialize.ts new file mode 100644 index 0000000000..48495c7804 --- /dev/null +++ b/packages/dot/src/serialize.ts @@ -0,0 +1,127 @@ +import { IObjectOf } from "@thi.ng/api/api"; +import { isArray } from "@thi.ng/checks/is-array"; + +import { + Edge, + Graph, + GraphAttribs, + Node +} from "./api"; + +const wrapQ = (x) => `"${x}"`; + +const escape = (x: any) => + String(x).replace(/\"/g, `\\"`) + .replace(/\n/g, "\\n"); + +const formatGraphAttribs = (attribs: Partial, acc: string[]) => { + for (let a in attribs) { + let v = attribs[a]; + switch (a) { + case "bgcolor": + case "color": + case "fillcolor": + case "fontcolor": + isArray(v) && (v = v.join(",")); + break; + case "edge": + acc.push(`edge[${formatAttribs(v)}];`); + continue; + case "node": + acc.push(`node[${formatAttribs(v)}];`); + continue; + default: + break; + } + acc.push(`${a}="${escape(v)}";`); + } + return acc; +}; + +const formatAttribs = (attribs: Partial) => { + const acc: string[] = []; + for (let a in attribs) { + let v = attribs[a]; + switch (a) { + case "color": + case "fillcolor": + case "fontcolor": + isArray(v) && (v = v.join(",")); + break; + case "label": + if ((attribs).ins || (attribs).outs) { + v = formatPortLabel(attribs, v); + } + break; + case "url": + a = "URL"; + break; + case "ins": + case "outs": + case "src": + case "dest": + case "srcPort": + case "destPort": + continue; + default: + } + acc.push(`${a}="${escape(v)}"`); + } + return acc.join(", "); +}; + +const formatPorts = (ports: IObjectOf) => { + const acc: string[] = []; + for (let i in ports) { + acc.push(`<${i}> ${escape(ports[i])}`); + } + return `{ ${acc.join(" | ")} }`; +}; + +const formatPortLabel = (node: Partial, label: string) => { + const acc: string[] = []; + node.ins && acc.push(formatPorts(node.ins)); + acc.push(escape(label)); + node.outs && acc.push(formatPorts(node.outs)); + return acc.join(" | "); +}; + +export const serializeNode = (id: string, n: Partial) => { + const attribs = formatAttribs(n); + return attribs.length ? + `"${id}"[${attribs}];` : + `"${id}";`; +} + +export const serializeEdge = (e: Edge, directed = true) => { + const acc: string[] = [wrapQ(e.src)]; + e.srcPort != null && acc.push(":", wrapQ(e.srcPort)); + acc.push(directed ? " -> " : " -- "); + acc.push(wrapQ(e.dest)); + e.destPort != null && acc.push(":", wrapQ(e.destPort)); + const attribs = formatAttribs(e); + attribs.length && acc.push("[", attribs, "]"); + acc.push(";"); + return acc.join(""); +}; + +export const serializeGraph = (graph: Graph, acc?: string[]) => { + const directed = graph.directed !== false; + acc || (acc = [`${directed ? "di" : ""}graph ${graph.id || "g"} {`]); + if (graph.attribs) { + formatGraphAttribs(graph.attribs, acc); + } + for (let id in graph.nodes) { + acc.push(serializeNode(id, graph.nodes[id])); + } + for (let e of graph.edges) { + acc.push(serializeEdge(e, directed)); + } + if (graph.sub) { + for (let id in graph.sub) { + acc.push(serializeGraph(graph.sub[id], [`subgraph ${id} {`])); + } + } + acc.push("}"); + return acc.join("\n"); +}; diff --git a/packages/dot/test/example.ts b/packages/dot/test/example.ts new file mode 100644 index 0000000000..8872e8b7f2 --- /dev/null +++ b/packages/dot/test/example.ts @@ -0,0 +1,63 @@ +import * as dot from "../src/"; +import * as fs from "fs"; + +// node type style presets +const terminal: Partial = { + color: "black", + fontcolor: "white", +}; + +// operator nodes use "Mrecord" shape +// with input and output port declarations +const operator: Partial = { + fillcolor: "yellow", + shape: "Mrecord", + ins: { 0: "a", 1: "b" }, + outs: { "out": "out" } +}; + +fs.writeFileSync( + "../../assets/dot-example.dot", + dot.serializeGraph({ + directed: true, // default + // graph attributes + attribs: { + rankdir: "LR", + fontname: "Inconsolata", + fontsize: 9, + fontcolor: "gray", + label: "Generated with @thi.ng/dot", + labeljust: "l", + labelloc: "b", + // node defaults + node: { + style: "filled", + fontname: "Inconsolata", + fontsize: 11 + }, + // edge defaults + edge: { + arrowsize: 0.75, + fontname: "Inconsolata", + fontsize: 9 + } + }, + // graph nodes (the keys are used as node IDs) + // use spread operator to inject style presets + nodes: { + x: { ...terminal, label: "x (12)" }, + y: { ...terminal, label: "y (23)" }, + res: { ...terminal, label: "res (8050)", peripheries: 2 }, + op1: { ...operator, fillcolor: "green", label: "op1\n(+)" }, + op2: { ...operator, label: "op2\n(*)" }, + }, + // graph edges (w/ optional ports & extra attribs) + edges: [ + { src: "x", dest: "op1", destPort: 1 }, + { src: "y", dest: "op1", destPort: 0 }, + { src: "y", dest: "op2", destPort: 0, label: "xform", color: "blue" }, + { src: "op1", srcPort: "out", dest: "op2", destPort: 1 }, + { src: "op2", srcPort: "out", dest: "res" }, + ] + }) +); \ No newline at end of file diff --git a/packages/dot/test/index.ts b/packages/dot/test/index.ts new file mode 100644 index 0000000000..18e688e19b --- /dev/null +++ b/packages/dot/test/index.ts @@ -0,0 +1,6 @@ +// import * as assert from "assert"; +// import * as dot from "../src/index"; + +describe("dot", () => { + it("tests pending"); +}); diff --git a/packages/dot/test/tsconfig.json b/packages/dot/test/tsconfig.json new file mode 100644 index 0000000000..bcf29ace54 --- /dev/null +++ b/packages/dot/test/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../../tsconfig.json", + "compilerOptions": { + "outDir": "../build" + }, + "include": [ + "./**/*.ts", + "../src/**/*.ts" + ] +} diff --git a/packages/dot/tsconfig.json b/packages/dot/tsconfig.json new file mode 100644 index 0000000000..bd6481a5a6 --- /dev/null +++ b/packages/dot/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "." + }, + "include": [ + "./src/**/*.ts" + ] +} diff --git a/packages/hdom-components/.adr-dir b/packages/hdom-components/.adr-dir new file mode 100644 index 0000000000..0a5ca20aeb --- /dev/null +++ b/packages/hdom-components/.adr-dir @@ -0,0 +1 @@ +adr diff --git a/packages/hdom-components/CHANGELOG.md b/packages/hdom-components/CHANGELOG.md index e50f71880e..e174aa9ff2 100644 --- a/packages/hdom-components/CHANGELOG.md +++ b/packages/hdom-components/CHANGELOG.md @@ -3,6 +3,21 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [2.1.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-components@2.0.3...@thi.ng/hdom-components@2.1.0) (2018-05-09) + + +### Features + +* **hdom-components:** add button component ([cef3c6a](https://github.com/thi-ng/umbrella/commit/cef3c6a)) +* **hdom-components:** add buttonGroup ([c0950d6](https://github.com/thi-ng/umbrella/commit/c0950d6)) +* **hdom-components:** add notification component ([a11803c](https://github.com/thi-ng/umbrella/commit/a11803c)) +* **hdom-components:** add pager component, add [@thi](https://github.com/thi).ng/iterators dep ([efb288d](https://github.com/thi-ng/umbrella/commit/efb288d)) +* **hdom-components:** add title component ([f9a2daf](https://github.com/thi-ng/umbrella/commit/f9a2daf)) + + + + ## [2.0.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom-components@2.0.2...@thi.ng/hdom-components@2.0.3) (2018-04-29) diff --git a/packages/hdom-components/README.md b/packages/hdom-components/README.md index afe296d986..672b0d6366 100644 --- a/packages/hdom-components/README.md +++ b/packages/hdom-components/README.md @@ -16,6 +16,11 @@ for use with & [@thi.ng/hiccup](https://github.com/thi-ng/umbrella/tree/master/packages/hiccup). +**Please see the +[ADR-0002](https://github.com/thi-ng/umbrella/tree/master/packages/hdom-components/adr/0002-component-configuration.md) +for detailed discussion about the design intentions of these +components**. Feedback welcome! + ## Status ALPHA @@ -34,11 +39,14 @@ import * as hdc from "@thi.ng/hdom-components"; ### Canvas -- [Canvas types](https://github.com/thi-ng/umbrella/tree/master/packages/hdom-components/src/canvas.ts) (WebGL & Canvas2D) +- [Canvas types](https://github.com/thi-ng/umbrella/tree/master/packages/hdom-components/src/canvas.ts) (WebGL, WebGL2 & Canvas2D) ### Form elements +- [Button](https://github.com/thi-ng/umbrella/tree/master/packages/hdom-components/src/button.ts) +- [Button group](https://github.com/thi-ng/umbrella/tree/master/packages/hdom-components/src/button-group.ts) - [Dropdown](https://github.com/thi-ng/umbrella/tree/master/packages/hdom-components/src/dropdown.ts) +- [Pager](https://github.com/thi-ng/umbrella/tree/master/packages/hdom-components/src/pager.ts) ### Links diff --git a/packages/hdom-components/adr/0001-record-architecture-decisions.md b/packages/hdom-components/adr/0001-record-architecture-decisions.md new file mode 100644 index 0000000000..1edd6aff19 --- /dev/null +++ b/packages/hdom-components/adr/0001-record-architecture-decisions.md @@ -0,0 +1,19 @@ +# 1. Record architecture decisions + +Date: 2018-05-04 + +## Status + +Accepted + +## Context + +We need to record the architectural decisions made on this project. + +## Decision + +We will use Architecture Decision Records, as described by Michael Nygard in this article: http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions + +## Consequences + +See Michael Nygard's article, linked above. For a lightweight ADR toolset, see Nat Pryce's _adr-tools_ at https://github.com/npryce/adr-tools. diff --git a/packages/hdom-components/adr/0002-component-configuration.md b/packages/hdom-components/adr/0002-component-configuration.md new file mode 100644 index 0000000000..5ca278fd86 --- /dev/null +++ b/packages/hdom-components/adr/0002-component-configuration.md @@ -0,0 +1,249 @@ +# 2. Component configuration + +- **Date:** 2018-05-04 +- **Revised:** 2018-05-07 + +## Status + +WIP + +## Context + +The components provided by this package SHOULD primarily be designed +with the following aims: + +### Stateless + +@thi.ng/hdom provides no guidance or opinion about how component state +should be handled. However, stateless components are generally more +reusable (same component function can be used multiple times) and easier +to test and reason about. + +### Composable + +The components provided by this package are often meant to be used as +building blocks for larger, more complex components. This often requires +extensive configuration points. + +### Configurable + +Components should be designed such that both their behavior and styling +can be configured as much as possible/feasible. At the same time, this +flexibility SHOULD NOT have too great an impact on user code. +Furthermore, the configuration process SHOULD be as uniform as possible +for all provided components. + +### Unstyled, but skinnable & themable + +The last point deals with the multi-step process and separation of: + +1) configuring a raw component using a specific set of behavioral & + aesthetic rules (usually via some form of CSS framework) and +2) application or instance specific theming as an additional + customization step + +Neither of these steps SHOULD be in direct scope of the +@thi.ng/hdom-components package, but the raw components themselves MUST +support these use cases for practical, real world usage. + +It also worth pointing out that skinning and theming MIGHT not always be +separate steps and will be specific to the CSS framework used at +runtime. + +## Decision + +Define all suitable components in a way which enables this uniform +workflow: + +### Raw component with configuration options + +Where required, components SHOULD be pre-configured via an higher order +function accepting a configuration object with component-specific +options. + +Whenever possible, the component SHOULD only require partial options and +merge them with its own defaults. Each option MUST be documented using +JSDoc comments. Likewise the HOF component function MUST be documented, +specifically to explain which runtime arguments are expected/accepted by +the returned function. + +#### Runtime argument handling + +If there are more than 2 runtime args and / or the majority of them is +optional, the returned component function SHOULD accept those args as +options object. + +If the component can take child elements as arguments, these SHOULD be +accepted as varargs and NOT as part of the options object. + +#### Example component + +The following example button component demonstates these approaches. +Btw. It's the actual implementation of the [hdom-components button +component](../src/button.ts). + +```ts +// button.ts +import { IObjectOf } from "@thi.ng/api/api"; + +export interface ButtonOpts { + /** + * Element name to use for enabled buttons. + * Default: "a" + */ + tag: string; + /** + * Element name to use for disabled buttons. + * Default: "span" + */ + tagDisabled: string; + /** + * Attribute object to use for enabled buttons. + * Default: none + */ + attribs: any; + /** + * Attribute object to use for disabled buttons. + * Default: none + */ + attribsDisabled: any; + /** + * Flag to indicate if user supplied `onclick` handler + * should be wrapped in a function which automatically + * calls `preventDefault()`. + * Default: true + */ + preventDefault: boolean; +} + +export interface ButtonArgs { + attribs: IObjectOf; + onclick: EventListener; + disabled: boolean; +} + +/** + * Higher order function to create a new stateless button component, + * pre-configured via user supplied options. The returned component + * function accepts the following arguments: + * + * - hdom context object (unused) + * - partial `ButtonArgs` object (extra attribs, onclick, disabled) + * - body content (varargs) + * + * Any `attribs` provided as arg via `ButtonArgs` are merged with the + * default options provided to the HOF. The `disabled` arg decides which + * button version to create. The button can have any number of body + * elements (e.g. icon and label), given as varargs. + */ +export const button = (opts?: Partial) => { + // init with defaults + opts = { + tag: "a", + tagDisabled: "span", + preventDefault: true, + attribs: {}, + ...opts + }; + !opts.attribs.role && (opts.attribs.role = "button"); + return (_: any, args: Partial, ...body: any[]) => + args.disabled ? + [opts.tagDisabled, { + ...opts.attribsDisabled, + ...args.attribs, + disabled: true, + }, ...body] : + [opts.tag, { + ...opts.attribs, + ...args.attribs, + onclick: opts.preventDefault ? + (e) => (e.preventDefault(), args.onclick(e)) : + args.onclick + }, ...body]; +}; +``` + +### Create pre-configured components + +To use the raw component, instantiate it via supplied options. Since the +component is stateless, the same instance can be used multiple times +from user code. Furthermore, this approach enables the publication of +dedicated packages, providing pre-defined, themed components, ready to +use without further pre-configuration. + +In this example, we use [Tachyons](https://tachyons.io) CSS classes to +provide themed versions of the above raw button component. However, a +more "traditional" approach could inject CSS rules via the `style` +attribute. Also see +[@thi.ng/hiccup-css](https://github.com/thi-ng/umbrella/tree/master/packages/hiccup-css) +for this purpose. + +```ts +// themed-button.ts +import { button as rawButton } from "./button"; + +// predefine skinned buttons +// here using Tachyons CSS classes as example +export const primaryButton = rawButton({ + attribs: { + class: "dib ph3 pv2 mb2 mr2 br-pill link bg-blue hover-bg-black bg-animate white", + href: "#" + }, + attribsDisabled: { + class: "dib ph3 pv2 mb2 mr2 br-pill bg-gray white" + } +}); + +export const button = rawButton({ + attribs: { + class: "dib ph3 pv2 mb2 mr2 link dim br2 ba blue", + href: "#", + }, + attribsDisabled: { + class: "dib ph3 pv2 mb2 mr2 br2 ba gray" + } +}); +``` + +### Usage & composition + +User code just needs to import pre-configured components and can further +customize them, e.g. to create an icon button (here using [Font +Awesome](https://fontawesome.com)). + +```ts +// user.ts +import { start } from "@thi.ng/hdom"; +import { button, primaryButton } from "./themed-button"; + +// derive icon buttons only accepting custom event handler arg +const confirmButton = (_, onclick) => + [primaryButton, { onclick }, ["i.fas.fa-check.mr2"], "Confirm"]; + +const cancelButton = (_, onclick) => + [button, { onclick }, ["i.fas.fa-times.mr2"], "Cancel"]; + +start("app", + ["div", + [primaryButton, { onclick: () => alert("bt1") }, "bt1"], + [primaryButton, { onclick: () => alert("bt3"), disabled: true }, "bt2"], + [button, { onclick: () => alert("bt3") }, "bt3"], + [button, { onclick: () => alert("bt4"), disabled: true }, "bt4"], + // icon buttons + [confirmButton, () => alert("confirm")], + [cancelButton, () => alert("cancel")], + ] +); +``` + +## Consequences + +Following the approach described above provides users with a predictable +workflow to integrate components into their projects and should also +provide sufficient flexibility in terms of customizing both behaviors +and the look and feel of the provided raw components. + +## Discussion + +Please use [#18](https://github.com/thi-ng/umbrella/issues/18) to +discuss any aspect of this ADR. diff --git a/packages/hdom-components/package.json b/packages/hdom-components/package.json index 6e111164bb..f221952dea 100644 --- a/packages/hdom-components/package.json +++ b/packages/hdom-components/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hdom-components", - "version": "2.0.3", + "version": "2.1.0", "description": "Raw, skinnable UI & SVG components for @thi.ng/hdom", "main": "./index.js", "typings": "./index.d.ts", @@ -16,15 +16,16 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.1", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/checks": "^1.5.1", + "@thi.ng/checks": "^1.5.2", + "@thi.ng/iterators": "^4.1.10", "@types/webgl2": "^0.0.3" }, "keywords": [ diff --git a/packages/hdom-components/src/button-group.ts b/packages/hdom-components/src/button-group.ts new file mode 100644 index 0000000000..e4c5c42cf7 --- /dev/null +++ b/packages/hdom-components/src/button-group.ts @@ -0,0 +1,103 @@ +import { IObjectOf } from "@thi.ng/api/api"; + +import { ButtonArgs, Button } from "./button"; + +/** + * Button group component config options. + */ +export interface ButtonGroupOpts { + /** + * Pre-configured stateless button component function for first + * button in group. MUST be provided. + */ + first: Button; + /** + * Pre-configured stateless button component function for inner + * buttons in group. Only used if at least 3 buttons in group. + * If not specified, `first` will be used. + */ + inner?: Button; + /** + * Pre-configured stateless button component function for last + * button in group. If not specified, `first` will be used. + */ + last?: Button; + /** + * Attribs for button group container. + */ + attribs?: IObjectOf; +} + +export interface ButtonGroupArgs { + /** + * User supplied attribute overrides. + */ + attribs: IObjectOf; + /** + * Disabled flag for entire button group. + * Default: none + */ + disabled: boolean; +} + +/** + * Argument type for a single button in the group, e.g. + * + * ``` + * [{onclick: () => alert("foo") }, ["i.fas.fa-check"], "foo"] + * ``` + */ +export interface ButtonGroupItem extends Array { + [0]: ButtonArgs; + [id: number]: any; +} + +/** + * Higher order function to create a new stateless button group + * component, pre-configured via user supplied options. The returned + * component function accepts the following arguments: + * + * - hdom context object (unused) + * - partial `ButtonGroupArgs` object (extra attribs, disabled flag) + * - button group items (varargs) + * + * Any `attribs` provided as arg via `ButtonGroupArgs` are merged with + * the default options provided to the HOF. If `disabled` is true, ALL + * buttons in the group will be disabled, regardless of their individual + * settings. The group can have any number of elements, given as + * varargs. + * + * @param opts + */ +export const buttonGroup = (opts: ButtonGroupOpts) => + (_, args: ButtonGroupArgs, ...buttons: ButtonGroupItem[]) => + ["div", { ...opts.attribs, ...args.attribs }, ...groupBody(opts, args.disabled, buttons)]; + +const groupBody = (opts: ButtonGroupOpts, disabled: boolean, buttons: ButtonGroupItem[]) => { + switch (buttons.length) { + case 0: + return; + case 1: + return [bt(opts.inner || opts.first, disabled, buttons[0])]; + case 2: + return [ + bt(opts.first, disabled, buttons[0]), + bt(opts.last || opts.first, disabled, buttons[1]) + ]; + default: { + const res = [bt(opts.first, disabled, buttons[0])]; + const el = opts.inner || opts.first + const n = buttons.length - 1; + for (let i = 1; i < n; i++) { + res[i] = bt(el, disabled, buttons[i]); + } + res[n] = bt(opts.last || opts.first, disabled, buttons[n]); + return res; + } + } +}; + +const bt = (el: Button, disabled: boolean, bt: ButtonGroupItem) => + disabled ? + [el, { ...bt[0], disabled: true }, ...bt.slice(1)] : + [el, ...bt]; \ No newline at end of file diff --git a/packages/hdom-components/src/button.ts b/packages/hdom-components/src/button.ts new file mode 100644 index 0000000000..bcbddaf0f8 --- /dev/null +++ b/packages/hdom-components/src/button.ts @@ -0,0 +1,79 @@ +import { IObjectOf } from "@thi.ng/api/api"; + +export interface ButtonOpts { + /** + * Element name to use for enabled buttons. + * Default: "a" + */ + tag: string; + /** + * Element name to use for disabled buttons. + * Default: "span" + */ + tagDisabled: string; + /** + * Attribute object to use for enabled buttons. + * Default: none + */ + attribs: any; + /** + * Attribute object to use for disabled buttons. + * Default: none + */ + attribsDisabled: any; + /** + * Flag to indicate if user supplied `onclick` handler + * should be wrapped in a function which automatically + * calls `preventDefault()`. + * Default: true + */ + preventDefault: boolean; +} + +export interface ButtonArgs { + attribs: IObjectOf; + onclick: EventListener; + disabled: boolean; +} + +export type Button = (_: any, args: Partial, ...body: any[]) => any; + +/** + * Higher order function to create a new stateless button component, + * pre-configured via user supplied options. The returned component + * function accepts the following arguments: + * + * - hdom context object (unused) + * - partial `ButtonArgs` object (extra attribs, onclick, disabled) + * - body content (varargs) + * + * Any `attribs` provided as arg via `ButtonArgs` are merged with the + * default options provided to the HOF. The `disabled` arg decides which + * button version to create. The button can have any number of body + * elements (e.g. icon and label), given as varargs. + */ +export const button = (opts?: Partial): Button => { + // init with defaults + opts = { + tag: "a", + tagDisabled: "span", + preventDefault: true, + attribs: {}, + ...opts + }; + !opts.attribs.role && (opts.attribs.role = "button"); + return (_: any, args: Partial, ...body: any[]) => + args.disabled ? + [opts.tagDisabled, { + ...opts.attribsDisabled, + ...args.attribs, + disabled: true, + }, ...body] : + [opts.tag, { + ...opts.attribs, + ...args.attribs, + onclick: opts.preventDefault ? + (e) => (e.preventDefault(), args.onclick(e)) : + args.onclick + }, ...body]; +}; diff --git a/packages/hdom-components/src/canvas.ts b/packages/hdom-components/src/canvas.ts index 29fd6273da..b836455f5c 100644 --- a/packages/hdom-components/src/canvas.ts +++ b/packages/hdom-components/src/canvas.ts @@ -1,9 +1,3 @@ -export interface CanvasOpts { - width: number; - height: number; - [id: string]: any; -} - /** * User provided canvas life cycle methods. These differ from the usual * @thi.ng/hdom life cycle methods and are always passed at least the diff --git a/packages/hdom-components/src/index.ts b/packages/hdom-components/src/index.ts index 55a53adbda..e20ce3cc2f 100644 --- a/packages/hdom-components/src/index.ts +++ b/packages/hdom-components/src/index.ts @@ -1,3 +1,8 @@ +export * from "./button"; +export * from "./button-group"; export * from "./canvas"; export * from "./dropdown"; export * from "./link"; +export * from "./notification"; +export * from "./pager"; +export * from "./title"; diff --git a/packages/hdom-components/src/link.ts b/packages/hdom-components/src/link.ts index e5ca28a27d..3c8992ecd0 100644 --- a/packages/hdom-components/src/link.ts +++ b/packages/hdom-components/src/link.ts @@ -3,11 +3,11 @@ import { isString } from "@thi.ng/checks/is-string"; export const link = (attribs: any, body: any) => ["a", isString(attribs) ? { href: attribs } : attribs, body]; -export const appLink = (attribs: any, body: any, onclick: (e: Event) => void) => - link( +export const appLink = (_, attribs: any, onclick: EventListener, body: any) => + ["a", { - ...attribs, href: "#", - onclick: (e) => { e.preventDefault(); onclick(e); } + onclick: (e) => { e.preventDefault(); onclick(e); }, + ...attribs, }, - body); + body]; diff --git a/packages/hdom-components/src/notification.ts b/packages/hdom-components/src/notification.ts new file mode 100644 index 0000000000..ce84778af9 --- /dev/null +++ b/packages/hdom-components/src/notification.ts @@ -0,0 +1,67 @@ +import { IObjectOf } from "@thi.ng/api/api"; +import { appLink } from "./link"; + +export interface NotificationOpts { + /** + * Attribute object to use for notification. + * Default: none + */ + attribs: IObjectOf; + /** + * Attribute object for link wrapper of `close` element. + * Default: none + */ + attribsClose: IObjectOf; + /** + * Icon element to use for notification. + * Default: none + */ + icon: any[]; + /** + * Icon element to use for close button. + * Default: none + */ + close: any[]; +} + +/** + * Runtime supplied user args for individual notification instances. + */ +export interface NotificationArgs { + /** + * Extra attribs to merge with (or override) configured default attribs. + */ + attribs: IObjectOf; + /** + * Event handler called when user closes notification. Only used if + * `NotificationOpts` has `close` option configured. + */ + onclose: EventListener; +} + +/** + * Higher order function to create a new stateless notification + * component, pre-configured via user supplied options. The returned + * component function accepts the following arguments: + * + * - hdom context object (unused) + * - partial `NotificationArgs` object (extra attribs, onclose handler) + * - body content + * + * Any `attribs` provided as arg via `NotificationArgs` are merged with + * the default options provided to the HOF. If the notification body + * consists of multiple elements then they will need to be wrapped in a + * container element. + * + * @param opts + */ +export const notification = (opts?: Partial) => { + return (_, args: Partial, body: any) => + ["div", + { ...opts.attribs, ...args.attribs }, + opts.icon, + body, + opts.close && args.onclose ? + [appLink, opts.attribsClose, args.onclose, opts.close] : + undefined]; +}; diff --git a/packages/hdom-components/src/pager.ts b/packages/hdom-components/src/pager.ts new file mode 100644 index 0000000000..98d724fe9b --- /dev/null +++ b/packages/hdom-components/src/pager.ts @@ -0,0 +1,158 @@ +import { range } from "@thi.ng/iterators/range"; +import { map } from "@thi.ng/iterators/map"; + +/** + * Configuration options for pager components. + */ +export interface PagerOpts { + /** + * Function producing a single page nav or counter element. MUST be + * provided by user. + * + * The function is called with: + * + * - target page ID + * - current page ID + * - max pageID + * - page label (page number or sourced from these options here) + * - disabled flag as determined by the pager + * + * If `disabled` is true, the function should return a version of + * the button component reflecting this state to the user. E.g. the + * "prev page" buttons should be disabled if the first page is + * currently active. Likewise, the currently selected page button + * will be set to disabled as well. + * + * Page IDs are zero-based indices, whereas page number labels are + * one-based. The currently active page ID is only provided for + * special highlighting cases (optional). + */ + button: (page: number, curr: number, max: number, label: any, disabled: boolean) => any; + /** + * Pager root component function. Receives all 3 button groups as + * arguments. Optional. Default: `["div.pager", ...body]` + */ + root: (ctx: any, ...body: any[]) => any; + /** + * Component function to provide wrapper for the first / prev nav + * button group. The `first` / `prev` args are button components. + * Optional. Default: `["div.pager-prev", first, prev]` + */ + groupPrev: (ctx: any, first: any, prev: any) => any; + /** + * Component function to provide wrapper for the page buttons group. + * The `buttons` argument is an array of button components. + * Optional. Default: `["div.pager-pages", ...buttons]` + */ + groupPages: (ctx: any, buttons: any[]) => any; + /** + * Component function to provide wrapper for the next / last nav + * button group. The `next` / `last` args are button components. + * Optional. Default: `["div.pager-next", next, last]` + */ + groupNext: (ctx: any, next: any, last: any) => any; + /** + * Page increment for prev / next page buttons. Default: 1 + */ + navStep?: number; + /** + * Label for "first page" button. Default: "<<" + */ + labelFirst?: any; + /** + * Label for "last page" button. Default: ">>" + */ + labelLast?: any; + /** + * Label for "prev page" button. Default: "<" + */ + labelPrev?: any; + /** + * Label for "next page" button. Default: ">" + */ + labelNext?: any; +} + +/** + * Higher order container component for paged navigation buttons. The + * returned component function takes these arguments: + * + * - `ctx` - hdom context object + * - `id` - current page ID (zero-based) + * - `numItems` - current number of items + * - `pageLen` - number of items per page (only used for calculation) + * - `maxButtons` - number of page buttons to show (default: 5). If + * zero, only the prev / next and first / last buttons will be shown. + * + * If there are more pages than the specified number, only the + * neighboring page IDs (relative to the current page) are shown. E.g. + * If there are 10 pages, the current page ID is 5 and 3 visible page + * buttons then the pager will look like this (the `|` character here + * indicates button group boundaries): + * + * ``` + * << < | 4 5 6 | > >> + * ``` + * + * Providing `pageLen` and `maxButtons` as arguments allows to + * dynamically control the number of page buttons at runtime, e.g. in + * response to window resizing. + * + * Yields a component of page buttons and prev / next and first / last + * navigation buttons. The actual button and button group components are + * defined via the user supplied options. The first / prev and next / + * last nav buttons are paired within inner `div` elements (one per + * pair) and can be styled (or hidden) separately. + * + * ``` + * // initialization + * const mypager = pager({ + * button: (i, curr, max, label, disabled) => + * ["a", {href: `/page/${i}`, disabled}, label] + * }); + * + * // usage + * [mypager, currPage, currNumItems, 10, 5] + * ``` + * + * @param opts + */ +export const pager = (opts: PagerOpts) => { + opts = Object.assign({ + root: (_, ...body: any[]) => ["div.pager", ...body], + groupPrev: (_, ...bts: any[]) => ["div.pager-prev", ...bts], + groupNext: (_, ...bts: any[]) => ["div.pager-next", ...bts], + groupPages: (_, ...bts: any[]) => ["div.pager-pages", ...bts], + navStep: 1, + labelFirst: "<<", + labelPrev: "<", + labelNext: ">", + labelLast: ">>", + }, opts); + return (_, id: number, num: number, pageLen = 10, maxBts = 5) => { + const bt = opts.button; + const step = opts.navStep; + const maxID = Math.floor(Math.max(0, num - 1) / pageLen); + id = Math.max(Math.min(id, maxID), 0); + return [ + opts.root, + [opts.groupPrev, + bt(0, id, maxID, opts.labelFirst, !id), + bt(Math.max(id - step, 0), id, maxID, opts.labelPrev, !id)], + [opts.groupPages, + map((i: number) => bt(i, id, maxID, i + 1, i === id), + pageRange(id, maxID, maxBts))], + [opts.groupNext, + bt(Math.min(id + step, maxID), id, maxID, opts.labelNext, id >= maxID), + bt(maxID, id, maxID, opts.labelLast, id >= maxID)], + ]; + }; +}; + +const pageRange = (id: number, maxID: number, maxBt: number) => { + if (maxID > maxBt - 1) { + const from = Math.max(Math.min(id - (maxBt >> 1), maxID - maxBt + 1), 0); + return range(from, from + maxBt); + } + return range(0, maxID + 1); +}; diff --git a/packages/hdom-components/src/title.ts b/packages/hdom-components/src/title.ts new file mode 100644 index 0000000000..61c2382246 --- /dev/null +++ b/packages/hdom-components/src/title.ts @@ -0,0 +1,47 @@ +export interface TitleOpts { + /** + * Element name for main title. Default: `h1` + */ + element: string; + /** + * Attribs for main title: Default: none + */ + attribs: any; + /** + * Element name for subtitle: Default: `small` + */ + subElement: string; + /** + * Attribs for subtitle: Default: none + */ + subAttribs: any; +} + +/** + * Configurable Higher order title with optional subtitle component. The + * returned component function takes two args: title, subtitle. + * + * ``` + * const h1 = title(); + * const h2 = title({ element: "h2", attribs: { class: "blue" }}); + * + * [h1, "Hello world", "Once upon a time..."] + * + * [h2, "Chapter 1", "Once upon a time..."] + * ``` + * + * @param opts + */ +export const title = (opts?: Partial) => { + opts = Object.assign({ + element: "h1", + attribs: {}, + subElement: "small", + subAttribs: {}, + }, opts); + return (_, title, subtitle) => + [opts.element, opts.attribs, title, + subtitle ? + [opts.subElement, opts.subAttribs, subtitle] : + undefined]; +}; diff --git a/packages/hdom/CHANGELOG.md b/packages/hdom/CHANGELOG.md index f823c92a70..00a2d7ca98 100644 --- a/packages/hdom/CHANGELOG.md +++ b/packages/hdom/CHANGELOG.md @@ -3,6 +3,39 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [3.0.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@3.0.14...@thi.ng/hdom@3.0.15) (2018-05-09) + + +### Bug Fixes + +* **hdom:** native boolean attrib handling (e.g. "checked") ([68ea086](https://github.com/thi-ng/umbrella/commit/68ea086)) + + + + + +## [3.0.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@3.0.13...@thi.ng/hdom@3.0.14) (2018-05-01) + + +### Bug Fixes + +* **hdom:** boolean attrib reset/removal ([a93cb98](https://github.com/thi-ng/umbrella/commit/a93cb98)) + + + + + +## [3.0.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@3.0.12...@thi.ng/hdom@3.0.13) (2018-04-30) + + +### Performance Improvements + +* **hdom:** only build linear diff edit log ([7a543a5](https://github.com/thi-ng/umbrella/commit/7a543a5)) + + + + ## [3.0.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/hdom@3.0.11...@thi.ng/hdom@3.0.12) (2018-04-29) diff --git a/packages/hdom/package.json b/packages/hdom/package.json index 322ca77707..71037f1350 100644 --- a/packages/hdom/package.json +++ b/packages/hdom/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hdom", - "version": "3.0.12", + "version": "3.0.15", "description": "Lightweight vanilla ES6 UI component & virtual DOM system", "main": "./index.js", "typings": "./index.d.ts", @@ -16,19 +16,19 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@thi.ng/atom": "^1.3.6", - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@thi.ng/atom": "^1.3.7", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.1", - "@thi.ng/diff": "^1.0.9", - "@thi.ng/hiccup": "^1.3.12", - "@thi.ng/iterators": "^4.1.9" + "@thi.ng/api": "^2.3.2", + "@thi.ng/diff": "^1.0.11", + "@thi.ng/hiccup": "^1.3.13", + "@thi.ng/iterators": "^4.1.10" }, "keywords": [ "browser", diff --git a/packages/hdom/src/diff.ts b/packages/hdom/src/diff.ts index a0b0f96ee9..d122294f6b 100644 --- a/packages/hdom/src/diff.ts +++ b/packages/hdom/src/diff.ts @@ -1,3 +1,4 @@ +import { equiv } from "@thi.ng/api/equiv"; import * as isa from "@thi.ng/checks/is-array"; import * as iss from "@thi.ng/checks/is-string"; import * as diff from "@thi.ng/diff"; @@ -38,7 +39,7 @@ export function diffElement(root: Element, prev: any, curr: any) { } function _diffElement(parent: Element, prev: any, curr: any, child: number) { - const delta = diffArray(prev, curr); + const delta = diffArray(prev, curr, equiv, true); if (delta.distance === 0) { return; } diff --git a/packages/hdom/src/dom.ts b/packages/hdom/src/dom.ts index 3ccc7ef464..12400f0123 100644 --- a/packages/hdom/src/dom.ts +++ b/packages/hdom/src/dom.ts @@ -128,6 +128,10 @@ export function setAttrib(el: Element, id: string, val: any, attribs?: any) { case "value": updateValueAttrib(el, val); break; + case "checked": + // TODO add more native attribs? + el[id] = val; + break; default: if (isListener) { el.addEventListener(id.substr(2), val); @@ -136,7 +140,7 @@ export function setAttrib(el: Element, id: string, val: any, attribs?: any) { } } } else { - el.removeAttribute(id); + el[id] != null ? (el[id] = null) : el.removeAttribute(id); } return el; } @@ -167,7 +171,7 @@ export function removeAttribs(el: Element, attribs: string[], prev: any) { if (a.indexOf("on") === 0) { el.removeEventListener(a.substr(2), prev[a]); } else { - el.removeAttribute(a); + el[a] ? (el[a] = null) : el.removeAttribute(a); } } } diff --git a/packages/heaps/CHANGELOG.md b/packages/heaps/CHANGELOG.md index 12ab8bf6e7..b23695772d 100644 --- a/packages/heaps/CHANGELOG.md +++ b/packages/heaps/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [0.2.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/heaps@0.2.5...@thi.ng/heaps@0.2.6) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/heaps + ## [0.2.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/heaps@0.2.4...@thi.ng/heaps@0.2.5) (2018-04-29) diff --git a/packages/heaps/package.json b/packages/heaps/package.json index daa89bec47..7d24c51a29 100644 --- a/packages/heaps/package.json +++ b/packages/heaps/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/heaps", - "version": "0.2.5", + "version": "0.2.6", "description": "Generic binary heap & d-ary heap implementations with customizable ordering", "main": "./index.js", "typings": "./index.d.ts", @@ -16,15 +16,15 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.1" + "@thi.ng/api": "^2.3.2" }, "keywords": [ "data structure", diff --git a/packages/hiccup-css/CHANGELOG.md b/packages/hiccup-css/CHANGELOG.md index 57cb4d6ec8..c8315686d8 100644 --- a/packages/hiccup-css/CHANGELOG.md +++ b/packages/hiccup-css/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [0.1.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-css@0.1.14...@thi.ng/hiccup-css@0.1.15) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/hiccup-css + ## [0.1.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-css@0.1.13...@thi.ng/hiccup-css@0.1.14) (2018-04-29) diff --git a/packages/hiccup-css/package.json b/packages/hiccup-css/package.json index 3f1da5a219..17c5a02a6b 100644 --- a/packages/hiccup-css/package.json +++ b/packages/hiccup-css/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hiccup-css", - "version": "0.1.14", + "version": "0.1.15", "description": "CSS from nested JS data structures", "main": "./index.js", "typings": "./index.d.ts", @@ -16,16 +16,16 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.1", - "@thi.ng/transducers": "^1.8.4" + "@thi.ng/api": "^2.3.2", + "@thi.ng/transducers": "^1.8.5" }, "keywords": [ "clojure", diff --git a/packages/hiccup-svg/CHANGELOG.md b/packages/hiccup-svg/CHANGELOG.md index cd3420db0f..25ed853408 100644 --- a/packages/hiccup-svg/CHANGELOG.md +++ b/packages/hiccup-svg/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [0.2.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@0.2.9...@thi.ng/hiccup-svg@0.2.10) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/hiccup-svg + ## [0.2.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup-svg@0.2.8...@thi.ng/hiccup-svg@0.2.9) (2018-04-29) diff --git a/packages/hiccup-svg/package.json b/packages/hiccup-svg/package.json index 2ada6bc793..af6cf06503 100644 --- a/packages/hiccup-svg/package.json +++ b/packages/hiccup-svg/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hiccup-svg", - "version": "0.2.9", + "version": "0.2.10", "description": "SVG element functions for @thi.ng/hiccup & @thi.ng/hdom", "main": "./index.js", "typings": "./index.d.ts", @@ -16,16 +16,16 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.1", - "@thi.ng/hiccup": "^1.3.12" + "@thi.ng/api": "^2.3.2", + "@thi.ng/hiccup": "^1.3.13" }, "keywords": [ "components", diff --git a/packages/hiccup/CHANGELOG.md b/packages/hiccup/CHANGELOG.md index 3bb3a2724a..c92f2bcd31 100644 --- a/packages/hiccup/CHANGELOG.md +++ b/packages/hiccup/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [1.3.13](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup@1.3.12...@thi.ng/hiccup@1.3.13) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/hiccup + ## [1.3.12](https://github.com/thi-ng/umbrella/compare/@thi.ng/hiccup@1.3.11...@thi.ng/hiccup@1.3.12) (2018-04-29) diff --git a/packages/hiccup/package.json b/packages/hiccup/package.json index 28900bc83f..10b909e3c8 100644 --- a/packages/hiccup/package.json +++ b/packages/hiccup/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/hiccup", - "version": "1.3.12", + "version": "1.3.13", "description": "HTML/SVG/XML serialization of nested data structures, iterables & closures", "main": "./index.js", "typings": "./index.d.ts", @@ -16,17 +16,17 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@thi.ng/atom": "^1.3.6", - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@thi.ng/atom": "^1.3.7", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.1", - "@thi.ng/checks": "^1.5.1" + "@thi.ng/api": "^2.3.2", + "@thi.ng/checks": "^1.5.2" }, "keywords": [ "clojure", diff --git a/packages/interceptors/CHANGELOG.md b/packages/interceptors/CHANGELOG.md index de7eb2c0b1..757faae7a0 100644 --- a/packages/interceptors/CHANGELOG.md +++ b/packages/interceptors/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [1.7.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/interceptors@1.6.2...@thi.ng/interceptors@1.7.0) (2018-05-09) + + +### Features + +* **interceptors:** add dispatch/dispatchNow() helper interceptors ([6748515](https://github.com/thi-ng/umbrella/commit/6748515)) + + + + ## [1.6.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/interceptors@1.6.1...@thi.ng/interceptors@1.6.2) (2018-04-29) diff --git a/packages/interceptors/package.json b/packages/interceptors/package.json index a43327c052..05b23d6344 100644 --- a/packages/interceptors/package.json +++ b/packages/interceptors/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/interceptors", - "version": "1.6.2", + "version": "1.7.0", "description": "Interceptor based event bus, side effect & immutable state handling", "main": "./index.js", "typings": "./index.d.ts", @@ -16,17 +16,17 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.1", - "@thi.ng/atom": "^1.3.6", - "@thi.ng/paths": "^1.3.3" + "@thi.ng/api": "^2.3.2", + "@thi.ng/atom": "^1.3.7", + "@thi.ng/paths": "^1.3.4" }, "keywords": [ "ES6", diff --git a/packages/interceptors/src/interceptors.ts b/packages/interceptors/src/interceptors.ts index 834b41d1c6..f95dc0ea66 100644 --- a/packages/interceptors/src/interceptors.ts +++ b/packages/interceptors/src/interceptors.ts @@ -4,15 +4,17 @@ import { setIn, updateIn } from "@thi.ng/paths"; - import { Event, FX_CANCEL, + FX_DISPATCH, + FX_DISPATCH_NOW, FX_STATE, InterceptorFn, InterceptorPredicate } from "./api"; + /** * Debug interceptor to log the current event to the console. */ @@ -30,6 +32,24 @@ export function forwardSideFx(fxID: string): InterceptorFn { return (_, [__, body]) => ({ [fxID]: body }); } +/** + * Higher-order interceptor. Returns interceptor which assigns given + * event to `FX_DISPATCH` side effect. + * + * @param event + */ +export const dispatch = (event: Event): InterceptorFn => + () => ({ [FX_DISPATCH]: event }); + +/** + * Higher-order interceptor. Returns interceptor which assigns given + * event to `FX_DISPATCH_NOW` side effect. + * + * @param event + */ +export const dispatchNow = (event: Event): InterceptorFn => + () => ({ [FX_DISPATCH_NOW]: event }); + /** * Higher-order interceptor. Returns interceptor which calls * `ctx[id].record()`, where `ctx` is the currently active diff --git a/packages/iterators/CHANGELOG.md b/packages/iterators/CHANGELOG.md index 19f30826e0..6ffcb20902 100644 --- a/packages/iterators/CHANGELOG.md +++ b/packages/iterators/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [4.1.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/iterators@4.1.9...@thi.ng/iterators@4.1.10) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/iterators + ## [4.1.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/iterators@4.1.8...@thi.ng/iterators@4.1.9) (2018-04-29) diff --git a/packages/iterators/package.json b/packages/iterators/package.json index 63d035b5df..a1deb8177e 100644 --- a/packages/iterators/package.json +++ b/packages/iterators/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/iterators", - "version": "4.1.9", + "version": "4.1.10", "description": "clojure.core inspired, composable ES6 iterators & generators", "main": "./index.js", "typings": "./index.d.ts", @@ -16,16 +16,16 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.1", - "@thi.ng/dcons": "^0.3.3" + "@thi.ng/api": "^2.3.2", + "@thi.ng/dcons": "^0.3.4" }, "keywords": [ "clojure", diff --git a/packages/paths/CHANGELOG.md b/packages/paths/CHANGELOG.md index 9dc894103f..f09c3c6140 100644 --- a/packages/paths/CHANGELOG.md +++ b/packages/paths/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [1.3.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/paths@1.3.3...@thi.ng/paths@1.3.4) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/paths + ## [1.3.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/paths@1.3.2...@thi.ng/paths@1.3.3) (2018-04-29) diff --git a/packages/paths/package.json b/packages/paths/package.json index b30772f1dd..3143aadb0e 100644 --- a/packages/paths/package.json +++ b/packages/paths/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/paths", - "version": "1.3.3", + "version": "1.3.4", "description": "immutable, optimized path-based object property / array accessors", "main": "./index.js", "typings": "./index.d.ts", @@ -16,16 +16,16 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.1", - "@thi.ng/checks": "^1.5.1" + "@thi.ng/api": "^2.3.2", + "@thi.ng/checks": "^1.5.2" }, "keywords": [ "accessors", diff --git a/packages/pointfree-lang/CHANGELOG.md b/packages/pointfree-lang/CHANGELOG.md index fa9a2a3ab9..eb595f72e1 100644 --- a/packages/pointfree-lang/CHANGELOG.md +++ b/packages/pointfree-lang/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [0.2.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree-lang@0.2.6...@thi.ng/pointfree-lang@0.2.7) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/pointfree-lang + ## [0.2.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree-lang@0.2.5...@thi.ng/pointfree-lang@0.2.6) (2018-04-29) diff --git a/packages/pointfree-lang/package.json b/packages/pointfree-lang/package.json index 91fa458da6..f3bd2f3ea6 100644 --- a/packages/pointfree-lang/package.json +++ b/packages/pointfree-lang/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/pointfree-lang", - "version": "0.2.6", + "version": "0.2.7", "description": "Forth style syntax layer/compiler for the @thi.ng/pointfree DSL", "main": "./index.js", "typings": "./index.d.ts", @@ -18,16 +18,16 @@ "test": "rm -rf build && tsc -p test && yarn pegtest && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", "pegjs": "^0.10.0", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.1", - "@thi.ng/pointfree": "^0.7.6" + "@thi.ng/api": "^2.3.2", + "@thi.ng/pointfree": "^0.7.7" }, "keywords": [ "concatenative", diff --git a/packages/pointfree/CHANGELOG.md b/packages/pointfree/CHANGELOG.md index 5a0f87ccc8..b81f1e3eea 100644 --- a/packages/pointfree/CHANGELOG.md +++ b/packages/pointfree/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [0.7.7](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree@0.7.6...@thi.ng/pointfree@0.7.7) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/pointfree + ## [0.7.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/pointfree@0.7.5...@thi.ng/pointfree@0.7.6) (2018-04-29) diff --git a/packages/pointfree/package.json b/packages/pointfree/package.json index efa909dc2b..e8ec117157 100644 --- a/packages/pointfree/package.json +++ b/packages/pointfree/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/pointfree", - "version": "0.7.6", + "version": "0.7.7", "description": "Pointfree functional composition / Forth style stack execution engine", "main": "./index.js", "typings": "./index.d.ts", @@ -16,15 +16,15 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.1" + "@thi.ng/api": "^2.3.2" }, "keywords": [ "composition", diff --git a/packages/resolve-map/CHANGELOG.md b/packages/resolve-map/CHANGELOG.md index 71183dde64..e8c0c18509 100644 --- a/packages/resolve-map/CHANGELOG.md +++ b/packages/resolve-map/CHANGELOG.md @@ -3,7 +3,15 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. - + +## [1.0.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/resolve-map@1.0.4...@thi.ng/resolve-map@1.0.5) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/resolve-map + + ## [1.0.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/resolve-map@1.0.3...@thi.ng/resolve-map@1.0.4) (2018-04-29) @@ -11,7 +19,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline **Note:** Version bump only for package @thi.ng/resolve-map - + ## [1.0.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/resolve-map@1.0.2...@thi.ng/resolve-map@1.0.3) (2018-04-26) diff --git a/packages/resolve-map/package.json b/packages/resolve-map/package.json index b52050fe5f..3bb2f7a57a 100644 --- a/packages/resolve-map/package.json +++ b/packages/resolve-map/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/resolve-map", - "version": "1.0.4", + "version": "1.0.5", "description": "DAG resolution of vanilla objects & arrays with internally linked values", "main": "./index.js", "typings": "./index.d.ts", @@ -15,16 +15,16 @@ "test": "rm -rf build && tsc -p test && mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.1", - "@thi.ng/checks": "^1.5.1", - "@thi.ng/paths": "^1.3.3" + "@thi.ng/api": "^2.3.2", + "@thi.ng/checks": "^1.5.2", + "@thi.ng/paths": "^1.3.4" }, "keywords": [ "configuration", diff --git a/packages/rle-pack/CHANGELOG.md b/packages/rle-pack/CHANGELOG.md index 5ff929f352..d258719b84 100644 --- a/packages/rle-pack/CHANGELOG.md +++ b/packages/rle-pack/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [0.2.17](https://github.com/thi-ng/umbrella/compare/@thi.ng/rle-pack@0.2.16...@thi.ng/rle-pack@0.2.17) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/rle-pack + ## [0.2.16](https://github.com/thi-ng/umbrella/compare/@thi.ng/rle-pack@0.2.15...@thi.ng/rle-pack@0.2.16) (2018-04-29) diff --git a/packages/rle-pack/package.json b/packages/rle-pack/package.json index e67fdee3bb..5521329d27 100644 --- a/packages/rle-pack/package.json +++ b/packages/rle-pack/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rle-pack", - "version": "0.2.16", + "version": "0.2.17", "description": "Binary run-length encoding packer w/ flexible repeat bit widths", "main": "./index.js", "typings": "./index.d.ts", @@ -16,16 +16,16 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", "benchmark": "^2.1.4", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/bitstream": "^0.4.7" + "@thi.ng/bitstream": "^0.4.8" }, "keywords": [ "binary", diff --git a/packages/router/CHANGELOG.md b/packages/router/CHANGELOG.md index e40e8a438b..4a0ae7e73f 100644 --- a/packages/router/CHANGELOG.md +++ b/packages/router/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [0.1.10](https://github.com/thi-ng/umbrella/compare/@thi.ng/router@0.1.9...@thi.ng/router@0.1.10) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/router + ## [0.1.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/router@0.1.8...@thi.ng/router@0.1.9) (2018-04-29) diff --git a/packages/router/package.json b/packages/router/package.json index 9acf48a4ce..51e2b052af 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/router", - "version": "0.1.9", + "version": "0.1.10", "description": "Generic router for browser & non-browser based applications", "main": "./index.js", "typings": "./index.d.ts", @@ -15,15 +15,15 @@ "test": "rm -rf build && tsc -p test && mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.1" + "@thi.ng/api": "^2.3.2" }, "keywords": [ "declarative", diff --git a/packages/rstream-csp/CHANGELOG.md b/packages/rstream-csp/CHANGELOG.md index 2a3e05ea9e..344fe13974 100644 --- a/packages/rstream-csp/CHANGELOG.md +++ b/packages/rstream-csp/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [0.1.64](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-csp@0.1.63...@thi.ng/rstream-csp@0.1.64) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/rstream-csp + ## [0.1.63](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-csp@0.1.62...@thi.ng/rstream-csp@0.1.63) (2018-04-29) diff --git a/packages/rstream-csp/package.json b/packages/rstream-csp/package.json index 7442fec6ca..c28f06754f 100644 --- a/packages/rstream-csp/package.json +++ b/packages/rstream-csp/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-csp", - "version": "0.1.63", + "version": "0.1.64", "description": "@thi.ng/csp bridge module for @thi.ng/rstream", "main": "./index.js", "typings": "./index.d.ts", @@ -16,16 +16,16 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/csp": "^0.3.32", - "@thi.ng/rstream": "^1.6.4" + "@thi.ng/csp": "^0.3.33", + "@thi.ng/rstream": "^1.6.5" }, "keywords": [ "bridge", diff --git a/packages/rstream-dot/CHANGELOG.md b/packages/rstream-dot/CHANGELOG.md index 135b7e8ef3..8dc941dfda 100644 --- a/packages/rstream-dot/CHANGELOG.md +++ b/packages/rstream-dot/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [0.2.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-dot@0.2.2...@thi.ng/rstream-dot@0.2.3) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/rstream-dot + ## [0.2.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-dot@0.2.1...@thi.ng/rstream-dot@0.2.2) (2018-04-29) diff --git a/packages/rstream-dot/package.json b/packages/rstream-dot/package.json index 05e377669d..a5a208f9b4 100644 --- a/packages/rstream-dot/package.json +++ b/packages/rstream-dot/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-dot", - "version": "0.2.2", + "version": "0.2.3", "description": "Graphviz DOT conversion of @thi.ng/rstream dataflow graph topologies", "main": "./index.js", "typings": "./index.d.ts", @@ -16,17 +16,17 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.1", - "@thi.ng/rstream": "^1.6.4", - "@thi.ng/transducers": "^1.8.4" + "@thi.ng/api": "^2.3.2", + "@thi.ng/rstream": "^1.6.5", + "@thi.ng/transducers": "^1.8.5" }, "keywords": [ "conversion", diff --git a/packages/rstream-gestures/CHANGELOG.md b/packages/rstream-gestures/CHANGELOG.md index 6c2a837d1c..9c7258e415 100644 --- a/packages/rstream-gestures/CHANGELOG.md +++ b/packages/rstream-gestures/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [0.3.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@0.2.5...@thi.ng/rstream-gestures@0.3.0) (2018-05-09) + + +### Features + +* **rstream-gestures:** add zoom smooth config option, update readme ([053c8c6](https://github.com/thi-ng/umbrella/commit/053c8c6)) + + + + ## [0.2.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-gestures@0.2.4...@thi.ng/rstream-gestures@0.2.5) (2018-04-29) diff --git a/packages/rstream-gestures/README.md b/packages/rstream-gestures/README.md index c0e88a85ca..42ccc3b286 100644 --- a/packages/rstream-gestures/README.md +++ b/packages/rstream-gestures/README.md @@ -35,8 +35,35 @@ A small, fully commented project can be found in the `/examples` folder: [Source](https://github.com/thi-ng/umbrella/tree/master/examples/rstream-dataflow) | [Live version](http://demo.thi.ng/umbrella/rstream-dataflow) +### Basic usage + ```typescript -import { gestureStream } from "@thi.ng/rstream-gestures"; +import { GestureType, gestureStream } from "@thi.ng/rstream-gestures"; +import { trace } from "@thi.ng/rstream"; +import { comp, dedupe, filter, map } from "@thi.ng/transducers"; + +// create event stream with custom option +const gestures = gestureStream(document.body, { smooth: 0.5 }); + +// subscription logging zoom value changes +gestures.subscribe( + // trace is simply logging received values to console + trace("zoom"), + // composed transducer, `dedupe` ensures only changed values are received + comp( + map(([_, {zoom}]) => zoom), + dedupe() + ) +); + +// another subscription computing & logging drag gesture distance +gestures.subscribe( + trace("distance"), + comp( + filter(([type]) => type === GestureType.DRAG), + map(([_, {delta}]) => Math.hypot(...delta)) + ) +); ``` ## Authors diff --git a/packages/rstream-gestures/package.json b/packages/rstream-gestures/package.json index 1655b82842..64dff7eb9b 100644 --- a/packages/rstream-gestures/package.json +++ b/packages/rstream-gestures/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-gestures", - "version": "0.2.5", + "version": "0.3.0", "description": "Unified mouse, mouse wheel & single-touch event stream abstraction", "main": "./index.js", "typings": "./index.d.ts", @@ -16,17 +16,17 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.1", - "@thi.ng/rstream": "^1.6.4", - "@thi.ng/transducers": "^1.8.4" + "@thi.ng/api": "^2.3.2", + "@thi.ng/rstream": "^1.6.5", + "@thi.ng/transducers": "^1.8.5" }, "keywords": [ "dataflow", diff --git a/packages/rstream-gestures/src/index.ts b/packages/rstream-gestures/src/index.ts index 35e0290503..3c439142da 100644 --- a/packages/rstream-gestures/src/index.ts +++ b/packages/rstream-gestures/src/index.ts @@ -24,9 +24,22 @@ export interface GestureEvent { } export interface GestureStreamOpts extends IID { + /** + * Initial zoom value. Default: 1 + */ zoom: number; + /** + * Min zoom value. Default: 0.25 + */ minZoom: number; + /** + * Max zoom value. Default: 4 + */ maxZoom: number; + /** + * Scaling factor for zoom changes. Default: 1 + */ + smooth: number; } /** @@ -57,11 +70,12 @@ export interface GestureStreamOpts extends IID { export function gestureStream(el: Element, opts?: Partial): StreamMerge { let isDown = false, clickPos: number[]; - opts = Object.assign({ + opts = Object.assign({ id: "gestures", zoom: 1, minZoom: 0.25, maxZoom: 4, + smooth: 1 }, opts); let zoom = Math.min(Math.max(opts.zoom, opts.minZoom), opts.maxZoom); return merge({ @@ -108,7 +122,7 @@ export function gestureStream(el: Element, opts?: Partial): S body.delta = [pos[0] - clickPos[0], pos[1] - clickPos[1]]; break; case GestureType.ZOOM: - body.zoom = zoom = Math.min(Math.max(zoom + (e).deltaY, opts.minZoom), opts.maxZoom); + body.zoom = zoom = Math.min(Math.max(zoom + (e).deltaY * opts.smooth, opts.minZoom), opts.maxZoom); break; default: } diff --git a/packages/rstream-graph/CHANGELOG.md b/packages/rstream-graph/CHANGELOG.md index b3977cdcdb..b47e6fc197 100644 --- a/packages/rstream-graph/CHANGELOG.md +++ b/packages/rstream-graph/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [1.0.6](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-graph@1.0.5...@thi.ng/rstream-graph@1.0.6) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/rstream-graph + ## [1.0.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-graph@1.0.4...@thi.ng/rstream-graph@1.0.5) (2018-04-29) diff --git a/packages/rstream-graph/README.md b/packages/rstream-graph/README.md index d03a0b4c5a..c3bd1c23c7 100644 --- a/packages/rstream-graph/README.md +++ b/packages/rstream-graph/README.md @@ -8,11 +8,12 @@ This project is part of the ## About Declarative, reactive dataflow graph construction using -[@thi.ng/rstream](https://github.com/thi-ng/umbrella/tree/master/packages/rstream) -& -[@thi.ng/atom](https://github.com/thi-ng/umbrella/tree/master/packages/atom) +[@thi.ng/rstream](https://github.com/thi-ng/umbrella/tree/master/packages/rstream), +[@thi.ng/atom](https://github.com/thi-ng/umbrella/tree/master/packages/atom) and [@thi.ng/transducers](https://github.com/thi-ng/umbrella/tree/master/packages/transducers) primitives. +Stream subscription types act as graph nodes and attached transducers as graph edges, transforming data for downstream consumers / nodes. Theoretically, allows cycles and is not restricted to DAG topologies, but care must be taken to avoid CPU hogging (user's responsibility). + ## Installation ``` @@ -21,10 +22,14 @@ yarn add @thi.ng/rstream-graph ## Usage examples -A small, fully commented project can be found in the `/examples` folder: +Small(ish), fully commented projects can be found in the `/examples` folder: -[Source](https://github.com/thi-ng/umbrella/tree/master/examples/rstream-dataflow) | -[Live version](http://demo.thi.ng/umbrella/rstream-dataflow) +* **Dataflow circles** - + [Source](https://github.com/thi-ng/umbrella/tree/master/examples/rstream-dataflow), + [Live version](http://demo.thi.ng/umbrella/rstream-dataflow) +* **SVG grid gen** - + [Source](https://github.com/thi-ng/umbrella/tree/master/examples/rstream-dataflow), + [Live version](http://demo.thi.ng/umbrella/rstream-dataflow) More basic: @@ -68,7 +73,7 @@ graph.mul.subscribe({ // result: 90 // changes in subscribed atom values flow through the graph -state.resetIn("a", 10); +setTimeout(() => state.resetIn("a", 10), 1000); // result: 360 ``` diff --git a/packages/rstream-graph/package.json b/packages/rstream-graph/package.json index 4682ffe3a3..5db1288a13 100644 --- a/packages/rstream-graph/package.json +++ b/packages/rstream-graph/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-graph", - "version": "1.0.5", + "version": "1.0.6", "description": "Declarative dataflow graph construction for @thi.ng/rstream", "main": "./index.js", "typings": "./index.d.ts", @@ -16,19 +16,19 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.1", - "@thi.ng/paths": "^1.3.3", - "@thi.ng/resolve-map": "^1.0.4", - "@thi.ng/rstream": "^1.6.4", - "@thi.ng/transducers": "^1.8.4" + "@thi.ng/api": "^2.3.2", + "@thi.ng/paths": "^1.3.4", + "@thi.ng/resolve-map": "^1.0.5", + "@thi.ng/rstream": "^1.6.5", + "@thi.ng/transducers": "^1.8.5" }, "keywords": [ "compute", diff --git a/packages/rstream-log/CHANGELOG.md b/packages/rstream-log/CHANGELOG.md index 1643359ac6..49f2c67147 100644 --- a/packages/rstream-log/CHANGELOG.md +++ b/packages/rstream-log/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [1.0.15](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log@1.0.14...@thi.ng/rstream-log@1.0.15) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/rstream-log + ## [1.0.14](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-log@1.0.13...@thi.ng/rstream-log@1.0.14) (2018-04-29) diff --git a/packages/rstream-log/package.json b/packages/rstream-log/package.json index 64d922c6a2..2638325cf6 100644 --- a/packages/rstream-log/package.json +++ b/packages/rstream-log/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-log", - "version": "1.0.14", + "version": "1.0.15", "description": "Structured, multilevel & hierarchical loggers based on @thi.ng/rstream", "main": "./index.js", "typings": "./index.d.ts", @@ -16,16 +16,16 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.1", - "@thi.ng/rstream": "^1.6.4" + "@thi.ng/api": "^2.3.2", + "@thi.ng/rstream": "^1.6.5" }, "keywords": [ "ES6", diff --git a/packages/rstream-query/CHANGELOG.md b/packages/rstream-query/CHANGELOG.md index 4bba4f0a09..dd2b0d43ca 100644 --- a/packages/rstream-query/CHANGELOG.md +++ b/packages/rstream-query/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [0.3.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-query@0.3.1...@thi.ng/rstream-query@0.3.2) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/rstream-query + ## [0.3.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream-query@0.3.0...@thi.ng/rstream-query@0.3.1) (2018-04-29) diff --git a/packages/rstream-query/package.json b/packages/rstream-query/package.json index 4e7f45e36d..33612fb8f2 100644 --- a/packages/rstream-query/package.json +++ b/packages/rstream-query/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream-query", - "version": "0.3.1", + "version": "0.3.2", "description": "@thi.ng/rstream based triple store & reactive query engine", "main": "./index.js", "typings": "./index.d.ts", @@ -16,19 +16,19 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.1", - "@thi.ng/associative": "^0.4.6", - "@thi.ng/rstream": "^1.6.4", - "@thi.ng/rstream-dot": "^0.2.2", - "@thi.ng/transducers": "^1.8.4" + "@thi.ng/api": "^2.3.2", + "@thi.ng/associative": "^0.5.0", + "@thi.ng/rstream": "^1.6.5", + "@thi.ng/rstream-dot": "^0.2.3", + "@thi.ng/transducers": "^1.8.5" }, "keywords": [ "dataflow", diff --git a/packages/rstream/CHANGELOG.md b/packages/rstream/CHANGELOG.md index fe29baffa3..915bf7382a 100644 --- a/packages/rstream/CHANGELOG.md +++ b/packages/rstream/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [1.6.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream@1.6.4...@thi.ng/rstream@1.6.5) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/rstream + ## [1.6.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/rstream@1.6.3...@thi.ng/rstream@1.6.4) (2018-04-29) diff --git a/packages/rstream/README.md b/packages/rstream/README.md index 684bd63164..70717ce5dc 100644 --- a/packages/rstream/README.md +++ b/packages/rstream/README.md @@ -119,6 +119,13 @@ yarn add @thi.ng/rstream There're several examples using this package in the `/examples` directory of this repo: +### SVG grid gen + +Interactive demo is utilizing the [@thi.ng/rstream-graph](https://github.com/thi-ng/umbrella/tree/master/packages/rstream-graph) support package to compute a SVG grid. + +[Source](https://github.com/thi-ng/umbrella/tree/master/examples/rstream-grid) +| [Live version](http://demo.thi.ng/umbrella/rstream-grid) + ### Declarative dataflow graph This demo is utilizing the [@thi.ng/rstream-graph](https://github.com/thi-ng/umbrella/tree/master/packages/rstream-graph) support package. diff --git a/packages/rstream/package.json b/packages/rstream/package.json index a92dd1cf12..d4036670de 100644 --- a/packages/rstream/package.json +++ b/packages/rstream/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/rstream", - "version": "1.6.4", + "version": "1.6.5", "description": "Reactive multi-tap streams, dataflow & transformation pipeline constructs", "main": "./index.js", "typings": "./index.d.ts", @@ -16,18 +16,18 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.1", - "@thi.ng/associative": "^0.4.6", - "@thi.ng/atom": "^1.3.6", - "@thi.ng/transducers": "^1.8.4" + "@thi.ng/api": "^2.3.2", + "@thi.ng/associative": "^0.5.0", + "@thi.ng/atom": "^1.3.7", + "@thi.ng/transducers": "^1.8.5" }, "keywords": [ "datastructure", diff --git a/packages/transducers/CHANGELOG.md b/packages/transducers/CHANGELOG.md index 58e6ae4278..70a6208f8c 100644 --- a/packages/transducers/CHANGELOG.md +++ b/packages/transducers/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [1.8.5](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers@1.8.4...@thi.ng/transducers@1.8.5) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/transducers + ## [1.8.4](https://github.com/thi-ng/umbrella/compare/@thi.ng/transducers@1.8.3...@thi.ng/transducers@1.8.4) (2018-04-29) diff --git a/packages/transducers/package.json b/packages/transducers/package.json index 4acb3b9d98..752273d519 100644 --- a/packages/transducers/package.json +++ b/packages/transducers/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/transducers", - "version": "1.8.4", + "version": "1.8.5", "description": "Lightweight transducer implementations for ES6 / TypeScript", "main": "./index.js", "typings": "./index.d.ts", @@ -16,15 +16,15 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.3.1" + "@thi.ng/api": "^2.3.2" }, "keywords": [ "ES6", diff --git a/packages/unionstruct/CHANGELOG.md b/packages/unionstruct/CHANGELOG.md index 3b6d255711..4b9644e6e6 100644 --- a/packages/unionstruct/CHANGELOG.md +++ b/packages/unionstruct/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [0.1.9](https://github.com/thi-ng/umbrella/compare/@thi.ng/unionstruct@0.1.8...@thi.ng/unionstruct@0.1.9) (2018-05-09) + + + + +**Note:** Version bump only for package @thi.ng/unionstruct + ## [0.1.8](https://github.com/thi-ng/umbrella/compare/@thi.ng/unionstruct@0.1.7...@thi.ng/unionstruct@0.1.8) (2018-04-01) diff --git a/packages/unionstruct/package.json b/packages/unionstruct/package.json index 8f01e0ea5d..99d64e4a52 100644 --- a/packages/unionstruct/package.json +++ b/packages/unionstruct/package.json @@ -1,6 +1,6 @@ { "name": "@thi.ng/unionstruct", - "version": "0.1.8", + "version": "0.1.9", "description": "C-style struct, union and bitfield views of ArrayBuffers", "main": "./index.js", "typings": "./index.d.ts", @@ -16,12 +16,12 @@ "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "keywords": [ "align", diff --git a/scripts/make-example b/scripts/make-example index 6125010300..ea8cb2bd46 100755 --- a/scripts/make-example +++ b/scripts/make-example @@ -20,15 +20,15 @@ cat << EOF > $MODULE/package.json "author": "$AUTHOR <$EMAIL>", "license": "Apache-2.0", "scripts": { - "build": "webpack --mode production", + "build": "webpack --mode production --display-reasons --display-modules", "start": "webpack-dev-server --open --mode development --devtool inline-source-map" }, "devDependencies": { - "ts-loader": "^4.1.0", - "typescript": "^2.8.1", - "webpack": "^4.4.1", - "webpack-cli": "^2.0.13", - "webpack-dev-server": "^3.1.1" + "ts-loader": "^4.3.0", + "typescript": "^2.8.3", + "webpack": "^4.8.1", + "webpack-cli": "^2.1.3", + "webpack-dev-server": "^3.1.4" }, "dependencies": { "@thi.ng/api": "latest", @@ -64,11 +64,12 @@ module.exports = { extensions: [".ts", ".js"] }, module: { - loaders: [{ test: /\.ts$/, loader: "ts-loader" }] + rules: [ + { test: /\.ts$/, use: "ts-loader" } + ] }, - node: { - process: false, - setImmediate: false + devServer: { + contentBase: "." } }; EOF @@ -83,12 +84,14 @@ EOF echo "writing index.html..." cat << EOF > $MODULE/index.html - + + + + + $1 + diff --git a/scripts/make-module b/scripts/make-module index 4da33d4e44..ce9b426676 100755 --- a/scripts/make-module +++ b/scripts/make-module @@ -43,15 +43,15 @@ cat << EOF > $MODULE/package.json "test": "rm -rf build && tsc -p test && nyc mocha build/test/*.js" }, "devDependencies": { - "@types/mocha": "^5.0.0", - "@types/node": "^9.6.1", - "mocha": "^5.0.5", - "nyc": "^11.6.0", + "@types/mocha": "^5.2.0", + "@types/node": "^10.0.6", + "mocha": "^5.1.1", + "nyc": "^11.7.1", "typedoc": "^0.11.1", - "typescript": "^2.8.1" + "typescript": "^2.8.3" }, "dependencies": { - "@thi.ng/api": "^2.2.0" + "@thi.ng/api": "^2.3.2" }, "keywords": [ "ES6", diff --git a/scripts/upload-examples b/scripts/upload-examples index 76200b5d46..8bb5d74065 100755 --- a/scripts/upload-examples +++ b/scripts/upload-examples @@ -11,6 +11,6 @@ for m in $modules; do echo "processing $name..." gzip -f $m/bundle.js echo "uploading $m..." - aws s3 cp $m/bundle.js.gz s3://demo.thi.ng/umbrella/$name/bundle.js --profile toxi-s3 --acl public-read --content-type application/javascript --content-encoding gzip + aws s3 cp $m/bundle.js.gz s3://demo.thi.ng/umbrella/$name/bundle.js --profile toxi-s3 --acl public-read --content-type "application/javascript; charset=utf-8" --content-encoding gzip aws s3 cp $m/index.html s3://demo.thi.ng/umbrella/$name/ --profile toxi-s3 --acl public-read done diff --git a/yarn.lock b/yarn.lock index d39d110bd1..99de44f279 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,13 +2,20 @@ # yarn lockfile v1 +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + dependencies: + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" + "@sindresorhus/is@^0.7.0": version "0.7.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" "@types/events@*": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@types/events/-/events-1.1.0.tgz#93b1be91f63c184450385272c47b6496fd028e02" + version "1.2.0" + resolved "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz#81a6731ce4df43619e5c8c945383b3e62a89ea86" "@types/fs-extra@5.0.1": version "5.0.1" @@ -44,17 +51,13 @@ version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" -"@types/mocha@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.0.0.tgz#a3014921991066193f6c8e47290d4d598dfd19e6" - -"@types/node@*": - version "9.4.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-9.4.0.tgz#b85a0bcf1e1cc84eb4901b7e96966aedc6f078d1" +"@types/mocha@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.0.tgz#b3c8e69f038835db1a7fdc0b3d879fc50506e29e" -"@types/node@^9.6.1": - version "9.6.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.1.tgz#e2d374ef15b315b48e7efc308fa1a7cd51faa06c" +"@types/node@*", "@types/node@^10.0.6": + version "10.0.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.0.6.tgz#c0bce8e539bf34c1b850c13ff46bead2fecc2e58" "@types/shelljs@0.7.8": version "0.7.8" @@ -67,6 +70,117 @@ version "0.0.3" resolved "https://registry.yarnpkg.com/@types/webgl2/-/webgl2-0.0.3.tgz#51d51a60dc61addcef083ec69535bfc980cda238" +"@webassemblyjs/ast@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.3.1.tgz#3081b4b3ff0af733aa5ba573af998f33711293f8" + dependencies: + "@webassemblyjs/helper-wasm-bytecode" "1.3.1" + "@webassemblyjs/wast-parser" "1.3.1" + webassemblyjs "1.3.1" + +"@webassemblyjs/floating-point-hex-parser@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.3.1.tgz#82646903ba25c3e5d88dec41ecb4e4d770615bfc" + +"@webassemblyjs/helper-buffer@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.3.1.tgz#aa66bb6c274a7e5610d7468f94a2702186713bc6" + +"@webassemblyjs/helper-code-frame@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.3.1.tgz#b5eba87cf37992e8a62c402545aed87dfd02be83" + dependencies: + "@webassemblyjs/wast-printer" "1.3.1" + +"@webassemblyjs/helper-fsm@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.3.1.tgz#297113d09a9541613eaeb265d7f948c5e03eb0a2" + +"@webassemblyjs/helper-wasm-bytecode@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.3.1.tgz#53b0308988e3a0cad836c83fc0801255906608f8" + +"@webassemblyjs/helper-wasm-section@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.3.1.tgz#3df13898e89a376ffb89439d216d9f0001bf9632" + dependencies: + "@webassemblyjs/ast" "1.3.1" + "@webassemblyjs/helper-buffer" "1.3.1" + "@webassemblyjs/helper-wasm-bytecode" "1.3.1" + "@webassemblyjs/wasm-gen" "1.3.1" + +"@webassemblyjs/leb128@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.3.1.tgz#e0cf1c585c72955637eeeabab1e2ab37c12c2338" + dependencies: + leb "^0.3.0" + +"@webassemblyjs/validation@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/validation/-/validation-1.3.1.tgz#ed0129d7ccca7858a3f46e7e47a6889008547a39" + dependencies: + "@webassemblyjs/ast" "1.3.1" + +"@webassemblyjs/wasm-edit@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.3.1.tgz#a16ca4d9a12144b1b28d4e66ad1ad66ec65e479e" + dependencies: + "@webassemblyjs/ast" "1.3.1" + "@webassemblyjs/helper-buffer" "1.3.1" + "@webassemblyjs/helper-wasm-bytecode" "1.3.1" + "@webassemblyjs/helper-wasm-section" "1.3.1" + "@webassemblyjs/wasm-gen" "1.3.1" + "@webassemblyjs/wasm-opt" "1.3.1" + "@webassemblyjs/wasm-parser" "1.3.1" + "@webassemblyjs/wast-printer" "1.3.1" + debug "^3.1.0" + +"@webassemblyjs/wasm-gen@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.3.1.tgz#43263fc56a0570e0564e407bbcd4c02e85167398" + dependencies: + "@webassemblyjs/ast" "1.3.1" + "@webassemblyjs/helper-wasm-bytecode" "1.3.1" + "@webassemblyjs/leb128" "1.3.1" + +"@webassemblyjs/wasm-opt@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.3.1.tgz#172601dcdaaacd6b0b002df1252033198c65eceb" + dependencies: + "@webassemblyjs/ast" "1.3.1" + "@webassemblyjs/helper-buffer" "1.3.1" + "@webassemblyjs/wasm-gen" "1.3.1" + "@webassemblyjs/wasm-parser" "1.3.1" + +"@webassemblyjs/wasm-parser@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.3.1.tgz#76727be6c313a9b775170ed38a126558eed7e8ef" + dependencies: + "@webassemblyjs/ast" "1.3.1" + "@webassemblyjs/helper-wasm-bytecode" "1.3.1" + "@webassemblyjs/leb128" "1.3.1" + "@webassemblyjs/wasm-parser" "1.3.1" + webassemblyjs "1.3.1" + +"@webassemblyjs/wast-parser@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.3.1.tgz#62b6eba09580477868dd394cee3e3f5c64e1f3f8" + dependencies: + "@webassemblyjs/ast" "1.3.1" + "@webassemblyjs/floating-point-hex-parser" "1.3.1" + "@webassemblyjs/helper-code-frame" "1.3.1" + "@webassemblyjs/helper-fsm" "1.3.1" + long "^3.2.0" + webassemblyjs "1.3.1" + +"@webassemblyjs/wast-printer@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.3.1.tgz#3e75b889e6f1ba2dfa854e4436b4287e7687e82c" + dependencies: + "@webassemblyjs/ast" "1.3.1" + "@webassemblyjs/wast-parser" "1.3.1" + long "^3.2.0" + JSONStream@^1.0.4: version "1.3.2" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.2.tgz#c102371b6ec3a7cf3b847ca00c20bb0fce4c6dea" @@ -92,31 +206,25 @@ acorn-dynamic-import@^3.0.0: acorn "^5.0.0" acorn@^5.0.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.4.1.tgz#fdc58d9d17f4a4e98d102ded826a9b9759125102" + version "5.5.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" add-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" ajv-keywords@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.1.0.tgz#ac2b27939c543e95d2c06e7f7f5c27be4aa543be" - -ajv@^4.9.1: - version "4.11.8" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" - dependencies: - co "^4.6.0" - json-stable-stringify "^1.0.1" + version "3.2.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" ajv@^6.1.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.1.1.tgz#978d597fbc2b7d0e5a5c3ddeb149a682f2abfa0e" + version "6.5.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.0.tgz#4c8affdf80887d8f132c9c52ab8a2dc4d0b7b24c" dependencies: - fast-deep-equal "^1.0.0" + fast-deep-equal "^2.0.1" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" + uri-js "^4.2.1" align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" @@ -135,8 +243,8 @@ ansi-escapes@^1.0.0: resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" ansi-escapes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" + version "3.1.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" ansi-html@0.0.7: version "0.0.7" @@ -154,12 +262,6 @@ 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.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" - dependencies: - color-convert "^1.9.0" - ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -203,8 +305,8 @@ are-we-there-yet@~1.1.2: readable-stream "^2.0.6" argparse@^1.0.7: - version "1.0.9" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" dependencies: sprintf-js "~1.0.2" @@ -283,18 +385,6 @@ asn1.js@^4.0.0: inherits "^2.0.1" minimalistic-assert "^1.0.0" -asn1@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - -assert-plus@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" - assert@^1.1.1: version "1.4.1" resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" @@ -327,21 +417,9 @@ async@^2.6.0: dependencies: lodash "^4.14.0" -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - atob@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.0.3.tgz#19c7a760473774468f20b2d2d03372ad7d4cbf5d" - -aws-sign2@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" - -aws4@^1.2.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" + version "2.1.1" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.1.tgz#ae2d5a729477f289d60dd7f96a6314a22dd6c22a" babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: version "6.26.0" @@ -352,8 +430,8 @@ babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: js-tokens "^3.0.2" babel-core@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" + 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" @@ -365,30 +443,17 @@ babel-core@^6.26.0: babel-traverse "^6.26.0" babel-types "^6.26.0" babylon "^6.18.0" - convert-source-map "^1.5.0" - debug "^2.6.8" + 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.7" + private "^0.1.8" slash "^1.0.0" - source-map "^0.5.6" - -babel-generator@^6.18.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5" - 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.6" - trim-right "^1.0.1" + source-map "^0.5.7" -babel-generator@^6.26.0: +babel-generator@^6.18.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: @@ -703,8 +768,8 @@ babel-plugin-transform-es2015-modules-amd@^6.24.1: babel-template "^6.24.1" babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" + 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" @@ -941,16 +1006,16 @@ babylon@^6.17.3, babylon@^6.18.0: resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" babylon@^7.0.0-beta.30: - version "7.0.0-beta.42" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.42.tgz#67cfabcd4f3ec82999d29031ccdea89d0ba99657" + version "7.0.0-beta.46" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.46.tgz#b6ddaba81bbb130313932757ff9c195d527088b6" 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: - version "1.2.3" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.3.tgz#fb13668233d9614cf5fb4bce95a9ba4096cdf801" + 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" @@ -968,12 +1033,6 @@ batch@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" -bcrypt-pbkdf@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" - dependencies: - tweetnacl "^0.14.3" - benchmark@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/benchmark/-/benchmark-2.1.4.tgz#09f3de31c916425d498cc2ee565a0ebf3c2a5629" @@ -993,12 +1052,6 @@ binaryextensions@2: version "2.1.1" resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.1.1.tgz#3209a51ca4a4ad541a3b8d3d6a6d5b83a2485935" -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - dependencies: - inherits "~2.0.0" - bluebird@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" @@ -1033,12 +1086,6 @@ bonjour@^3.5.0: multicast-dns "^6.0.1" multicast-dns-service-types "^1.1.0" -boom@2.x.x: - version "2.10.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" - dependencies: - hoek "2.x.x" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1055,16 +1102,14 @@ braces@^1.8.2: repeat-element "^1.1.2" braces@^2.3.0, braces@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.1.tgz#7086c913b4e5a08dbe37ac0ee6a2500c4ba691bb" + 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" - define-property "^1.0.0" extend-shallow "^2.0.1" fill-range "^4.0.0" isobject "^3.0.1" - kind-of "^6.0.2" repeat-element "^1.1.2" snapdragon "^0.8.1" snapdragon-node "^2.0.1" @@ -1075,17 +1120,13 @@ brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" -browser-stdout@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" - browser-stdout@1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.1.1.tgz#38b7ab55edb806ff2dcda1a7f1620773a477c49f" + 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" @@ -1095,16 +1136,16 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4: safe-buffer "^5.0.1" browserify-cipher@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" + 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.0" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" + 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" @@ -1223,6 +1264,10 @@ caching-transform@^1.0.0: mkdirp "^0.5.1" write-file-atomic "^1.1.4" +call-me-maybe@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + camelcase-keys@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" @@ -1230,6 +1275,14 @@ camelcase-keys@^2.0.0: camelcase "^2.0.0" map-obj "^1.0.0" +camelcase-keys@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" + dependencies: + camelcase "^4.1.0" + map-obj "^2.0.0" + quick-lru "^1.0.0" + camelcase@^1.0.2: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" @@ -1246,10 +1299,6 @@ capture-stack-trace@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - center-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" @@ -1267,17 +1316,9 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.1.tgz#523fe2678aec7b04e8041909292fe8b17059b796" - dependencies: - ansi-styles "^3.2.0" - escape-string-regexp "^1.0.5" - supports-color "^5.2.0" - -chalk@^2.0.1, chalk@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65" +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.2: + 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" @@ -1318,12 +1359,12 @@ chownr@^1.0.1: resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" chrome-trace-event@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-0.1.2.tgz#90f36885d5345a50621332f0717b595883d5d982" + version "0.1.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-0.1.3.tgz#d395af2d31c87b90a716c831fe326f69768ec084" ci-info@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.2.tgz#03561259db48d0474c8bdc90f5b47b068b6bbfb4" + version "1.1.3" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.3.tgz#710193264bb05c77b8c90d02f5aaf22216a667b2" cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" @@ -1391,8 +1432,8 @@ cliui@^3.2.0: wrap-ansi "^2.0.0" cliui@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.0.0.tgz#743d4650e05f36d1ed2575b59638d87322bfbbcc" + version "4.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" dependencies: string-width "^2.1.1" strip-ansi "^4.0.0" @@ -1416,17 +1457,13 @@ clone-stats@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" -clone@^1.0.0: +clone@^1.0.0, clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" -clone@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f" - clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + version "2.1.1" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb" cloneable-readable@^1.0.0: version "1.1.2" @@ -1443,10 +1480,6 @@ cmd-shim@^2.0.2: graceful-fs "^4.1.2" mkdirp "~0.5.0" -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - 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" @@ -1473,8 +1506,8 @@ colors@1.0.3: resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" colors@^1.1.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.2.1.tgz#f4a3d302976aaf042356ba1ade3b1a2c62d9d794" + version "1.2.4" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.2.4.tgz#e0cb41d3e4b20806b3bfc27f4559f01b94bc2f7c" columnify@^1.5.4: version "1.5.4" @@ -1483,12 +1516,6 @@ columnify@^1.5.4: strip-ansi "^3.0.0" wcwidth "^1.0.0" -combined-stream@^1.0.5, combined-stream@~1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" - dependencies: - delayed-stream "~1.0.0" - command-join@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/command-join/-/command-join-2.0.0.tgz#52e8b984f4872d952ff1bdc8b98397d27c7144cf" @@ -1497,7 +1524,11 @@ commander@2.11.0: version "2.11.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" -commander@^2.12.1, commander@~2.13.0: +commander@^2.12.1: + 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" @@ -1538,15 +1569,7 @@ 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.4.10: - version "1.6.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" - dependencies: - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -concat-stream@^1.5.0: +concat-stream@^1.4.10, concat-stream@^1.5.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" dependencies: @@ -1581,70 +1604,70 @@ content-type@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" -conventional-changelog-angular@^1.6.4: - version "1.6.4" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.6.4.tgz#47debaf92b75b0bd6b39fcba8f9c70dd97552be6" +conventional-changelog-angular@^1.6.6: + version "1.6.6" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz#b27f2b315c16d0a1f23eb181309d0e6a4698ea0f" dependencies: compare-func "^1.3.1" - q "^1.4.1" + q "^1.5.1" -conventional-changelog-atom@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-0.2.2.tgz#2c7326a8f24686f51500a290ed897d47612be4c3" +conventional-changelog-atom@^0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-0.2.8.tgz#8037693455990e3256f297320a45fa47ee553a14" dependencies: - q "^1.4.1" + q "^1.5.1" conventional-changelog-cli@^1.3.13: - version "1.3.13" - resolved "https://registry.yarnpkg.com/conventional-changelog-cli/-/conventional-changelog-cli-1.3.13.tgz#8cb5855bc3c684aa8f5dc96e848d1fa5a82eee1e" + version "1.3.22" + resolved "https://registry.yarnpkg.com/conventional-changelog-cli/-/conventional-changelog-cli-1.3.22.tgz#13570fe1728f56f013ff7a88878ff49d5162a405" dependencies: add-stream "^1.0.0" - conventional-changelog "^1.1.15" - lodash "^4.1.0" - meow "^3.7.0" + conventional-changelog "^1.1.24" + lodash "^4.2.1" + meow "^4.0.0" tempfile "^1.1.1" -conventional-changelog-codemirror@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.3.2.tgz#65ef0ab738c40bdf953951edfdb0cb17302606aa" +conventional-changelog-codemirror@^0.3.8: + version "0.3.8" + resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.3.8.tgz#a1982c8291f4ee4d6f2f62817c6b2ecd2c4b7b47" dependencies: - q "^1.4.1" + q "^1.5.1" -conventional-changelog-core@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-2.0.3.tgz#30797b91d5f510188288d5ff54905e5cf4628e3c" +conventional-changelog-core@^2.0.11: + version "2.0.11" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-2.0.11.tgz#19b5fbd55a9697773ed6661f4e32030ed7e30287" dependencies: - conventional-changelog-writer "^3.0.2" - conventional-commits-parser "^2.1.3" - dateformat "^1.0.12" + conventional-changelog-writer "^3.0.9" + conventional-commits-parser "^2.1.7" + dateformat "^3.0.0" get-pkg-repo "^1.0.0" - git-raw-commits "^1.3.2" + git-raw-commits "^1.3.6" git-remote-origin-url "^2.0.0" - git-semver-tags "^1.3.2" - lodash "^4.0.0" + git-semver-tags "^1.3.6" + lodash "^4.2.1" normalize-package-data "^2.3.5" - q "^1.4.1" + q "^1.5.1" read-pkg "^1.1.0" read-pkg-up "^1.0.1" through2 "^2.0.0" -conventional-changelog-ember@^0.3.4: - version "0.3.4" - resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-0.3.4.tgz#76240e769b2f5298e78e85cb4eda69ef2f1358d2" +conventional-changelog-ember@^0.3.12: + version "0.3.12" + resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-0.3.12.tgz#b7d31851756d0fcb49b031dffeb6afa93b202400" dependencies: - q "^1.4.1" + q "^1.5.1" -conventional-changelog-eslint@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-1.0.2.tgz#3f9e6b0b60f98042f6f4dfc85a611a50b5e79cf9" +conventional-changelog-eslint@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-1.0.9.tgz#b13cc7e4b472c819450ede031ff1a75c0e3d07d3" dependencies: - q "^1.4.1" + q "^1.5.1" -conventional-changelog-express@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-0.3.2.tgz#f5af4770a31f147986db548b49f9952fc55e3eb6" +conventional-changelog-express@^0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-0.3.6.tgz#4a6295cb11785059fb09202180d0e59c358b9c2c" dependencies: - q "^1.4.1" + q "^1.5.1" conventional-changelog-jquery@^0.1.0: version "0.1.0" @@ -1658,63 +1681,63 @@ conventional-changelog-jscs@^0.1.0: dependencies: q "^1.4.1" -conventional-changelog-jshint@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-0.3.2.tgz#4d45d2601c944687abceabbc1789323719234cbe" +conventional-changelog-jshint@^0.3.8: + version "0.3.8" + resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-0.3.8.tgz#9051c1ac0767abaf62a31f74d2fe8790e8acc6c8" dependencies: compare-func "^1.3.1" - q "^1.4.1" + q "^1.5.1" -conventional-changelog-preset-loader@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-1.1.4.tgz#5096165f2742a18dc0e33ff2ab9ee08dc9d77f08" +conventional-changelog-preset-loader@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-1.1.8.tgz#40bb0f142cd27d16839ec6c74ee8db418099b373" -conventional-changelog-writer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-3.0.2.tgz#f3f934028379c0cab90aecfcaf009bf8a187ef14" +conventional-changelog-writer@^3.0.9: + version "3.0.9" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-3.0.9.tgz#4aecdfef33ff2a53bb0cf3b8071ce21f0e994634" dependencies: compare-func "^1.3.1" - conventional-commits-filter "^1.1.3" - dateformat "^1.0.11" + conventional-commits-filter "^1.1.6" + dateformat "^3.0.0" handlebars "^4.0.2" json-stringify-safe "^5.0.1" - lodash "^4.0.0" - meow "^3.3.0" - semver "^5.0.1" + lodash "^4.2.1" + meow "^4.0.0" + semver "^5.5.0" split "^1.0.0" through2 "^2.0.0" -conventional-changelog@^1.1.15: - version "1.1.15" - resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-1.1.15.tgz#a5c3d281efb40f61c7d21eeffb19e6f6a8429df0" - dependencies: - conventional-changelog-angular "^1.6.4" - conventional-changelog-atom "^0.2.2" - conventional-changelog-codemirror "^0.3.2" - conventional-changelog-core "^2.0.3" - conventional-changelog-ember "^0.3.4" - conventional-changelog-eslint "^1.0.2" - conventional-changelog-express "^0.3.2" +conventional-changelog@^1.1.24: + version "1.1.24" + resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-1.1.24.tgz#3d94c29c960f5261c002678315b756cdd3d7d1f0" + dependencies: + conventional-changelog-angular "^1.6.6" + conventional-changelog-atom "^0.2.8" + conventional-changelog-codemirror "^0.3.8" + conventional-changelog-core "^2.0.11" + conventional-changelog-ember "^0.3.12" + conventional-changelog-eslint "^1.0.9" + conventional-changelog-express "^0.3.6" conventional-changelog-jquery "^0.1.0" conventional-changelog-jscs "^0.1.0" - conventional-changelog-jshint "^0.3.2" - conventional-changelog-preset-loader "^1.1.4" + conventional-changelog-jshint "^0.3.8" + conventional-changelog-preset-loader "^1.1.8" -conventional-commits-filter@^1.1.1, conventional-commits-filter@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-1.1.3.tgz#5bf591bc4882fc8c9bd329e5a83ca1fa8721d9fb" +conventional-commits-filter@^1.1.1, conventional-commits-filter@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-1.1.6.tgz#4389cd8e58fe89750c0b5fb58f1d7f0cc8ad3831" dependencies: is-subset "^0.1.1" modify-values "^1.0.0" -conventional-commits-parser@^2.1.1, conventional-commits-parser@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-2.1.3.tgz#fbbfcfe4901ccbae63bb3834f982325e0b7c663f" +conventional-commits-parser@^2.1.1, conventional-commits-parser@^2.1.7: + version "2.1.7" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-2.1.7.tgz#eca45ed6140d72ba9722ee4132674d639e644e8e" dependencies: JSONStream "^1.0.4" is-text-path "^1.0.0" lodash "^4.2.1" - meow "^3.3.0" + meow "^4.0.0" split2 "^2.0.0" through2 "^2.0.0" trim-off-newlines "^1.0.0" @@ -1731,7 +1754,7 @@ conventional-recommended-bump@^1.2.1: meow "^3.3.0" object-assign "^4.0.1" -convert-source-map@^1.5.0, convert-source-map@^1.5.1: +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" @@ -1758,21 +1781,17 @@ 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: - version "2.5.3" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e" +core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0: + version "2.5.6" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.6.tgz#0fe6d45bf3cac3ac364a9d72de7576f4eb221b9d" -core-js@^2.4.1, core-js@^2.5.0: - version "2.5.4" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.4.tgz#f2c8bf181f2a80b92f360121429ce63a2f0aeae0" - -core-util-is@1.0.2, core-util-is@~1.0.0: +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.0" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" + 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" @@ -1784,17 +1803,18 @@ create-error-class@^3.0.0: capture-stack-trace "^1.0.0" create-hash@^1.1.0, create-hash@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" + 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" - ripemd160 "^2.0.0" + 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.6" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06" + 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" @@ -1810,7 +1830,7 @@ cross-spawn@^4: lru-cache "^4.0.1" which "^1.2.9" -cross-spawn@^5.0.1, cross-spawn@^5.1.0: +cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" dependencies: @@ -1828,12 +1848,6 @@ cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cryptiles@2.x.x: - version "2.0.5" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" - dependencies: - boom "2.x.x" - crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -1860,6 +1874,12 @@ cyclist@~0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + dargs@^4.0.1: version "4.1.0" resolved "https://registry.yarnpkg.com/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17" @@ -1870,12 +1890,6 @@ dargs@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/dargs/-/dargs-5.1.0.tgz#ec7ea50c78564cd36c9d5ec18f66329fade27829" -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - dependencies: - assert-plus "^1.0.0" - date-fns@^1.27.2: version "1.29.0" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6" @@ -1884,14 +1898,7 @@ date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" -dateformat@^1.0.11, dateformat@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" - dependencies: - get-stdin "^4.0.1" - meow "^3.3.0" - -dateformat@^3.0.2: +dateformat@^3.0.0, dateformat@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" @@ -1899,7 +1906,7 @@ debug-log@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6.8: +debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, 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: @@ -1911,7 +1918,14 @@ debug@3.1.0, debug@^3.1.0: dependencies: ms "2.0.0" -decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: +decamelize-keys@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.0.0, decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -1933,9 +1947,9 @@ deep-equal@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" -deep-extend@^0.4.0, deep-extend@~0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" +deep-extend@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.5.1.tgz#b894a9dd90d3023fbf1c55a394fb858eb2066f1f" default-require-extensions@^1.0.0: version "1.0.0" @@ -1986,10 +2000,6 @@ del@^3.0.0: pify "^3.0.0" rimraf "^2.2.8" -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" @@ -2035,26 +2045,25 @@ detect-node@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127" -diff@3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75" - -diff@3.5.0, diff@^3.3.1, diff@^3.5.0: +diff@3.5.0, diff@^3.2.0, diff@^3.3.1, diff@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" -diff@^3.2.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.4.0.tgz#b1d85507daf3964828de54b37d0d73ba67dda56c" - diffie-hellman@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" + 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" +dir-glob@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" + dependencies: + arrify "^1.0.1" + path-type "^3.0.0" + dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" @@ -2090,21 +2099,15 @@ duplexer@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" -duplexify@^3.4.2, duplexify@^3.5.3: - version "3.5.4" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.4.tgz#4bb46c1796eabebeec4ca9a2e66b808cb7a3d8b4" +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.0.tgz#592903f5d80b38d037220541264d69a198fb3410" dependencies: end-of-stream "^1.0.0" inherits "^2.0.1" readable-stream "^2.0.0" stream-shift "^1.0.0" -ecc-jsbn@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" - dependencies: - jsbn "~0.1.0" - editions@^1.3.3: version "1.3.4" resolved "https://registry.yarnpkg.com/editions/-/editions-1.3.4.tgz#3662cb592347c3168eb8e498a0ff73271d67f50b" @@ -2113,9 +2116,9 @@ ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" -ejs@^2.3.1: - version "2.5.8" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.8.tgz#2ab6954619f225e6193b7ac5f7c39c48fefe4380" +ejs@^2.5.9: + version "2.6.1" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0" elegant-spinner@^1.0.1: version "1.0.1" @@ -2196,6 +2199,29 @@ es-to-primitive@^1.1.1: is-date-object "^1.0.1" is-symbol "^1.0.1" +es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.42" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.42.tgz#8c07dd33af04d5dcd1310b5cef13bea63a89ba8d" + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.1" + next-tick "1" + +es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + dependencies: + d "1" + es5-ext "~0.10.14" + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -2216,11 +2242,10 @@ esprima@^4.0.0, esprima@~4.0.0: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" esrecurse@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" dependencies: estraverse "^4.1.0" - object-assign "^4.0.1" estraverse@^4.1.0, estraverse@^4.1.1: version "4.2.0" @@ -2234,9 +2259,9 @@ etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" -eventemitter3@1.x.x: - version "1.2.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" +eventemitter3@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" events@^1.0.0: version "1.1.1" @@ -2361,13 +2386,9 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@~3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" - external-editor@^2.0.4, external-editor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48" + version "2.2.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" dependencies: chardet "^0.4.0" iconv-lite "^0.4.17" @@ -2392,17 +2413,19 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" -fast-deep-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" +fast-glob@^2.0.2: + version "2.2.1" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.1.tgz#686c2345be88f3741e174add0be6f2e5b6078889" + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.1" + micromatch "^3.1.10" fast-json-stable-stringify@^2.0.0: version "2.0.0" @@ -2438,12 +2461,12 @@ filename-regex@^2.0.0: resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" fill-range@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + version "2.2.4" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" dependencies: is-number "^2.1.0" isobject "^2.0.0" - randomatic "^1.1.3" + randomatic "^3.0.0" repeat-element "^1.1.2" repeat-string "^1.5.2" @@ -2504,8 +2527,8 @@ first-chunk-stream@^2.0.0: readable-stream "^2.0.2" flow-parser@^0.*: - version "0.69.0" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.69.0.tgz#378b5128d6d0b554a8b2f16a4ca3e1ab9649f00e" + version "0.71.0" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.71.0.tgz#da2479b83f9207905b4b17ab0c4e6d17bd505250" flush-write-stream@^1.0.0: version "1.0.3" @@ -2514,6 +2537,12 @@ flush-write-stream@^1.0.0: inherits "^2.0.1" readable-stream "^2.0.4" +follow-redirects@^1.0.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.4.1.tgz#d8120f4518190f55aac65bb6fc7b85fcd666d6aa" + dependencies: + debug "^3.1.0" + for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -2535,18 +2564,6 @@ foreground-child@^1.5.3, foreground-child@^1.5.6: cross-spawn "^4" signal-exit "^3.0.0" -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - -form-data@~2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" - forwarded@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" @@ -2584,6 +2601,12 @@ fs-extra@^5.0.0: jsonfile "^4.0.0" universalify "^0.1.0" +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-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" @@ -2598,28 +2621,11 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" fsevents@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" - dependencies: - nan "^2.3.0" - node-pre-gyp "^0.6.39" - -fstream-ignore@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" - dependencies: - fstream "^1.0.0" - inherits "2" - minimatch "^3.0.0" - -fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: - version "1.0.11" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" + version "1.2.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.3.tgz#08292982e7059f6674c93d8b829c1e8604979ac0" dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" + nan "^2.9.2" + node-pre-gyp "^0.9.0" function-bind@^1.0.2, function-bind@^1.1.1: version "1.1.1" @@ -2668,12 +2674,6 @@ 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" -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - dependencies: - assert-plus "^1.0.0" - gh-got@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/gh-got/-/gh-got-6.0.0.tgz#d74353004c6ec466647520a10bd46f7299d268d0" @@ -2681,13 +2681,13 @@ gh-got@^6.0.0: got "^7.0.0" is-plain-obj "^1.1.0" -git-raw-commits@^1.3.0, git-raw-commits@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.2.tgz#0766c14d33566ba0094869697e13b0eb06147c07" +git-raw-commits@^1.3.0, git-raw-commits@^1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.6.tgz#27c35a32a67777c1ecd412a239a6c19d71b95aff" dependencies: dargs "^4.0.1" lodash.template "^4.0.2" - meow "^3.3.0" + meow "^4.0.0" split2 "^2.0.0" through2 "^2.0.0" @@ -2698,12 +2698,12 @@ git-remote-origin-url@^2.0.0: gitconfiglocal "^1.0.0" pify "^2.3.0" -git-semver-tags@^1.3.0, git-semver-tags@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.3.2.tgz#94afa43c9070ae527a3ab86b978e59ae207803cc" +git-semver-tags@^1.3.0, git-semver-tags@^1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.3.6.tgz#357ea01f7280794fe0927f2806bee6414d2caba5" dependencies: - meow "^3.3.0" - semver "^5.0.1" + meow "^4.0.0" + semver "^5.5.0" gitconfiglocal@^1.0.0: version "1.0.0" @@ -2744,6 +2744,10 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + glob@7.1.2, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" @@ -2787,6 +2791,18 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" +globby@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.1.tgz#b5ad48b8aa80b35b814fc1281ecc851f1d2b5b50" + dependencies: + array-union "^1.0.1" + dir-glob "^2.0.0" + fast-glob "^2.0.2" + glob "^7.1.2" + ignore "^3.3.5" + pify "^3.0.0" + slash "^1.0.0" + got@^6.7.1: version "6.7.1" resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" @@ -2823,8 +2839,8 @@ got@^7.0.0: url-to-options "^1.0.1" got@^8.2.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/got/-/got-8.3.0.tgz#6ba26e75f8a6cc4c6b3eb1fe7ce4fec7abac8533" + version "8.3.1" + resolved "https://registry.yarnpkg.com/got/-/got-8.3.1.tgz#093324403d4d955f5a16a7a8d39955d055ae10ed" dependencies: "@sindresorhus/is" "^0.7.0" cacheable-request "^2.1.1" @@ -2872,17 +2888,6 @@ handlebars@^4.0.2, handlebars@^4.0.3, handlebars@^4.0.6: optionalDependencies: uglify-js "^2.6" -har-schema@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" - -har-validator@~4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" - dependencies: - ajv "^4.9.1" - har-schema "^1.0.5" - has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" @@ -2909,6 +2914,10 @@ has-symbol-support-x@^1.4.1: version "1.4.2" resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + has-to-string-tag-x@^1.2.0: version "1.4.1" resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" @@ -2952,12 +2961,6 @@ has@^1.0.1: dependencies: function-bind "^1.0.2" -hash-base@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" - dependencies: - inherits "^2.0.1" - hash-base@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" @@ -2972,15 +2975,6 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.0" -hawk@3.1.3, hawk@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" - dependencies: - boom "2.x.x" - cryptiles "2.x.x" - hoek "2.x.x" - sntp "1.x.x" - he@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" @@ -2997,10 +2991,6 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoek@2.x.x: - version "2.16.3" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" - 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" @@ -3015,8 +3005,8 @@ homedir-polyfill@^1.0.1: parse-passwd "^1.0.0" hosted-git-info@^2.1.4, hosted-git-info@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" + version "2.6.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" hpack.js@^2.1.6: version "2.1.6" @@ -3058,8 +3048,8 @@ http-errors@~1.6.2: statuses ">= 1.4.0 < 2" http-parser-js@>=0.4.0: - version "0.4.11" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.11.tgz#5b720849c650903c27e521633d94696ee95f3529" + version "0.4.12" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.12.tgz#b9cfbf4a2cf26f0fc34b10ca1489a27771e3474f" http-proxy-middleware@~0.18.0: version "0.18.0" @@ -3071,36 +3061,45 @@ http-proxy-middleware@~0.18.0: micromatch "^3.1.9" http-proxy@^1.16.2: - version "1.16.2" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" - dependencies: - eventemitter3 "1.x.x" - requires-port "1.x.x" - -http-signature@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + version "1.17.0" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" dependencies: - assert-plus "^0.2.0" - jsprim "^1.2.2" - sshpk "^1.7.0" + eventemitter3 "^3.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" 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.19, iconv-lite@^0.4.17: +iconv-lite@0.4.19: version "0.4.19" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" +iconv-lite@^0.4.17, 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.8" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" + version "1.1.11" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.11.tgz#c16384ffe00f5b7835824e67b6f2bd44a5229455" iferr@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" +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" + +ignore@^3.3.5: + version "3.3.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.8.tgz#3f8e9c35d38708a3a7e0e9abb6c73e7ee7707b2b" + import-local@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" @@ -3133,7 +3132,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: +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" @@ -3200,8 +3199,8 @@ into-stream@^3.1.0: p-is-promise "^1.1.0" invariant@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" dependencies: loose-envify "^1.0.0" @@ -3465,10 +3464,6 @@ is-text-path@^1.0.0: dependencies: text-extensions "^1.0.0" -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" @@ -3485,6 +3480,10 @@ 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" +isbinaryfile@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621" + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -3499,10 +3498,6 @@ isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - istanbul-lib-coverage@^1.1.2, istanbul-lib-coverage@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz#f7d8f2e42b97e37fe796114cb0f9d68b5e3a4341" @@ -3544,13 +3539,13 @@ istanbul-lib-source-maps@^1.2.3: rimraf "^2.6.1" source-map "^0.5.3" -istanbul-reports@^1.1.4: - version "1.3.0" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.3.0.tgz#2f322e81e1d9520767597dca3c20a0cce89a3554" +istanbul-reports@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.4.0.tgz#3d7b44b912ecbe7652a603662b962120739646a1" dependencies: handlebars "^4.0.3" -istextorbinary@^2.1.0: +istextorbinary@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-2.2.1.tgz#a5231a08ef6dd22b268d0895084cf8d58b5bec53" dependencies: @@ -3570,16 +3565,12 @@ js-tokens@^3.0.0, js-tokens@^3.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" js-yaml@^3.7.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" + 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" -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - jscodeshift@^0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.4.1.tgz#da91a1c2eccfa03a3387a21d39948e251ced444a" @@ -3633,24 +3624,14 @@ json-buffer@3.0.0: resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" json-parse-better-errors@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz#50183cd1b2d25275de069e9e71b467ac9eab973a" - -json-schema-traverse@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - dependencies: - jsonify "~0.0.0" +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: +json-stringify-safe@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -3668,23 +3649,10 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - jsonparse@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - keyv@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" @@ -3719,21 +3687,19 @@ lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" -lazy-cache@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-2.0.2.tgz#b9190a4f913354694840859f8a8f7084d8822264" - dependencies: - set-getter "^0.1.0" - lcid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" dependencies: invert-kv "^1.0.0" -lerna@^2.10.2: - version "2.10.2" - resolved "https://registry.yarnpkg.com/lerna/-/lerna-2.10.2.tgz#3a0d54d398360fecc5918207c6d7ab68a5443d9f" +leb@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/leb/-/leb-0.3.0.tgz#32bee9fad168328d6aea8522d833f4180eed1da3" + +lerna@^2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-2.11.0.tgz#89b5681e286d388dda5bbbdbbf6b84c8094eff65" dependencies: async "^1.5.0" chalk "^2.1.0" @@ -3887,13 +3853,9 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "~3.0.0" -lodash@^4.0.0, lodash@^4.1.0, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0: - version "4.17.5" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" - -lodash@^4.13.1: - version "4.17.4" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" +lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.10, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0: + version "4.17.10" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" log-symbols@^1.0.2: version "1.0.2" @@ -3919,8 +3881,15 @@ loglevel@^1.4.1: resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa" loglevelnext@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/loglevelnext/-/loglevelnext-1.0.3.tgz#0f69277e73bbbf2cd61b94d82313216bf87ac66e" + version "1.0.5" + resolved "https://registry.yarnpkg.com/loglevelnext/-/loglevelnext-1.0.5.tgz#36fc4f5996d6640f539ff203ba819641680d75a2" + dependencies: + es6-symbol "^3.1.1" + object.assign "^4.1.0" + +long@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/long/-/long-3.2.0.tgz#d821b7138ca1cb581c172990ef14db200b5c474b" longest@^1.0.1: version "1.0.1" @@ -3939,31 +3908,22 @@ loud-rejection@^1.0.0, loud-rejection@^1.6.0: currently-unhandled "^0.4.1" signal-exit "^3.0.0" -lowercase-keys@1.0.0, lowercase-keys@^1.0.0: +lowercase-keys@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" -lru-cache@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" +lowercase-keys@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" -lru-cache@^4.1.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.2.tgz#45234b2e6e2f2b33da125624c4664929a0224c3f" +lru-cache@^4.0.1, lru-cache@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" dependencies: pseudomap "^1.0.2" yallist "^2.1.2" -make-dir@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51" - dependencies: - pify "^3.0.0" - -make-dir@^1.1.0: +make-dir@^1.0.0, make-dir@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.2.0.tgz#6d6a49eead4aae296c53bbf3a1a008bd6c89469b" dependencies: @@ -3977,6 +3937,10 @@ map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" +map-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" + map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" @@ -3987,6 +3951,10 @@ marked@^0.3.17: version "0.3.19" resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz#5d47f709c4c9fc3c216b6d46127280f40b39d790" +math-random@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" + md5-hex@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4" @@ -4008,15 +3976,16 @@ media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" -mem-fs-editor@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/mem-fs-editor/-/mem-fs-editor-3.0.2.tgz#dd0a6eaf2bb8a6b37740067aa549eb530105af9f" +mem-fs-editor@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/mem-fs-editor/-/mem-fs-editor-4.0.2.tgz#55a79b1e824da631254c4c95ba6366602c77af90" dependencies: commondir "^1.0.1" - deep-extend "^0.4.0" - ejs "^2.3.1" + deep-extend "^0.5.1" + ejs "^2.5.9" glob "^7.0.3" - globby "^6.1.0" + globby "^8.0.0" + isbinaryfile "^3.0.2" mkdirp "^0.5.0" multimatch "^2.0.0" rimraf "^2.2.8" @@ -4044,7 +4013,7 @@ memory-fs@^0.4.0, memory-fs@~0.4.1: errno "^0.1.3" readable-stream "^2.0.1" -meow@^3.3.0, meow@^3.7.0: +meow@^3.3.0: version "3.7.0" resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" dependencies: @@ -4059,21 +4028,39 @@ meow@^3.3.0, meow@^3.7.0: redent "^1.0.0" trim-newlines "^1.0.0" +meow@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-4.0.1.tgz#d48598f6f4b1472f35bf6317a95945ace347f975" + dependencies: + camelcase-keys "^4.0.0" + decamelize-keys "^1.0.0" + loud-rejection "^1.0.0" + minimist "^1.1.3" + minimist-options "^3.0.1" + normalize-package-data "^2.3.4" + read-pkg-up "^3.0.0" + redent "^2.0.0" + trim-newlines "^2.0.0" + merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" -merge-source-map@^1.0.2: +merge-source-map@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" dependencies: source-map "^0.6.1" +merge2@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.2.tgz#03212e3da8d86c4d8523cebd6318193414f94e34" + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" -micromatch@^2.3.11, micromatch@^2.3.7: +micromatch@^2.3.7: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" dependencies: @@ -4091,25 +4078,7 @@ micromatch@^2.3.11, micromatch@^2.3.7: parse-glob "^3.0.4" regex-cache "^0.4.2" -micromatch@^3.1.4: - version "3.1.6" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.6.tgz#8d7c043b48156f408ca07a4715182b79b99420bf" - 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.1" - -micromatch@^3.1.8, micromatch@^3.1.9: +micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8, micromatch@^3.1.9: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" dependencies: @@ -4138,7 +4107,7 @@ miller-rabin@^4.0.0: version "1.33.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.7: +mime-types@~2.1.17, mime-types@~2.1.18: version "2.1.18" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" dependencies: @@ -4149,8 +4118,8 @@ mime@1.4.1: resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" mime@^2.1.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.2.2.tgz#6b4c109d88031d7b5c23635f5b923da336d79121" + version "2.3.1" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.3.1.tgz#b1621c54d63b97c47d3cfe7f7215f7d64517c369" mimic-fn@^1.0.0: version "1.2.0" @@ -4161,19 +4130,26 @@ mimic-response@^1.0.0: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.0.tgz#df3d3652a73fded6b9b0b24146e6fd052353458e" minimalistic-assert@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" + 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.0, minimatch@^3.0.2, minimatch@^3.0.4: +minimatch@3.0.4, minimatch@^3.0.0, 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-options@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" @@ -4190,6 +4166,19 @@ minimist@~0.0.1: version "0.0.10" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" +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" + mississippi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" @@ -4212,30 +4201,15 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: +mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: minimist "0.0.8" -mocha@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.0.1.tgz#759b62c836b0732382a62b6b1fb245ec1bc943ac" - dependencies: - browser-stdout "1.3.0" - commander "2.11.0" - debug "3.1.0" - diff "3.3.1" - escape-string-regexp "1.0.5" - glob "7.1.2" - growl "1.10.3" - he "1.1.1" - mkdirp "0.5.1" - supports-color "4.4.0" - -mocha@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.0.5.tgz#e228e3386b9387a4710007a641f127b00be44b52" +mocha@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.1.1.tgz#b774c75609dac05eb48f4d9ba1d827b97fde8a7b" dependencies: browser-stdout "1.3.1" commander "2.11.0" @@ -4245,16 +4219,17 @@ mocha@^5.0.5: glob "7.1.2" growl "1.10.3" he "1.1.1" + minimatch "3.0.4" mkdirp "0.5.1" supports-color "4.4.0" modify-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.0.tgz#e2b6cdeb9ce19f99317a53722f3dbf5df5eaaab2" + version "1.0.1" + resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" moment@^2.6.0: - version "2.20.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.20.1.tgz#d6eb1a46cbcc14a2b2f9434112c1ff8907f313fd" + version "2.22.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.1.tgz#529a2e9bf973f259c9643d237fda84de3a26e8ad" move-concurrently@^1.0.1: version "1.0.1" @@ -4295,9 +4270,9 @@ mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" -nan@^2.3.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" +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" @@ -4316,13 +4291,25 @@ nanomatch@^1.2.9: 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" + negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" neo-async@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.0.tgz#76b1c823130cca26acfbaccc8fbaf0a2fa33b18f" + version "2.5.1" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.1.tgz#acb909e327b1e87ec9ef15f41b8a269512ad41ee" + +next-tick@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" nice-try@^1.0.4: version "1.0.4" @@ -4332,9 +4319,9 @@ node-dir@0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.8.tgz#55fb8deb699070707fb67f91a460f0448294c77d" -node-forge@0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.1.tgz#9da611ea08982f4b94206b3beb4cc9665f20c300" +node-forge@0.7.5: + 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" @@ -4364,21 +4351,20 @@ node-libs-browser@^2.0.0: util "^0.10.3" vm-browserify "0.0.4" -node-pre-gyp@^0.6.39: - version "0.6.39" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" +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" - hawk "3.1.3" 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" - request "2.81.0" rimraf "^2.6.1" semver "^5.3.0" - tar "^2.2.1" - tar-pack "^3.4.0" + tar "^4" nomnom@^1.8.1: version "1.8.1" @@ -4417,6 +4403,17 @@ normalize-url@2.0.1: query-string "^5.0.1" sort-keys "^2.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" + npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -4436,9 +4433,9 @@ 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" -nyc@^11.6.0: - version "11.6.0" - resolved "https://registry.yarnpkg.com/nyc/-/nyc-11.6.0.tgz#d9c7b51ffceb6bba099a4683a6adc1b331b98853" +nyc@^11.7.1, nyc@^11.7.2: + version "11.7.2" + resolved "https://registry.yarnpkg.com/nyc/-/nyc-11.7.2.tgz#15e554f937c216cc91aa08f9a260256ed6fe44b8" dependencies: archy "^1.0.0" arrify "^1.0.1" @@ -4455,23 +4452,19 @@ nyc@^11.6.0: istanbul-lib-instrument "^1.10.0" istanbul-lib-report "^1.1.3" istanbul-lib-source-maps "^1.2.3" - istanbul-reports "^1.1.4" + istanbul-reports "^1.4.0" md5-hex "^1.2.0" - merge-source-map "^1.0.2" - micromatch "^2.3.11" + merge-source-map "^1.1.0" + micromatch "^3.1.10" mkdirp "^0.5.0" resolve-from "^2.0.0" - rimraf "^2.5.4" + rimraf "^2.6.2" signal-exit "^3.0.1" spawn-wrap "^1.4.2" test-exclude "^4.2.0" yargs "11.1.0" yargs-parser "^8.0.0" -oauth-sign@~0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" - object-assign@^4.0.1, object-assign@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -4484,7 +4477,7 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-keys@^1.0.8: +object-keys@^1.0.11, object-keys@^1.0.8: version "1.0.11" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" @@ -4494,6 +4487,15 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + object.omit@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" @@ -4521,7 +4523,7 @@ on-headers@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" -once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: @@ -4597,8 +4599,8 @@ p-cancelable@^0.3.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" p-cancelable@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.4.0.tgz#bcb41d35bf6097fc4367a065b6eb84b9b124eff0" + version "0.4.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" p-each-series@^1.0.0: version "1.0.0" @@ -4676,8 +4678,8 @@ parallel-transform@^1.1.0: readable-stream "^2.1.5" parse-asn1@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" + 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" @@ -4782,8 +4784,8 @@ path-type@^3.0.0: pify "^3.0.0" pbkdf2@^3.0.3: - version "3.0.14" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade" + 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" @@ -4795,10 +4797,6 @@ pegjs@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/pegjs/-/pegjs-0.10.0.tgz#cf8bafae6eddff4b5a7efb185269eaaf4610ddbd" -performance-now@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" - pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -4858,14 +4856,14 @@ preserve@^0.2.0: resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" prettier@^1.5.3: - version "1.11.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.11.1.tgz#61e43fc4cd44e68f2b0dfc2c38cd4bb0fccdcc75" + version "1.12.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.12.1.tgz#c1ad20e803e7749faf905a409d2367e06bbe7325" pretty-bytes@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9" -private@^0.1.6, private@^0.1.7, private@~0.1.5: +private@^0.1.6, private@^0.1.8, private@~0.1.5: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" @@ -4901,8 +4899,8 @@ pseudomap@^1.0.2: resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" public-encrypt@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" + 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" @@ -4918,10 +4916,10 @@ pump@^2.0.0, pump@^2.0.1: once "^1.3.1" pumpify@^1.3.3: - version "1.4.0" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.4.0.tgz#80b7c5df7e24153d03f0e7ac8a05a5d068bd07fb" + version "1.5.0" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.0.tgz#30c905a26c88fa0074927af07256672b474b1c15" dependencies: - duplexify "^3.5.3" + duplexify "^3.6.0" inherits "^2.0.3" pump "^2.0.0" @@ -4929,11 +4927,15 @@ punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" -punycode@^1.2.4, punycode@^1.4.1: +punycode@^1.2.4: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" -q@^1.4.1: +punycode@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" + +q@^1.4.1, q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" @@ -4941,10 +4943,6 @@ qs@6.5.1: version "6.5.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" -qs@~6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" - query-string@^5.0.1: version "5.1.1" resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" @@ -4965,16 +4963,21 @@ querystringify@0.0.x: version "0.0.4" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c" -querystringify@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" +querystringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.0.0.tgz#fa3ed6e68eb15159457c89b37bc6472833195755" -randomatic@^1.1.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" +quick-lru@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" + +randomatic@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.0.0.tgz#d35490030eb4f7578de292ce6dfb04a91a128923" dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: version "2.0.6" @@ -5003,10 +5006,10 @@ raw-body@2.3.2: unpipe "1.0.0" rc@^1.0.1, rc@^1.1.6, rc@^1.1.7: - version "1.2.5" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.5.tgz#275cd687f6e3b36cc756baa26dfee80a790301fd" + version "1.2.7" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.7.tgz#8a10ca30d588d00464360372b890d06dacd02297" dependencies: - deep-extend "~0.4.0" + deep-extend "^0.5.1" ini "~1.3.0" minimist "^1.2.0" strip-json-comments "~2.0.1" @@ -5069,28 +5072,16 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.4, readable-stream@^2.2.9, readable-stream@^2.3.5: - version "2.3.5" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.5.tgz#b4f85003a938cbb6ecbce2a124fb1012bd1a838d" - 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.0.3" - util-deprecate "~1.0.1" - -readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3: - version "2.3.4" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.4.tgz#c946c3f47fa7d8eabc0b6150f4a12f69a4574071" +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.5: + 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.0.3" + string_decoder "~1.1.1" util-deprecate "~1.0.1" readdirp@^2.0.0: @@ -5134,6 +5125,13 @@ redent@^1.0.0: indent-string "^2.1.0" strip-indent "^1.0.1" +redent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" + dependencies: + indent-string "^3.0.0" + strip-indent "^2.0.0" + regenerate@^1.2.1: version "1.3.3" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" @@ -5156,13 +5154,7 @@ regex-cache@^0.4.2: dependencies: is-equal-shallow "^0.1.3" -regex-not@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.0.tgz#42f83e39771622df826b02af176525d6a5f157f9" - dependencies: - extend-shallow "^2.0.1" - -regex-not@^1.0.2: +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: @@ -5226,33 +5218,6 @@ replace-ext@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" -request@2.81.0: - version "2.81.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~4.2.1" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - oauth-sign "~0.8.1" - performance-now "^0.2.0" - qs "~6.4.0" - safe-buffer "^5.0.1" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "^0.6.0" - uuid "^3.0.0" - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -5261,7 +5226,7 @@ require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" -requires-port@1.0.x, requires-port@1.x.x, requires-port@~1.0.0: +requires-port@1.0.x, requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -5291,8 +5256,8 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" resolve@^1.1.6, resolve@^1.3.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36" + version "1.7.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.7.1.tgz#aadd656374fd298aee895bc026b8297418677fd3" dependencies: path-parse "^1.0.5" @@ -5326,7 +5291,7 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: +rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" dependencies: @@ -5337,10 +5302,10 @@ rimraf@~2.2.6: resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" dependencies: - hash-base "^2.0.0" + hash-base "^3.0.0" inherits "^2.0.1" run-async@^2.0.0, run-async@^2.2.0: @@ -5366,21 +5331,33 @@ rx-lite@*, rx-lite@^4.0.8: resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" rxjs@^5.4.2, rxjs@^5.5.2: - version "5.5.8" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.8.tgz#b2b0809a57614ad6254c03d7446dea0d83ca3791" + version "5.5.10" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.10.tgz#fde02d7a614f6c8683d0d1957827f492e09db045" dependencies: symbol-observable "1.0.1" -safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" +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" + +sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + schema-utils@^0.4.4, schema-utils@^0.4.5: version "0.4.5" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e" @@ -5397,10 +5374,10 @@ select-hose@^2.0.0: resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" selfsigned@^1.9.1: - version "1.10.2" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.2.tgz#b4449580d99929b65b10a48389301a6592088758" + version "1.10.3" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.3.tgz#d628ecf9e3735f84e8bafba936b3cf85bea43823" dependencies: - node-forge "0.7.1" + node-forge "0.7.5" "semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: version "5.5.0" @@ -5425,8 +5402,8 @@ send@0.16.2: statuses "~1.4.0" serialize-javascript@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.4.0.tgz#7c958514db6ac2443a8abc062dc9f7886a7f6005" + version "1.5.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe" serve-index@^1.7.2: version "1.9.1" @@ -5453,12 +5430,6 @@ set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" -set-getter@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/set-getter/-/set-getter-0.1.0.tgz#d769c182c9d5a51f409145f2fba82e5e86e80376" - dependencies: - to-object-path "^0.3.0" - 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" @@ -5494,8 +5465,8 @@ setprototypeof@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.10" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.10.tgz#b1fde5cd7d11a5626638a07c604ab909cfa31f9b" + 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" @@ -5511,8 +5482,8 @@ shebang-regex@^1.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" shelljs@^0.8.0, shelljs@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.1.tgz#729e038c413a2254c4078b95ed46e0397154a9f1" + version "0.8.2" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.2.tgz#345b7df7763f4c2340d584abb532c5f752ca9e35" dependencies: glob "^7.0.0" interpret "^1.0.0" @@ -5549,8 +5520,8 @@ snapdragon-util@^3.0.1: kind-of "^3.2.0" snapdragon@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.1.tgz#e12b5487faded3e3dea0ac91e9400bf75b401370" + 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" @@ -5559,13 +5530,7 @@ snapdragon@^0.8.1: map-cache "^0.2.2" source-map "^0.5.6" source-map-resolve "^0.5.0" - use "^2.0.0" - -sntp@1.x.x: - version "1.0.9" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" - dependencies: - hoek "2.x.x" + use "^3.1.0" sockjs-client@1.1.4: version "1.1.4" @@ -5640,19 +5605,27 @@ spawn-wrap@^1.4.2: signal-exit "^3.0.2" which "^1.3.0" -spdx-correct@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" +spdx-correct@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" dependencies: - spdx-license-ids "^1.0.2" + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" -spdx-expression-parse@~1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" +spdx-exceptions@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" -spdx-license-ids@^1.0.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" spdy-transport@^2.0.18: version "2.1.0" @@ -5699,20 +5672,6 @@ sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" -sshpk@^1.7.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - optionalDependencies: - bcrypt-pbkdf "^1.0.0" - ecc-jsbn "~0.1.1" - jsbn "~0.1.0" - tweetnacl "~0.14.0" - ssri@^5.2.4: version "5.3.0" resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" @@ -5749,8 +5708,8 @@ stream-each@^1.1.0: stream-shift "^1.0.0" stream-http@^2.7.2: - version "2.8.0" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.0.tgz#fd86546dac9b1c91aff8fc5d287b98fafb41bc10" + version "2.8.1" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.1.tgz#d0441be1a457a73a733a8a7b53570bebd9ef66a4" dependencies: builtin-status-codes "^3.0.0" inherits "^2.0.1" @@ -5791,16 +5750,12 @@ string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string_decoder@^1.0.0, string_decoder@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" +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" -stringstream@~0.0.4: - version "0.0.5" - resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" - 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" @@ -5844,6 +5799,10 @@ strip-indent@^1.0.1: dependencies: get-stdin "^4.0.1" +strip-indent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + 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" @@ -5875,14 +5834,8 @@ supports-color@^3.1.2: has-flag "^1.0.0" supports-color@^5.1.0, supports-color@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0" - dependencies: - has-flag "^3.0.0" - -supports-color@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.2.0.tgz#b0d5333b1184dd3666cbe5aa0b45c5ac7ac17a4a" + version "5.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" dependencies: has-flag "^3.0.0" @@ -5898,26 +5851,17 @@ tapable@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.0.0.tgz#cbb639d9002eed9c6b5975eb20598d7936f1f9f2" -tar-pack@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" - dependencies: - debug "^2.2.0" - fstream "^1.0.10" - fstream-ignore "^1.0.5" - once "^1.3.3" - readable-stream "^2.1.4" - rimraf "^2.5.1" - tar "^2.2.1" - uid-number "^0.0.6" - -tar@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" +tar@^4: + version "4.4.2" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.2.tgz#60685211ba46b38847b1ae7ee1a24d744a2cd462" dependencies: - block-stream "*" - fstream "^1.0.2" - inherits "2" + 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" temp-dir@^1.0.0: version "1.0.0" @@ -5990,8 +5934,8 @@ timed-out@^4.0.0, timed-out@^4.0.1: resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" timers-browserify@^2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.6.tgz#241e76927d9ca05f4d959819022f5b3664b64bae" + version "2.0.10" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" dependencies: setimmediate "^1.0.4" @@ -6022,15 +5966,7 @@ to-regex-range@^2.1.0: is-number "^3.0.0" repeat-string "^1.6.1" -to-regex@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.1.tgz#15358bee4a2c83bd76377ba1dc049d0f18837aae" - dependencies: - define-property "^0.2.5" - extend-shallow "^2.0.1" - regex-not "^1.0.0" - -to-regex@^3.0.2: +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: @@ -6039,16 +5975,14 @@ to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -tough-cookie@~2.3.0: - version "2.3.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" - dependencies: - punycode "^1.4.1" - trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" +trim-newlines@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" + trim-off-newlines@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" @@ -6057,9 +5991,9 @@ trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" -ts-loader@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-4.2.0.tgz#c380c399fc81f82cad0e3044f9c1f775ecde6efa" +ts-loader@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-4.3.0.tgz#4e3ba172783d1256d3a23bdfadde011a795fae9e" dependencies: chalk "^2.3.0" enhanced-resolve "^4.0.0" @@ -6071,9 +6005,9 @@ 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.9.1: - version "5.9.1" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.9.1.tgz#1255f87a3ff57eb0b0e1f0e610a8b4748046c9ae" +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" @@ -6089,8 +6023,8 @@ tslint@^5.9.1: tsutils "^2.12.1" tsutils@^2.12.1: - version "2.20.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.20.0.tgz#303394064bc80be8ee04e10b8609ae852e9312d3" + version "2.26.2" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.26.2.tgz#a9f9f63434a456a5e0c95a45d9a59181cb32d3bf" dependencies: tslib "^1.8.1" @@ -6098,16 +6032,6 @@ tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - type-is@~1.6.15, type-is@~1.6.16: version "1.6.16" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" @@ -6149,9 +6073,9 @@ typescript@2.7.2: version "2.7.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.7.2.tgz#2d615a1ef4aee4f574425cdff7026edf81919836" -typescript@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.8.1.tgz#6160e4f8f195d5ba81d4876f9c0cc1fbc0820624" +typescript@^2.8.3: + version "2.8.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.8.3.tgz#5d817f9b6f31bb871835f4edf0089f21abe6c170" uglify-es@^3.3.4: version "3.3.9" @@ -6174,8 +6098,8 @@ uglify-to-browserify@~1.0.0: resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" uglifyjs-webpack-plugin@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.4.tgz#5eec941b2e9b8538be0a20fc6eda25b14c7c1043" + version "1.2.5" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.5.tgz#2ef8387c8f1a903ec5e44fa36f9f3cbdcea67641" dependencies: cacache "^10.0.4" find-cache-dir "^1.0.0" @@ -6186,10 +6110,6 @@ uglifyjs-webpack-plugin@^1.2.4: webpack-sources "^1.1.0" worker-farm "^1.5.2" -uid-number@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" - underscore@~1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" @@ -6239,8 +6159,14 @@ unzip-response@^2.0.1: resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" upath@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.0.4.tgz#ee2321ba0a786c50973db043a50b7bcba822361d" + version "1.0.5" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.0.5.tgz#02cab9ecebe95bbec6d5fc2566325725ab6d1a73" + +uri-js@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.1.tgz#4595a80a51f356164e22970df64c7abd6ade9850" + dependencies: + punycode "^2.1.0" urix@^0.1.0: version "0.1.0" @@ -6270,11 +6196,11 @@ url-parse@1.0.x: requires-port "1.0.x" url-parse@^1.1.8: - version "1.2.0" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.2.0.tgz#3a19e8aaa6d023ddd27dcc44cb4fc8f7fec23986" + version "1.4.0" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.0.tgz#6bfdaad60098c7fe06f623e42b22de62de0d3d75" dependencies: - querystringify "~1.0.0" - requires-port "~1.0.0" + querystringify "^2.0.0" + requires-port "^1.0.0" url-to-options@^1.0.1: version "1.0.1" @@ -6287,13 +6213,11 @@ url@^0.11.0: punycode "1.3.2" querystring "0.2.0" -use@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/use/-/use-2.0.2.tgz#ae28a0d72f93bf22422a18a2e379993112dec8e8" +use@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544" dependencies: - define-property "^0.2.5" - isobject "^3.0.0" - lazy-cache "^2.0.2" + kind-of "^6.0.2" util-deprecate@~1.0.1: version "1.0.2" @@ -6313,7 +6237,7 @@ uuid@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" -uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0: +uuid@^3.0.1, uuid@^3.1.0: version "3.2.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" @@ -6322,24 +6246,16 @@ v8-compile-cache@^1.1.2: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-1.1.2.tgz#8d32e4f16974654657e676e0e467a348e89b0dc4" validate-npm-package-license@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + version "3.0.3" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" dependencies: - spdx-correct "~1.0.0" - spdx-expression-parse "~1.0.0" + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - vinyl-file@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/vinyl-file/-/vinyl-file-2.0.0.tgz#a7ebf5ffbefda1b7d18d140fcb07b223efb6751a" @@ -6377,8 +6293,8 @@ vm-browserify@0.0.4: indexof "0.0.1" watchpack@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.5.0.tgz#231e783af830a22f8966f65c4c4bacc814072eed" + version "1.6.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" dependencies: chokidar "^2.0.2" graceful-fs "^4.1.2" @@ -6396,15 +6312,25 @@ wcwidth@^1.0.0: dependencies: defaults "^1.0.3" +webassemblyjs@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/webassemblyjs/-/webassemblyjs-1.3.1.tgz#2bb8ebc724d0fe09b9562ab20e32ce3f5bac5c74" + dependencies: + "@webassemblyjs/ast" "1.3.1" + "@webassemblyjs/validation" "1.3.1" + "@webassemblyjs/wasm-parser" "1.3.1" + "@webassemblyjs/wast-parser" "1.3.1" + long "^3.2.0" + webpack-addons@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/webpack-addons/-/webpack-addons-1.1.5.tgz#2b178dfe873fb6e75e40a819fa5c26e4a9bc837a" dependencies: jscodeshift "^0.4.0" -webpack-cli@^2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-2.0.14.tgz#71d03d8c10547c1dfd674f71ff3b0457c33a74cd" +webpack-cli@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-2.1.3.tgz#65d166851abaa56067ef3f716b02a97ba6bbe84d" dependencies: chalk "^2.3.2" cross-spawn "^6.0.5" @@ -6431,11 +6357,11 @@ webpack-cli@^2.0.14: webpack-addons "^1.1.5" yargs "^11.1.0" yeoman-environment "^2.0.0" - yeoman-generator "^2.0.3" + yeoman-generator "^2.0.4" -webpack-dev-middleware@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.1.2.tgz#be4d0c36a4fa7d69d6904093418514caa9df3a40" +webpack-dev-middleware@3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.1.3.tgz#8b32aa43da9ae79368c1bf1183f2b6cf5e1f39ed" dependencies: loud-rejection "^1.6.0" memory-fs "~0.4.1" @@ -6445,9 +6371,9 @@ webpack-dev-middleware@3.1.2: url-join "^4.0.0" webpack-log "^1.0.1" -webpack-dev-server@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.3.tgz#5cecfd8a9d60c4638284813f1cf9562f04e5c1c5" +webpack-dev-server@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.4.tgz#9a08d13c4addd1e3b6d8ace116e86715094ad5b4" dependencies: ansi-html "0.0.7" array-includes "^3.0.3" @@ -6474,13 +6400,13 @@ webpack-dev-server@^3.1.3: spdy "^3.4.1" strip-ansi "^3.0.0" supports-color "^5.1.0" - webpack-dev-middleware "3.1.2" + webpack-dev-middleware "3.1.3" webpack-log "^1.1.2" yargs "11.0.0" webpack-log@^1.0.1, webpack-log@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-1.1.2.tgz#cdc76016537eed24708dc6aa3d1e52189efee107" + version "1.2.0" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-1.2.0.tgz#a4b34cda6b22b518dbb0ab32e567962d5c72a43d" dependencies: chalk "^2.1.0" log-symbols "^2.1.0" @@ -6494,10 +6420,13 @@ webpack-sources@^1.0.1, webpack-sources@^1.1.0: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.6.0.tgz#363eafa733710eb0ed28c512b2b9b9f5fb01e69b" +webpack@^4.8.1: + version "4.8.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.8.1.tgz#59e38f99f2751c931dd09a035aba7bec4b5f916e" dependencies: + "@webassemblyjs/ast" "1.3.1" + "@webassemblyjs/wasm-edit" "1.3.1" + "@webassemblyjs/wasm-parser" "1.3.1" acorn "^5.0.0" acorn-dynamic-import "^3.0.0" ajv "^6.1.0" @@ -6624,6 +6553,10 @@ yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" +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-parser@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" @@ -6727,25 +6660,25 @@ yeoman-environment@^2.0.0, yeoman-environment@^2.0.5: text-table "^0.2.0" untildify "^3.0.2" -yeoman-generator@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/yeoman-generator/-/yeoman-generator-2.0.3.tgz#19426ed22687ffe05d31526c3f1c2cf67ba768f3" +yeoman-generator@^2.0.4: + version "2.0.5" + resolved "https://registry.yarnpkg.com/yeoman-generator/-/yeoman-generator-2.0.5.tgz#57b0b3474701293cc9ec965288f3400b00887c81" dependencies: async "^2.6.0" chalk "^2.3.0" cli-table "^0.3.1" - cross-spawn "^5.1.0" + cross-spawn "^6.0.5" dargs "^5.1.0" - dateformat "^3.0.2" + dateformat "^3.0.3" debug "^3.1.0" detect-conflict "^1.0.0" error "^7.0.2" find-up "^2.1.0" github-username "^4.0.0" - istextorbinary "^2.1.0" - lodash "^4.17.4" + istextorbinary "^2.2.1" + lodash "^4.17.10" make-dir "^1.1.0" - mem-fs-editor "^3.0.2" + mem-fs-editor "^4.0.0" minimist "^1.2.0" pretty-bytes "^4.0.2" read-chunk "^2.1.0"