diff --git a/.all-contributorsrc b/.all-contributorsrc
new file mode 100644
index 000000000..758cf1e31
--- /dev/null
+++ b/.all-contributorsrc
@@ -0,0 +1,57 @@
+{
+ "projectName": "react-native-dom",
+ "projectOwner": "vincentriemer",
+ "repoType": "github",
+ "repoHost": "https://github.com",
+ "files": [
+ "README.md"
+ ],
+ "imageSize": 100,
+ "commit": false,
+ "contributors": [
+ {
+ "login": "vincentriemer",
+ "name": "Vincent Riemer",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/1398555?v=4",
+ "profile": "http://vincentriemer.com",
+ "contributions": [
+ "code",
+ "bug",
+ "doc",
+ "example",
+ "ideas",
+ "infra",
+ "platform",
+ "talk"
+ ]
+ },
+ {
+ "login": "joegoodall1",
+ "name": "Joe Goodall",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/8888799?v=4",
+ "profile": "https://uk.linkedin.com/in/joegoodall",
+ "contributions": [
+ "doc"
+ ]
+ },
+ {
+ "login": "frosato-ekino",
+ "name": "François Rosato",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/31624379?v=4",
+ "profile": "https://github.com/frosato-ekino",
+ "contributions": [
+ "doc"
+ ]
+ },
+ {
+ "login": "motiz88",
+ "name": "Moti Zilberman",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/2246565?v=4",
+ "profile": "https://github.com/motiz88",
+ "contributions": [
+ "code",
+ "doc"
+ ]
+ }
+ ]
+}
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 000000000..b8eef5391
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,22 @@
+# Change Log
+
+All notable changes to this project will be documented in this file.
+See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+
+
+# [0.2.0](https://github.com/vincentriemer/react-native-dom/compare/v0.1.2...v0.2.0) (2018-06-03)
+
+
+### Bug Fixes
+
+* **flow:** Fix flow errors ([0304c11](https://github.com/vincentriemer/react-native-dom/commit/0304c11))
+* **RCTBridge:** Silence bundle progress parse errors ([62ddca5](https://github.com/vincentriemer/react-native-dom/commit/62ddca5))
+* **RCTPropsAnimatedNode:** Fix iteration over prop config ([cdabeb5](https://github.com/vincentriemer/react-native-dom/commit/cdabeb5))
+
+
+### Features
+
+* **AsyncLocalStorage:** Add clear method to native AsyncLocalStorage ([6e72487](https://github.com/vincentriemer/react-native-dom/commit/6e72487))
+* **RCTImage:** Add Image resizeMode=repeat ([3d441ca](https://github.com/vincentriemer/react-native-dom/commit/3d441ca))
+* **RCTRootView:** Begin work on decoupling the root view from the document's body ([79a02bc](https://github.com/vincentriemer/react-native-dom/commit/79a02bc))
+* **RCTVibration:** Add Vibration API ([9277d56](https://github.com/vincentriemer/react-native-dom/commit/9277d56))
diff --git a/README.md b/README.md
index f98cce3e1..cd9b5708b 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# React Native DOM · [![CircleCI](https://circleci.com/gh/vincentriemer/react-native-dom.svg?style=shield&circle-token=96448c580730a065cb93c0a10af0f85f6c954166)](https://circleci.com/gh/vincentriemer/react-native-dom) [![npm version](https://badge.fury.io/js/react-native-dom.svg)](https://badge.fury.io/js/react-native-dom) [![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lernajs.io/)
+# React Native DOM · [![CircleCI](https://circleci.com/gh/vincentriemer/react-native-dom.svg?style=shield&circle-token=96448c580730a065cb93c0a10af0f85f6c954166)](https://circleci.com/gh/vincentriemer/react-native-dom) [![npm version](https://badge.fury.io/js/react-native-dom.svg)](https://badge.fury.io/js/react-native-dom) [![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lernajs.io/) [![All Contributors](https://img.shields.io/badge/all_contributors-4-orange.svg)](#contributors)
An experimental, comprehensive port of React Native to the web.
@@ -102,6 +102,9 @@ that gets generated from the rnpm plugin).
# Ensure development-speecific code is stripped from the bundle
export NODE_ENV=production
+# Make the dist directory, or the build command below will fail.
+mkdir -p ./dom/dist
+
# Build the main thread bundle
react-native bundle \
--config $(pwd)/rn-cli.config.js \
@@ -184,3 +187,20 @@ like to see.
A live deployment of the RNTester project (used primarily for manually testing
changes) can be found at [rntester.now.sh](https://rntester.now.sh)
+
+## Contributors
+
+Thanks goes to these wonderful people
+([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)):
+
+
+
+
+| [
Vincent Riemer](http://vincentriemer.com)
[π»](https://github.com/vincentriemer/react-native-dom/commits?author=vincentriemer "Code") [π](https://github.com/vincentriemer/react-native-dom/issues?q=author%3Avincentriemer "Bug reports") [π](https://github.com/vincentriemer/react-native-dom/commits?author=vincentriemer "Documentation") [π‘](#example-vincentriemer "Examples") [π€](#ideas-vincentriemer "Ideas, Planning, & Feedback") [π](#infra-vincentriemer "Infrastructure (Hosting, Build-Tools, etc)") [π¦](#platform-vincentriemer "Packaging/porting to new platform") [π’](#talk-vincentriemer "Talks") | [
Joe Goodall](https://uk.linkedin.com/in/joegoodall)
[π](https://github.com/vincentriemer/react-native-dom/commits?author=joegoodall1 "Documentation") | [
François Rosato](https://github.com/frosato-ekino)
[π](https://github.com/vincentriemer/react-native-dom/commits?author=frosato-ekino "Documentation") | [
Moti Zilberman](https://github.com/motiz88)
[π»](https://github.com/vincentriemer/react-native-dom/commits?author=motiz88 "Code") [π](https://github.com/vincentriemer/react-native-dom/commits?author=motiz88 "Documentation") |
+| :---: | :---: | :---: | :---: |
+
+
+
+This project follows the
+[all-contributors](https://github.com/kentcdodds/all-contributors)
+specification. Contributions of any kind welcome!
diff --git a/lerna.json b/lerna.json
index 9caaeadb5..257d7ae74 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,8 +1,10 @@
{
"lerna": "2.4.0",
- "packages": ["packages/*"],
+ "packages": [
+ "packages/*"
+ ],
"npmClient": "yarn",
- "version": "0.1.2",
+ "version": "0.2.0",
"exact": true,
"command": {
"publish": {
diff --git a/package.json b/package.json
index 713c8a499..3a2b1f6e5 100644
--- a/package.json
+++ b/package.json
@@ -23,9 +23,11 @@
"precommit": "lint-staged",
"compile": "lerna run compile --stream",
"compile:components": "lerna run compile --scope rndom-* --stream",
+ "contributors:add": "all-contributors add",
+ "contributors:generate": "all-contributors generate",
"fmt": "prettier --write 'packages/**/*.js'",
"lint": "flow check && eslint packages",
- "release": "lerna publish --conventional-commits --yes",
+ "release": "lerna publish --conventional-commits --yes --cd-version-minor",
"release:canary": "lerna publish --canary --yes --cd-version minor",
"run-examples": "cd packages/react-native-dom && yarn run-examples",
"test": "lerna run test"
@@ -36,6 +38,7 @@
}
},
"devDependencies": {
+ "all-contributors-cli": "^4.11.1",
"babel-eslint": "^8.2.3",
"cz-conventional-changelog": "^2.1.0",
"eslint": "^4.19.1",
diff --git a/packages/react-native-dom/CHANGELOG.md b/packages/react-native-dom/CHANGELOG.md
new file mode 100644
index 000000000..b8eef5391
--- /dev/null
+++ b/packages/react-native-dom/CHANGELOG.md
@@ -0,0 +1,22 @@
+# Change Log
+
+All notable changes to this project will be documented in this file.
+See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+
+
+# [0.2.0](https://github.com/vincentriemer/react-native-dom/compare/v0.1.2...v0.2.0) (2018-06-03)
+
+
+### Bug Fixes
+
+* **flow:** Fix flow errors ([0304c11](https://github.com/vincentriemer/react-native-dom/commit/0304c11))
+* **RCTBridge:** Silence bundle progress parse errors ([62ddca5](https://github.com/vincentriemer/react-native-dom/commit/62ddca5))
+* **RCTPropsAnimatedNode:** Fix iteration over prop config ([cdabeb5](https://github.com/vincentriemer/react-native-dom/commit/cdabeb5))
+
+
+### Features
+
+* **AsyncLocalStorage:** Add clear method to native AsyncLocalStorage ([6e72487](https://github.com/vincentriemer/react-native-dom/commit/6e72487))
+* **RCTImage:** Add Image resizeMode=repeat ([3d441ca](https://github.com/vincentriemer/react-native-dom/commit/3d441ca))
+* **RCTRootView:** Begin work on decoupling the root view from the document's body ([79a02bc](https://github.com/vincentriemer/react-native-dom/commit/79a02bc))
+* **RCTVibration:** Add Vibration API ([9277d56](https://github.com/vincentriemer/react-native-dom/commit/9277d56))
diff --git a/packages/react-native-dom/Libraries/Vibration/Vibration.dom.js b/packages/react-native-dom/Libraries/Vibration/Vibration.dom.js
new file mode 100644
index 000000000..c313893df
--- /dev/null
+++ b/packages/react-native-dom/Libraries/Vibration/Vibration.dom.js
@@ -0,0 +1,114 @@
+/**
+ * Copyright (c) 2015-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ * @providesModule Vibration
+ * @flow
+ * @jsdoc
+ */
+"use strict";
+
+var RCTVibration = require("NativeModules").Vibration;
+var Platform = require("Platform");
+
+/**
+ * Vibration API
+ *
+ * See https://facebook.github.io/react-native/docs/vibration.html
+ */
+
+var _vibrating: boolean = false;
+var _id: number = 0; // _id is necessary to prevent race condition.
+
+function vibrateByPattern(pattern: Array, repeat: boolean = false) {
+ if (_vibrating) {
+ return;
+ }
+ _vibrating = true;
+ if (pattern[0] === 0) {
+ RCTVibration.vibrate();
+ pattern = pattern.slice(1);
+ }
+ if (pattern.length === 0) {
+ _vibrating = false;
+ return;
+ }
+ setTimeout(() => vibrateScheduler(++_id, pattern, repeat, 1), pattern[0]);
+}
+
+function vibrateScheduler(
+ id,
+ pattern: Array,
+ repeat: boolean,
+ nextIndex: number
+) {
+ if (!_vibrating || id !== _id) {
+ return;
+ }
+ RCTVibration.vibrate();
+ if (nextIndex >= pattern.length) {
+ if (repeat) {
+ nextIndex = 0;
+ } else {
+ _vibrating = false;
+ return;
+ }
+ }
+ setTimeout(
+ () => vibrateScheduler(id, pattern, repeat, nextIndex + 1),
+ pattern[nextIndex]
+ );
+}
+
+var Vibration = {
+ /**
+ * Trigger a vibration with specified `pattern`.
+ *
+ * See https://facebook.github.io/react-native/docs/vibration.html#vibrate
+ */
+ vibrate: function(
+ pattern: number | Array = 400,
+ repeat: boolean = false
+ ) {
+ if (Platform.OS === "android" || Platform.OS === "dom") {
+ if (typeof pattern === "number") {
+ RCTVibration.vibrate(pattern);
+ } else if (Array.isArray(pattern)) {
+ if (Platform.OS === "android") {
+ RCTVibration.vibrateByPattern(pattern, repeat ? 0 : -1);
+ } else {
+ RCTVibration.vibrateByPattern(pattern, repeat);
+ }
+ } else {
+ throw new Error("Vibration pattern should be a number or array");
+ }
+ } else {
+ if (_vibrating) {
+ return;
+ }
+ if (typeof pattern === "number") {
+ RCTVibration.vibrate();
+ } else if (Array.isArray(pattern)) {
+ vibrateByPattern(pattern, repeat);
+ } else {
+ throw new Error("Vibration pattern should be a number or array");
+ }
+ }
+ },
+ /**
+ * Stop vibration
+ *
+ * See https://facebook.github.io/react-native/docs/vibration.html#cancel
+ */
+ cancel: function() {
+ if (Platform.OS === "ios") {
+ _vibrating = false;
+ } else {
+ RCTVibration.cancel();
+ }
+ }
+};
+
+module.exports = Vibration;
diff --git a/packages/react-native-dom/RNTester b/packages/react-native-dom/RNTester
index 837d48bcd..13471daf6 160000
--- a/packages/react-native-dom/RNTester
+++ b/packages/react-native-dom/RNTester
@@ -1 +1 @@
-Subproject commit 837d48bcd8f935adff80cbfae2a07843a45cfb1b
+Subproject commit 13471daf6e90e582e482707b5cf642f25f7061ab
diff --git a/packages/react-native-dom/ReactDom/index.js b/packages/react-native-dom/ReactDom/index.js
index 870237ae0..855f50c51 100644
--- a/packages/react-native-dom/ReactDom/index.js
+++ b/packages/react-native-dom/ReactDom/index.js
@@ -22,7 +22,7 @@ import RCTView from "RCTView";
import RCTViewManager from "RCTViewManager";
import RCTEventEmitter from "RCTNativeEventEmitter";
import CustomElement from "CustomElement";
-import RCTEventDispatcher from "RCTEventDispatcher";
+import RCTEventDispatcher, { type RCTEvent } from "RCTEventDispatcher";
import _RCTUIManager from "RCTUIManager";
declare var __DEV__: boolean;
@@ -50,7 +50,7 @@ export {
type RCTUIManager = $await;
// Export type definitions useful for native module development
-export type { RCTUIManager, RCTEventDispatcher, RCTBridge };
+export type { RCTUIManager, RCTEventDispatcher, RCTBridge, RCTEvent };
// Register Built-in Native Modules
const builtInNativeModules: any[] = [
@@ -84,7 +84,8 @@ const builtInNativeModules: any[] = [
import("RCTRedBox"),
import("RCTWebViewManager"),
import("RCTNetworkingNative"),
- import("RCTBlobManager")
+ import("RCTBlobManager"),
+ import("RCTVibration")
];
// Development Specific Native Modules
diff --git a/packages/react-native-dom/ReactDom/modules/RCTVibration.js b/packages/react-native-dom/ReactDom/modules/RCTVibration.js
new file mode 100644
index 000000000..f2a5a8833
--- /dev/null
+++ b/packages/react-native-dom/ReactDom/modules/RCTVibration.js
@@ -0,0 +1,49 @@
+/**
+ * @providesModule RCTVibration
+ * @flow
+ */
+
+import RCTBridge, {
+ RCTFunctionTypeNormal,
+ RCT_EXPORT_METHOD,
+ RCT_EXPORT_MODULE
+} from "RCTBridge";
+
+@RCT_EXPORT_MODULE("RCTVibration")
+class RCTVibration {
+ _intervalHandle: IntervalID;
+
+ @RCT_EXPORT_METHOD(RCTFunctionTypeNormal)
+ vibrateByPattern(pattern: Array, repeat: boolean = false) {
+ if (!navigator.vibrate) {
+ return;
+ }
+ // Keep flow happy re: possible mutations of navigator
+ const vibrate = navigator.vibrate.bind(navigator);
+ vibrate(pattern);
+ clearInterval(this._intervalHandle);
+ if (repeat) {
+ const patternDuration = pattern.reduce((a, b) => a + b, 0);
+ this._intervalHandle = setInterval(
+ () => vibrate(pattern),
+ patternDuration
+ );
+ }
+ }
+
+ @RCT_EXPORT_METHOD(RCTFunctionTypeNormal)
+ vibrate(duration: number) {
+ if (!navigator.vibrate) {
+ return;
+ }
+ navigator.vibrate(duration);
+ clearInterval(this._intervalHandle);
+ }
+
+ @RCT_EXPORT_METHOD(RCTFunctionTypeNormal)
+ cancel() {
+ this.vibrate(0);
+ }
+}
+
+export default RCTVibration;
diff --git a/packages/react-native-dom/ReactDom/views/Image/RCTImageView.js b/packages/react-native-dom/ReactDom/views/Image/RCTImageView.js
index 12097675e..c5d6510bd 100644
--- a/packages/react-native-dom/ReactDom/views/Image/RCTImageView.js
+++ b/packages/react-native-dom/ReactDom/views/Image/RCTImageView.js
@@ -53,6 +53,11 @@ class RCTImageView extends RCTView {
_blurRadius: ?number;
_tintColor: ?string;
+ _tile: ?boolean; // resizeMode === "repeat"
+ _src: ?string; // Used to set the tile image
+ _imageWidth: ?number; // Used to calculate the tile image's scale factor
+ _imageHeight: ?number; // Used to calculate the tile image's scale factor
+
constructor(bridge: RCTBridge) {
super(bridge);
@@ -108,6 +113,50 @@ class RCTImageView extends RCTView {
this.imageElementAlt.style.filter = filterStrings.join(" ");
}
+ updateTile() {
+ let style;
+
+ if (this._tile) {
+ const {
+ frameSize: { width: frameWidth, height: frameHeight },
+ _src: src,
+ _imageWidth: imageWidth,
+ _imageHeight: imageHeight
+ } = this;
+
+ if (!frameWidth || !frameHeight || !imageWidth || !imageHeight || !src) {
+ return;
+ }
+
+ const scaleDownFactor = Math.min(
+ 1,
+ frameWidth / imageWidth,
+ frameHeight / imageHeight
+ );
+
+ style = {
+ backgroundImage: `url(${encodeURI(src)})`,
+ backgroundSize: `
+ ${scaleDownFactor * imageWidth}px
+ ${scaleDownFactor * imageHeight}px
+ `,
+ backgroundRepeat: "repeat",
+ backgroundPosition: "0 0",
+ objectPosition: `${-imageWidth - 1}px ${-imageHeight - 1}px`
+ };
+ } else {
+ style = {
+ backgroundImage: "",
+ backgroundSize: "",
+ backgroundRepeat: "",
+ backgroundPosition: "",
+ objectPosition: ""
+ };
+ }
+ Object.assign(this.imageElement.style, style);
+ Object.assign(this.imageElementAlt.style, style);
+ }
+
forceRasterization() {
const mountedImage = this.mountedImage;
if (this._tintColor != null && mountedImage != null) {
@@ -132,6 +181,7 @@ class RCTImageView extends RCTView {
case "cover":
outputValue = value;
break;
+ case "repeat":
case "center":
outputValue = "scale-down";
break;
@@ -149,6 +199,9 @@ class RCTImageView extends RCTView {
Object.assign(this.imageElementAlt.style, {
objectFit: outputValue
});
+
+ this._tile = value === "repeat";
+ this.updateTile();
}
set blurRadius(value: ?number) {
@@ -256,6 +309,9 @@ class RCTImageView extends RCTView {
: this.imageElement;
pendingImage.src = image.src;
+ this._src = pendingImage.src;
+ // We call updateTile() below so can skip it here
+
// $FlowFixMe
if (typeof pendingImage.decode === "function") {
return pendingImage.decode().then(() => pendingImage);
@@ -263,6 +319,11 @@ class RCTImageView extends RCTView {
return pendingImage;
})
.then((image: HTMLImageElement) => {
+ this._imageWidth = image.width;
+ this._imageHeight = image.height;
+
+ this.updateTile();
+
this.mountedImage && this.mountedImage.remove();
this.childContainer.appendChild(image);
diff --git a/packages/react-native-dom/package.json b/packages/react-native-dom/package.json
index d492a6197..6d7a11e1b 100644
--- a/packages/react-native-dom/package.json
+++ b/packages/react-native-dom/package.json
@@ -1,6 +1,6 @@
{
"name": "react-native-dom",
- "version": "0.1.2",
+ "version": "0.2.0",
"homepage": "https://github.com/vincentriemer/react-native-dom",
"bugs": {
"url": "https://github.com/vincentriemer/react-native-dom/issues"
@@ -11,7 +11,12 @@
"email": "vincentriemer+rndom@gmail.com",
"url": "https://vincentriemer.com"
},
- "files": ["lib", "Libraries", "local-cli", "flow-typed"],
+ "files": [
+ "lib",
+ "Libraries",
+ "local-cli",
+ "flow-typed"
+ ],
"main": "lib/index.js",
"repository": {
"type": "git",
@@ -19,12 +24,9 @@
},
"scripts": {
"prebuild:rntester": "rimraf dist && mkdir -p dist",
- "build:rntester":
- "yarn run build:rntester:client && yarn run build:rntester:bundle && cp ./RNTester/js/index.html ./dist/index.html",
- "build:rntester:bundle":
- "react-native bundle --config $(pwd)/rn-cli.config.js --dev false --entry-file ./RNTester/js/RNTesterApp.dom.js --bundle-output ./dist/RNTesterApp.dom.bundle --platform dom --assets-dest ./dist --reset-cache",
- "build:rntester:client":
- "react-native bundle --config $(pwd)/rn-cli.config.js --dev false --entry-file ./RNTester/js/client.js --bundle-output ./dist/client.bundle --platform dom --reset-cache",
+ "build:rntester": "yarn run build:rntester:client && yarn run build:rntester:bundle && cp ./RNTester/js/index.html ./dist/index.html",
+ "build:rntester:bundle": "react-native bundle --config $(pwd)/rn-cli.config.js --dev false --entry-file ./RNTester/js/RNTesterApp.dom.js --bundle-output ./dist/RNTesterApp.dom.bundle --platform dom --assets-dest ./dist --reset-cache",
+ "build:rntester:client": "react-native bundle --config $(pwd)/rn-cli.config.js --dev false --entry-file ./RNTester/js/client.js --bundle-output ./dist/client.bundle --platform dom --reset-cache",
"precompile": "rimraf lib",
"compile": "BABEL_ENV=lib babel ReactDom --out-dir lib --source-maps",
"postcompile": "flow-copy-source ReactDom lib",
@@ -36,10 +38,16 @@
"jest": {
"haste": {
"defaultPlatform": "dom",
- "providesModuleNodeModules": ["react-native-dom"],
- "platforms": ["dom"]
+ "providesModuleNodeModules": [
+ "react-native-dom"
+ ],
+ "platforms": [
+ "dom"
+ ]
},
- "roots": ["/Libraries/"]
+ "roots": [
+ "/Libraries/"
+ ]
},
"dependencies": {
"@webcomponents/webcomponentsjs": "^2.0.0",
diff --git a/yarn.lock b/yarn.lock
index 511123e3b..92d89fdc5 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -626,6 +626,18 @@ align-text@^0.1.1, align-text@^0.1.3:
longest "^1.0.1"
repeat-string "^1.5.2"
+all-contributors-cli@^4.11.1:
+ version "4.11.1"
+ resolved "https://registry.yarnpkg.com/all-contributors-cli/-/all-contributors-cli-4.11.1.tgz#8e4d28a69bb60006b72d53758177a0c7b8a20f19"
+ dependencies:
+ async "^2.0.0-rc.1"
+ chalk "^2.3.0"
+ inquirer "^4.0.0"
+ lodash "^4.11.2"
+ pify "^3.0.0"
+ request "^2.72.0"
+ yargs "^10.0.3"
+
amdefine@>=0.0.4:
version "1.0.1"
resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
@@ -893,7 +905,7 @@ async@^1.4.0, async@^1.4.2, async@^1.5.0:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
-async@^2.1.4, async@^2.4.0:
+async@^2.0.0-rc.1, async@^2.1.4, async@^2.4.0:
version "2.6.1"
resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610"
dependencies:
@@ -2059,7 +2071,7 @@ chalk@2.4.0:
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
-chalk@2.4.1, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1:
+chalk@2.4.1, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e"
dependencies:
@@ -3520,7 +3532,7 @@ external-editor@^1.1.0:
spawn-sync "^1.0.15"
tmp "^0.0.29"
-external-editor@^2.0.4:
+external-editor@^2.0.4, external-editor@^2.1.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5"
dependencies:
@@ -4607,6 +4619,25 @@ inquirer@^3.0.6, inquirer@^3.2.2:
strip-ansi "^4.0.0"
through "^2.3.6"
+inquirer@^4.0.0:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-4.0.2.tgz#cc678b4cbc0e183a3500cc63395831ec956ab0a3"
+ dependencies:
+ ansi-escapes "^3.0.0"
+ chalk "^2.0.0"
+ cli-cursor "^2.1.0"
+ cli-width "^2.0.0"
+ external-editor "^2.1.0"
+ figures "^2.0.0"
+ lodash "^4.3.0"
+ mute-stream "0.0.7"
+ run-async "^2.2.0"
+ rx-lite "^4.0.8"
+ rx-lite-aggregates "^4.0.8"
+ string-width "^2.1.0"
+ strip-ansi "^4.0.0"
+ through "^2.3.6"
+
interpret@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614"
@@ -5806,7 +5837,7 @@ lodash@^3.1.0, lodash@^3.2.0, lodash@^3.3.1, lodash@^3.5.0:
version "3.10.1"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
-lodash@^4.11.1, lodash@^4.17.10, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.6.1:
+lodash@^4.11.1, lodash@^4.11.2, lodash@^4.17.10, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.6.1:
version "4.17.10"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7"
@@ -7410,7 +7441,11 @@ replace-ext@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924"
+<<<<<<< .merge_file_WPKO4l
request@2.x.x, request@^2.79.0, request@^2.83.0:
+=======
+request@2.x.x, request@^2.72.0, request@^2.79.0:
+>>>>>>> .merge_file_TdyDrY
version "2.87.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e"
dependencies:
@@ -9102,12 +9137,35 @@ yargs-parser@^7.0.0:
dependencies:
camelcase "^4.1.0"
+yargs-parser@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950"
+ dependencies:
+ camelcase "^4.1.0"
+
yargs-parser@^9.0.2:
version "9.0.2"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077"
dependencies:
camelcase "^4.1.0"
+yargs@^10.0.3:
+ version "10.1.2"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5"
+ dependencies:
+ cliui "^4.0.0"
+ decamelize "^1.1.1"
+ find-up "^2.1.0"
+ get-caller-file "^1.0.1"
+ os-locale "^2.0.0"
+ require-directory "^2.1.1"
+ require-main-filename "^1.0.1"
+ set-blocking "^2.0.0"
+ string-width "^2.0.0"
+ which-module "^2.0.0"
+ y18n "^3.2.1"
+ yargs-parser "^8.1.0"
+
yargs@^11.0.0:
version "11.0.0"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.0.0.tgz#c052931006c5eee74610e5fc0354bedfd08a201b"