├── .gitignore
├── README.md
├── SUMMARY.md
├── basic
├── basic_concepts.md
├── images
│ ├── blob.png
│ ├── branch1.png
│ ├── branch2.png
│ ├── branch3.png
│ ├── commit_process1.png
│ ├── commit_process2.png
│ ├── commits.png
│ ├── git_vs_svn.png
│ ├── gitflow.png
│ ├── index.png
│ ├── tag.png
│ ├── tree.png
│ └── tree2.png
└── svn.md
├── branch
├── centralized.md
├── compare.md
├── eim.md
├── feature.md
├── fork.md
├── gitflow.md
├── images
│ ├── bare-repo.png
│ ├── bug_branch.png
│ ├── centralized1.png
│ ├── clone.png
│ ├── commit1.png
│ ├── commit2.png
│ ├── commit3.png
│ ├── feature_branch.png
│ ├── feature_flow.png
│ ├── fork.png
│ ├── fork2.png
│ ├── fork_example1.png
│ ├── fork_example2.png
│ ├── fork_example3.png
│ ├── fork_example4.png
│ ├── git_flow.png
│ ├── history_branch.png
│ ├── pr1.png
│ ├── pr2.png
│ ├── pr3.png
│ ├── pull.png
│ ├── pull1.png
│ ├── push.png
│ ├── push1.png
│ ├── release_branch.png
│ └── workflow.png
└── operation.md
├── charts.key
├── further
├── learn.md
└── tools.md
├── package.json
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .DS_Store
3 | _book
4 | _temp
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 佳米科技 Git 指南
2 |
3 | 本指南主要介绍如何利用 git 作为版本管理库,来提高开发协作的效率。 主要涉及的话题有基本使用,分支管理,使用规范以及常见的问题。
4 |
--------------------------------------------------------------------------------
/SUMMARY.md:
--------------------------------------------------------------------------------
1 | # Summary
2 |
3 | * [介绍](README.md)
4 |
5 | ### 基础
6 |
7 | * [Getting started]()
8 | * [Git 与 SVN](basic/svn.md)
9 | * [Git 基本概念](basic/basic_concepts.md)
10 | * [配置/ssh 认证]()
11 | * 基本命令
12 | * [初始化]()
13 | * [克隆]()
14 | * [提交]()
15 | * [文件忽略]()
16 | * [tag]()
17 | * [拉取和推送]()
18 | * [远程版本库管理]()
19 | * [删除和重命名]()
20 | * [分支切换/创建/合并]()
21 | * [撤销和恢复]()
22 | * [提交记录操作]()
23 | * [解决冲突]()
24 |
25 | ### 分支管理
26 |
27 | * [分支操作](branch/operation.md)
28 | * [工作流](branch/compare.md)
29 | * [集中式的工作流](branch/centralized.md)
30 | * [功能分支工作流](branch/feature.md)
31 | * [GitFlow 工作流](branch/gitflow.md)
32 | * [Fork 工作流](branch/fork.md)
33 | * [EIM 组团队工作流规范](branch/eim.md)
34 |
35 | ### 规范
36 |
37 | * [命名规范]()
38 | * [如何书写提交信息]()
39 |
40 | ### 技巧
41 |
42 | * [保护现场]()
43 | * [子系统集成-gitsubmodule]()
44 | * [提高 Git Clone 速度]()
45 | * [git 钩子与持续集成]()
46 |
47 | ### 常见问题
48 |
49 | ### 扩展
50 |
51 | * [学习资料](further/learn.md)
52 | * [工具/扩展](further/tools.md)
53 |
--------------------------------------------------------------------------------
/basic/basic_concepts.md:
--------------------------------------------------------------------------------
1 | # Git 基本概念
2 |
3 | 既然 git 那么优秀, 空说无凭. 下面介绍 Git 的一些基本原理, 这是一块很有价值的地方.
4 |
5 | 通过理解 Git 的基本原理, 我们可以见证 Git 为什么比别的 VCS 要高效和轻量. 这也有利于我们快速上手,更有效地利用这个工具, 提高开发协作的效率
6 |
7 | ## 1. 基本概念
8 |
9 | 在我们调用`git init`后项目的根目录就会出现一个`.git`目录,这个目录包含了所有版本库的信息。
10 |
11 | ```shell
12 | hello
13 | .git
14 | ├─hooks -- 定义钩子
15 | │ ├─pre-commit
16 | │ ├─pre-commit.sample
17 | │ ├─post-commit
18 | │ ├─post-commit.sample
19 | │ └─...
20 | ├─info
21 | │ └─exclude
22 | ├─objects -- 对象库
23 | │ ├─....
24 | │ ├─info
25 | │ └─pack -- 对象打包压缩文件
26 | │─refs -- 对象引用
27 | │ ├─heads
28 | │ ├─remotes
29 | │ └─tags
30 | ├─HEAD
31 | ├─config
32 | ├─desciption
33 | ├─index -- 索引
34 | └─...
35 | ```
36 |
37 | Git 主要有两种数据结构:`对象库(Object Store)`和`索引(Index)`。
38 |
39 | 在 Git 中,每个文件、目录、提交以及标签都使用“对象”来进行存储。
40 |
41 | ### 1.1 文件对象
42 |
43 | 文件使用块(blob)进行表示, 块是一个二进制的序列. Git 的一个关键的概念就是`“内容驱动的”`,而不是像 SVN 基于文件和目录的布局,
44 | Git 追踪的是内容而不是文件。块中不会存储任何关于文件的元信息, 这些元信息在`目录对象`中描述。
45 |
46 | 所以, 如果两个文件的内容完全一致,Git 只会使用一个块进行存储。这样可以节省存储空间. 例如:
47 |
48 | ```shell
49 | # 创建两个内容一模一样的文件
50 | $ echo "hello world" > foo.txt
51 | $ echo "hello world" > bar.txt
52 |
53 | # 在没有添加到索引(暂存区)或者版本库之前,Git是不会创建这些对象, 关于工作区/索引版本库
54 | # 的概念, 在下文中描述. 现在将文件添加到索引(索引可以理解为提交到版本库之前的暂存区)
55 | $ git add foo.txt bar.txt
56 |
57 | # 列出索引区中创建的文件对象
58 | # ls-files命令类似于`ls`命令
59 | $ git ls-files --stage
60 | 100644 80993781b54ed1b81e47a31e6427940c1a9deafb 0 bar.txt
61 | 100644 80993781b54ed1b81e47a31e6427940c1a9deafb 0 foo.txt
62 | # 文件权限 SHA1 散列 文件名
63 |
64 | # 可以看出文件块已经添加到git对象库中;
65 | # git使用SHA1的第一个字节作为目录,来避免把很多文件放在同一个目录中(一些文件系统会变卡)
66 | # git 使用zlib压缩存储这些对象
67 | $ tree .git/objects
68 | ├─80
69 | │ └─993781b54ed1b81e47a31e6427940c1a9deafb
70 | ├─info
71 | └─pack
72 | ```
73 |
74 | 从上面的执行结果可以看出,`foo.txt`和`bar.txt`的散列值是一样的。对于 sha1 编码来说,只要输入的内容一致, 输出的内容也是一致的。所以也说明这两个文件是共享同一个块的。
75 |
76 | 
77 |
78 | > 关于 SHA1 散列值:
79 | >
80 | > 上述的 SHA1 散列值可以认为是`对象ID`,通常表示为一个 40 位的 16 进制字符串. Git 会对`对象的内容`应用 SHA1 得到.
81 | > 对于`文件`来说应用的内容是`块`,即文件的二进制表示;
82 | > 对于`目录`来说, 应用的内容是`目录信息`;
83 | > 对于`提交`来说,应用的内容是提交信息、目录对象、作者、提交时间、父提交等元数据;
84 | > 对于`标签`来说, 应用的内容是标签标注和关联的提交.
85 | > 总的来说这个散列值可以唯一地标志一个`对象`. SHA1 值在 git 的命令用的非常广泛, 但是如果要输入完整的
86 | > SHA1 值是非常麻烦的事情,git 支持输入 SHA1 值的前缀。如下面的 `cat-file` 命令所示
87 |
88 | 我们可以使用`cat-file`命令来查看对象的内容。`cat-file`类似于`cat`命令:
89 |
90 | ```shell
91 | # 查看对象类型;输入SHA1值的前缀,只要不冲突即可
92 | $ git cat-file -t 8099378
93 | blob
94 |
95 | # 查看对象的内容
96 | $ git cat-file -p 8099378
97 | hello world
98 | ```
99 |
100 | 每一个文件的版本都会使用一个块进行表示. 每当文件变动,Git 就会为这个文件(完整文件)计算一个新的 SHA1 值. 并将完整文件的内容保存为块。看到这里, 你可能像我一样会有疑问,为什么 git 不保存差异? 而是保存完整的文件副本,这不是浪费空间吗?
101 |
102 | ```shell
103 | # 追加一行到foo.txt
104 | $ echo "hello gzb" >> foo.txt
105 | $ git add foo.txt
106 | # 我们看到foo.txt的SHA1已经变化了, bar.txt依旧引用80993
107 | $ git ls-files --stage
108 | 100644 80993781b54ed1b81e47a31e6427940c1a9deafb 0 bar.txt
109 | 100644 aa1284b52c5fa5beca04b102d342261d01db289d 0 foo.txt
110 | $ git cat-file -s aa1284
111 | 46 # foo.txt 文件大小
112 | $ git cat-file -s 889937
113 | 28 # bar.txt 文件大小
114 | ```
115 |
116 | 实际上,Git 会这么做, 只不过不是马上做。上面存储对象格式称为`松散格式(loose)`. 像编程语言的垃圾回收机制一样, Git
117 | 会时不时地将多个对象`打包(pack)`成为一个"`包文件(packfile)`", 以节省空间和提高效率。
118 |
119 | Git 首先会定位内容非常相似的`块`, 为他们之一存储整个内容, 之后再计算相似文件之间的差异,并只存储差异。例如上面的 foo.txt 和
120 | bar.txt 文件,git 可能会存储整个 foo.txt 的内容,然后再单独存储两者之间的差异.
121 |
122 | 相对于 SVN 这类基于文件的 VCS,Git 内容驱动的方式,更能有效地节省空间,因为块是全局的。而 SVN 只能为同一目录的同名文件计算差异.
123 |
124 | > 当版本库中保存了太多`松散对象`, 或者你向远程服务器推送, 以及手动调用`git gc`命令时,git 会进行打包。比如
125 | >
126 | > ```shell
127 | > $ git push origin master
128 | > Counting objects: 20, done.
129 | > Delta compression using up to 4 threads.
130 | > Compressing objects: 100% (20/20), done.
131 | > Writing objects: 100% (20/20), 1.66 KiB | 340.00 KiB/s, done.
132 | > Total 20 (delta 17), reused 0 (delta 0)
133 | > To ssh://code.ejiahe.com:25522/WEB/sms2.0-client.git
134 | > 95c66b1..9c9d863 master -> master
135 | > ```
136 |
137 | ```shell
138 | # 垃圾回收; 打包
139 | $ git gc
140 |
141 | # 我们发现之前的两个对象文件都不见的。因为他们被压缩打包进了包文件
142 | # .pack 文件包含了所有从文件系统移除的对象
143 | # .idx 包含了这些对象在.pack包文件中的偏移信息. 可以用于快速定位一个指定的对象
144 | $ tree .git/objects
145 | ├─info
146 | └─pack
147 | ├─pack-41941a802863135106a20d7f3663ed393ed33b3a.idx
148 | └─pack-41941a802863135106a20d7f3663ed393ed33b3a.pack
149 |
150 | # 可以通过verify-pack 命令来查看索引文件. 这里举一个其他项目的例子
151 | $ git verify-pack -v .\.git\objects\pack\pack-xxx.idx
152 | 22e70521f125689c969e1e94a9ca3fcb61b579ed blob 20 33 3546
153 | 41ec12446a664f43df51df2d953c5c04b34b265e blob 872 511 3579
154 | 1038dc0ce035045626b2efa60b16883a3507ad5b blob 80 95 4090 1 41ec12446a664f43df51df2d953c5c04b34b265e
155 |
156 | # 1038dc为差异内容,其完整内容是41ec12.
157 | # 在git完整内容一般是最新文件内容。 因为最新文件内容访问的频率较高
158 | ```
159 |
160 | ### 1.2 目录对象
161 |
162 | 上面大概讲述了一个文件在 git 中的存储方式。文件的元信息就存储在一个称为"`目录树(tree)`"的对象中。估计你已经想到这个对象会包含什么内容:
163 |
164 | * 目录包含的块, 以及块的文件信息
165 | * 子目录树
166 |
167 | > 注意这里没有包含目录的路径信息和目录名。这个道理和文件块对象一样,git 是`内容驱动的`. 关于目录的路径和目录名,在父目录对象描述。
168 | > 这样,像文件块一样,目录不管在项目哪个位置,只要目录包含的内容不变, 目录对象就不变(SHA1 不变).
169 | > 另外如果两个不同路径或名字的目录包含的文件和目录是一样的, 这两个目录共享同一个目录对象
170 |
171 | 那么项目的目录树可以表示为:
172 |
173 | 
174 |
175 | 跟文件对象一样,Git 会为目录树计算一个 SHA1 值, 这个 SHA1 值可以用来高效地比对。 比如比较 foo 目录修改前和修改后的 SHA1 值,如果 SHA1 值相等,就说明 foo 目录内容没有变化,没有必要向下递归比对了。
176 |
177 | 上面, 我们将`foo.txt`和`bar.txt`文件添加到索引(暂存区)中, Git 还没有为他们创建目录对象。Git 会在`用户提交`或者手动调用底层的`write-tree`命令之后创建一个新的目录对象。
178 |
179 | > 这个目录树是从当前索引中捕获的. 而不是工作区
180 |
181 | ```shell
182 | # 立即创建一颗目录树. 这个命令返回这棵树的SHA1值
183 | $ git wirte-tree
184 | 30c06f321a0a9838685e85ad87c330d067b59515
185 |
186 | # 同样可以使用cat-file命令来查看目录树的内容
187 | $ git cat-file -t 30c06
188 | tree
189 | $ git cat-file -p 30c06
190 | 100644 blob 80993781b54ed1b81e47a31e6427940c1a9deafb bar.txt
191 | 100644 blob 707324cde0d21955bb8e7bfdaaa10007dd8d54fe foo.txt
192 |
193 |
194 |
195 | # 现在将foo.txt和bar.txt移到一个新的目录
196 | $ mv *.txt dir/
197 |
198 | # 添加到索引
199 | $ git add .
200 |
201 | # 可以看到foo.txt, bar.txt的块对象没有变化
202 | $ git ls-files --stage
203 | 100644 80993781b54ed1b81e47a31e6427940c1a9deafb 0 dir/bar.txt
204 | 100644 707324cde0d21955bb8e7bfdaaa10007dd8d54fe 0 dir/foo.txt
205 |
206 | # 再创建目录树对象: 因为目录结构发生了变化,所以重新创建一个新的对象
207 | $ git wirte-tree
208 | 0c1564cd525d98a691c29779569348b3bdc0a8ce
209 |
210 | # 在这里你可以看到dir目录对象的SHA1和上面的根目录的SHA1是一样的!
211 | # 因为dir和之前的根目录内容是一样的,所以git复用了这个目录对象
212 | $ git cat-file -p 0c1564
213 | 040000 tree 30c06f321a0a9838685e85ad87c330d067b59515 dir
214 | ```
215 |
216 | 
217 |
218 | ### 1.3 提交对象
219 |
220 | 看到这里, 估计你对 git 的工作原理已经有点眉目了。上述的`目录树`可以理解为`项目文件结构的一个快照`. 而我们的`提交记录`就是就是关于`目录树`的时间轴列表。 如图:
221 | 
222 |
223 | 提交记录就是项目的`变更记录`. Git 同样会为每个提交生成一个`提交对象`. 提交对象包含的内容有:
224 |
225 | * 提交时的项目快照, 也就是目录树对象
226 | * 提交的元数据,如作者,时间,提交信息等等
227 | * 父提交对象。除了`根提交`, 其他提交都有父提交。提交之间是一种`图`的关系(一个提交可能有多个子提交, 也有可能有多个父提交)
228 |
229 | ```shell
230 | # 现在将'索引'中的目录对象提交到版本库
231 | $ git commit -m "第一个提交"
232 | [master (root-commit) 985b842] 第一个提交
233 | 2 files changed, 0 insertions(+), 0 deletions(-)
234 | create mode 100644 dir/bar.txt
235 | create mode 100644 dir/foo.txt
236 |
237 | # 上面git创建了一个提交对象. 通过cat-file命令可以看到这个提交对象的内容
238 | # 这个提交对象关联到了上面创建的目录树对象
239 | $ git rev-parse 985b84
240 | 985b84227a97f0b09ffe86ea16c27cf8ce4dfb6e
241 |
242 | $ git cat-file -p 985b84
243 | tree 0c1564cd525d98a691c29779569348b3bdc0a8ce
244 | author gq-li 1518001414 +0800
245 | committer gq-li 1518001414 +0800
246 |
247 | 第一个提交
248 | ```
249 |
250 | 提交对象之间构成的图结构就是项目的整个历史周期. 下面是一个典型`Git flow`驱动下的提交记录图:
251 | 
252 |
253 | ### 1.4 标签
254 |
255 | 支持我们已经大概了解了 Git 的基本原理. 现在介绍最后一个对象, 即标签对象.标前对象是最简单的对象, 你可以将`标签`视作为`提交`的别名,
256 | 或者说标签是提交对象的引用/指针.
257 | 标签可以给你的`提交对象`取一个相对`SHA1值`更好记忆的名字, 比如版本号, 如 v1.0.0.
258 | 所以一个标签对象是和提交对象绑定在一起的, 标签对象的内容有:
259 |
260 | * 引用的提交对象
261 | * 标签的标注
262 |
263 | 
264 |
265 | ```shell
266 | # 使用git tag命令创建标签
267 | $ git tag -a -m "第一个标签信息" v0.0.1 985b84
268 |
269 | $ git rev-parse v0.0.1
270 | 303e1bc3317f8b771dfce6c9faf4a319583eaa52
271 | # 或者通过.git/refs/tags/v0.0.1查看标签名引用的对象SHA1; 结果同上
272 | $ cat .git/refs/tags/v0.0.1
273 |
274 | # 同样使用cat-file来查看标签对象内容
275 | $ git cat-file -p 303e1bc
276 | object 0c1564cd525d98a691c29779569348b3bdc0a8ce
277 | type commit
278 | tag v0.0.1
279 | tagger gq-li 1518010590 +0800
280 |
281 | 第一个标签信息
282 | ```
283 |
284 | ### 1.5 那分支是什么?
285 |
286 | Git 中并没有所谓的"分支对象", 分支只不多是提交记录的引用, 换句话说, 分支是不同提交记录的开发线的`最新提交`的引用.
287 | 关于提交对象的引用, 都保存在查看`.git/refs`目录
288 |
289 | ```shell
290 | $ tree .git/refs
291 | .git/refs
292 | ├── heads -- 这里放置的是本地
293 | │ └── master
294 | ├── remotes -- 这里放置的是远程版本库的分支
295 | │ └── origin
296 | │ ├── HEAD
297 | │ └── master
298 | └── tags -- 这里放置标签
299 | ```
300 |
301 | 假设现在创建一个新的分支:
302 |
303 | ```shell
304 | # 最新的提交对象为
305 | (master)$ git rev-parse master
306 | 0c1564cd525d98a691c29779569348b3bdc0a8ce
307 | # 创建并切换到dev分支
308 | (master)$ git checkout -b dev
309 |
310 | # 和master一样, 指向同一个分支. 即在同一个节点
311 | (dev)$ git rev-parse dev
312 | 0c1564cd525d98a691c29779569348b3bdc0a8ce
313 | ```
314 |
315 | 
316 |
317 | 现在在 dev 创建一些内容, 并提交
318 |
319 | ```shell
320 | (dev)$ echo "dev here i am" > baz.txt
321 | (dev)$ git add .
322 | (dev)$ git commit -m "我在dev分支创建了baz文件"
323 | [dev 558fc73] 我在dev分支创建了baz文件
324 | 1 file changed, 1 insertion(+)
325 | create mode 100644 baz.txt
326 |
327 | # 查看dev引用的: dev已更新到最新的提交对象
328 | (dev)$ git rev-parse dev
329 | 558fc733e37a0a8ffa8b874ec3bafd418d08fb9a
330 | ```
331 |
332 | 
333 |
334 | 尽管和标签一样都是提交对象的引用, 但是切换到标签后是不能提交新内容的, 而分支则允许继续提交延展.
335 |
336 | 
337 |
338 | 由上可以看到, Git 的分支非常轻量, 而 SVN 的分支则需要拷贝文件结构. 当 Git 进行分支切换时, 会将当前工作区的文件系统, 还原到分支引用的`提交对象`所绑定的`目录对象`.
339 |
340 | ### 1.6 索引
341 |
342 | 上面有提到`工作区`, `索引`和`版本库`的概念。 一个`变更`需要经过索引才能提交到版本库:
343 |
344 | 
345 |
346 | `工作区`就是当前`文件系统`的文件结构; `索引`可以视作一个提交的`暂存区`(stage), 好处就是将`工作区`和`版本库`隔离开来,你可以筛选需要提交到版本库的变更,避免将工作区的所有内容都提交了。这个概念在 SVN 也是有的。
347 |
348 | 从上面的`提交对象`来看。 索引其实就是存储了一个临时的、动态的`目录树`. 一旦提交触发, Git 就会捕获并绑定索引存储的目录树, 生成`提交对象`.
349 |
350 | ```shell
351 | # 可以通过git status来查看索引的状态
352 | $ git status
353 | ```
354 |
355 | 因为索引的存在, 我们可以将 Git 的文件内容划分为 3 类:
356 |
357 | * 已跟踪的(Tracked): 即已经添加到版本库或索引的文件
358 | * 被忽略的(Ignore): 被声明为忽略的文件,可以通过.gitignore 进行声明;比如临时文件,编译文件,这些我们不希望添加到版本库的,但是又懒得每次添加索引时要过滤掉它们的文件. 被忽略的文件被 git status, git add 等命令自动忽略
359 | * 未跟踪的(Untracked): 即在工作区中已经变更,但未提交到索引的文件
360 |
361 | ## 2. 总结一个文件的提交过程
362 |
363 | 现在来回顾一下, 一个文件是如何提交到 git 版本库的.
364 |
365 | 
366 |
367 | 1. 首先创建两个文件 foo.txt 和 bar.txt, 它们的内容都是"hello world"
368 | 2. 使用`git add`命令添加到`索引`, 准备进行提交
369 | 3. 提交到索引后, git 会为文件生成`块对象`, 因为 foo.txt 和 bar 的内容一样, 所以他们共用一个块对象
370 | 4. 使用`git commit`提交到`版本库`, Git 会捕获`索引`状态, 并生成一个`目录树对象`
371 | 5. 创建一个`提交对象`, 绑定到`目录树对象`
372 | 6. `master分支引用`到最新的`提交对象`
373 |
374 | 
375 |
376 | 1. 现在创建一个新的文件 baz.txt, 并将 foo.txt 和 bar.txt 移动到 dir 目录
377 | 2. 添加到索引并进行提交
378 | 3. 由于 dir 保存的内容(foo.txt, bar.txt)并没有发生变化, 所以可以复用`目录树对象`(30c06f3)
379 | 4. 新建一个新的`块对象`来存储 baz.txt 的内容; 新建`目录树对象`(67f1x1)表示当前的文件系统`快照`
380 | 5. 新建一个`提交对象`, 关联到`目录树对象`(67f1x1).新提交对象的`父提交对象`是 12912sx
381 | 6. 更新 master 引用
382 |
--------------------------------------------------------------------------------
/basic/images/blob.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/basic/images/blob.png
--------------------------------------------------------------------------------
/basic/images/branch1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/basic/images/branch1.png
--------------------------------------------------------------------------------
/basic/images/branch2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/basic/images/branch2.png
--------------------------------------------------------------------------------
/basic/images/branch3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/basic/images/branch3.png
--------------------------------------------------------------------------------
/basic/images/commit_process1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/basic/images/commit_process1.png
--------------------------------------------------------------------------------
/basic/images/commit_process2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/basic/images/commit_process2.png
--------------------------------------------------------------------------------
/basic/images/commits.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/basic/images/commits.png
--------------------------------------------------------------------------------
/basic/images/git_vs_svn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/basic/images/git_vs_svn.png
--------------------------------------------------------------------------------
/basic/images/gitflow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/basic/images/gitflow.png
--------------------------------------------------------------------------------
/basic/images/index.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/basic/images/index.png
--------------------------------------------------------------------------------
/basic/images/tag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/basic/images/tag.png
--------------------------------------------------------------------------------
/basic/images/tree.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/basic/images/tree.png
--------------------------------------------------------------------------------
/basic/images/tree2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/basic/images/tree2.png
--------------------------------------------------------------------------------
/basic/svn.md:
--------------------------------------------------------------------------------
1 | # 对比 SVN
2 |
3 | 我们公司是从 SVN 迁移过来的,SVN 和 git 之间有什么区别呢? 下面是我能深刻体会
4 | 到的一些区别:
5 |
6 | ## 集中式 VS 分布式
7 |
8 | 
9 | 这是 Git 和 SVN 最明显的区别之一。SVN 是集中式的, 依赖于一台 SVN 服务器,每一个本地版本库只是一个文件副本,不是一个完整的版本库,如果 SVN 服务器这个节点挂了, 所有子节点都无法工作。而 Git 是分布式, 每一个 clone 的项目都是一个完整的版本库,这些版本库是对等的。然而我们也会使用 Gitlab 这样的,集中
10 | git 服务器, 来进行代码的交换和维护。
11 |
12 | ## 分支更加轻量
13 |
14 | 使用 Git 一段时间之后, 会明显感觉到 Git 的分支,不管是创建、合并、删除、切换都非常的快和方便。这得益于 Git 的底层设计,所以在 Git 项目中, 我们可以大胆的使用分支来解决我们的问题。
15 | SVN 的分支则是一个完整的目录拷贝, 切换分支实际上就是切换到其他目录。而 Git 是在同一个工作区中切换.
16 |
17 | > 举个例子:SMS 项目需要安装前端依赖,在使用 SVN 时,每次新建一个分支,切换到这个分支开始之前都要重新安装依赖。由于网络原因, 下载依赖可能会很慢。而使用 Git 切换分支则直接在当前的工作区中完成
18 |
19 | ## 更加快速
20 |
21 | 得益于 Git 的架构设计, 相比 SVN,Git 的版本库更小,克隆和操作的速度更快。
22 |
23 | ## 自动化
24 |
25 | Git 支持各种客户端和服务端的自动化脚本。比如代码格式化,可以使用客户端的“precommit”钩子,实现在提交前对代码进行格式化。这样可以实现团队的代码规范,如果成员的代码不符合规范,将无法提交到版本库。通过服务端钩子可以实现持续集成, 持续部署等等。
26 |
27 | ## 更丰富的团队协作方式
28 |
29 | 更丰富的工作流选择, 或者说相比 SVN, 实现一个 工作流更加方便
30 |
31 | ## 更丰富的生态和工具
32 |
33 | 比如 Vscode, Xcode 这些编辑器或 IDE 都能很好地集成了 Git.
34 | 另外外部还有类似于`Github`, `Gitlab`, `码云`这些服务支持.
35 |
--------------------------------------------------------------------------------
/branch/centralized.md:
--------------------------------------------------------------------------------
1 | # 集中式工作流
2 |
3 | 集中式工作流, 或者称为`SVN工作流`, 如果你是从 SVN 迁移过来的,那么你已经熟知集中式工作流了。和 SVN 一样, 集中式工作流以一个`中央仓库`, 所有成员的本地版本库的修改都提交到这个分支。这种工作流的特点有:
4 |
5 | * 使用`中央仓库`作为本地版本库同步的唯一入口。
6 | * 只有一个`master`分支
7 |
8 | 
9 |
10 | 尽管和 SVN 类似,但和 SVN 相比,Git 还有以下优势:
11 |
12 | * 每个本地项目都是一个完整的版本库, 有一定的独立性, 不需要依赖于中央仓库, 我们可以自己选择合适的时间点进行同步。而 SVN 可能仅仅是一个目录的副本, 中央仓库挂了,将无法提交
13 | * Git 有更强大的分支和合并模型
14 |
15 | ## 1. 适用场景
16 |
17 | * 如果刚从 SVN 迁移过来,使用集中式工作流,让团队无需去适应一个全新的开发流程;或者可以作为`过渡方案`
18 | * 工作流简单自然。学习成本低,适合小型项目
19 |
20 | ## 2. 示例
21 |
22 | ### 2.1 创建中央仓库
23 |
24 | 我们可以从 `gitlab` 中创建一个项目, 或者直接通过 ssh 登录到服务器进行创建:
25 |
26 | ```shell
27 | $ ssh user@myhost
28 | # 创建一个裸仓库
29 |
30 | # 裸仓库是指没有工作目录的仓库,也就是说只有一个`.git`文件夹。
31 | # 裸仓库一般在服务端使用, 因为我们不会在服务端进行实际的开发
32 | $ git init --bare /path/to/myrepo.git
33 | ```
34 |
35 | 
36 |
37 | 创建完仓库之后, 团队成员就可以将其克隆到本地进行开发:
38 |
39 | ```shell
40 | $ git clone ssh://user@myhost/path/to/myrepo.git
41 | ```
42 |
43 | 
44 |
45 | ### 2.2 开发和提交
46 |
47 | 现在就可以在工作区中添加和编辑文件了. 每一个提交都需要经过暂存和提交
48 |
49 | ```shell
50 | # 新建一个文件
51 | $ echo "hello world" > "hello.txt"
52 |
53 | # 添加到索引
54 | $ git add "hello.txt"
55 |
56 | # 提交到版本库
57 | $ git commit -m "初始化项目, 新建hello.txt"
58 | ```
59 |
60 | ### 2.3 推送和拉取
61 |
62 | 到目前为止,变更还在本地版本库,我们需要通过 `push` 命令,将变更推送到远程版本库:
63 |
64 | 
65 |
66 | ```shell
67 | # 查看远程版本库
68 | # 在git clone一个远程版本库时,git已经将远程版本库设置好了,默认命名为origin
69 | $ git remote
70 | origin
71 |
72 |
73 | # 目前远程分支为空
74 | $ git remote show origin
75 | * remote origin
76 | Fetch URL: ssh://user@myhost/path/to/myrepo.git
77 | Push URL: ssh://user@myhost/path/to/myrepo.git
78 | HEAD branch: (unknown)
79 | Local branch configured for 'git pull':
80 | master merges with remote master
81 |
82 | # 推送到远程版本库的master分支
83 | $ git push origin master
84 | ```
85 |
86 | 目前的分支状态, 可以看到 master 和远程分支都指向了同一个提交对象:
87 |
88 | 
89 |
90 | 现在,其他成员也要将你的提交拉取下来, 拉取使用`pull`命令
91 |
92 | 
93 |
94 | ```shell
95 | (Jim)$ git pull origin master
96 | ```
97 |
98 | ### 2.4 冲突解决
99 |
100 | 假设你和另外一个同事 Jim 正在同时开发这个项目. 你修改了多次 hello.txt, 提交了多次代码到远程库,而 Jim 在创建另一个文件开发完新功能准备提交. 现在的提交图为:
101 |
102 | 
103 |
104 | ```shell
105 | # Jim很有成就感地准备提交到远程版本库
106 | (Jim)$ git push origin master
107 | error: failed to push some refs to '/path/to/myrepo.git'
108 | hint: Updates were rejected because the tip of your current branch is behind
109 | hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
110 | hint: before pushing again.
111 | hint: See the 'Note about fast-forwards' in 'git push --help' for details
112 | ```
113 |
114 | 什么鬼。远程版本库拒绝了,原因根据上图可以得知,因为远程版本库比 Jim 的本地版本库的提交记录要新。以前我们使用 SVN,在提交之前我们都习惯"`svn update`"一下, 保证版本库处于最新的状态,并在本地解决好冲突再提交。
115 | git 也是如此。Git 推荐在提交前使用`git pull`拉取最新的版本库。
116 |
117 | > 你也可以将远程版本库和你的版本库视作两个独立分支, 那么`git pull`和`git push`的过程就是分支合并的过程. 实际上也是如此. 关于分支合并的细节,见[分支操作](operation.md)一节
118 |
119 | ```shell
120 | # 拉取最新远程分支, 合并之后会生成一条新的“合并提交”记录
121 | (Jim)$ git pull
122 | (Jim)$ git status
123 | On branch master
124 | Your branch and 'origin/master' have diverged,
125 | and have 2 and 2 different commits each, respectively.
126 | (use "git pull" to merge the remote branch into yours)
127 |
128 | All conflicts fixed but you are still merging.
129 | (use "git commit" to conclude merge)
130 |
131 | Changes to be committed:
132 |
133 | modified: hello.txt
134 |
135 | (Jim)$ git commit -m "合并远程分支"
136 | # 如果有冲突,修复了冲突之后就可以重新提交了
137 | (Jim)$ git push
138 | ```
139 |
140 | 现在的提交图为:
141 |
142 | 
143 |
144 | ### 2.5 冲突解决 2
145 |
146 | 一般情况下, 分支合并都会产生一个`合并提交记录`, 如果你要获得线性的历史记录的话, 可以使用`rebase`
147 | 策略来处理合并两个分支.
148 |
149 | `rebase`中文 翻译过来就是`变基`, 更通俗的将就是 "改变分支的基础". 根据上图,我们可以知道
150 | Jim 的本地分支是基于`初始化项目, 新建hello.txt`这个提交为基础的. 通过 git 的`rebase`命令, 是可以篡改分支的基础的:
151 |
152 | ```shell
153 | # 打翻从来, 使用rebase命令进行合并
154 | (Jim)$ git pull --rebase
155 | (Jim)$ git push
156 | ```
157 |
158 |
159 | 我们使用 rebase 命令, 让 Jim 的`本地分支`的`基础`基于`远程版本库最新提交`, 那么现在的提交图, 看起来就是这样:
160 |
161 | 
162 |
163 | 使用 rebase 的优点就是不会产生多余的提交记录; 但是会丢失分支的轨迹, 也就是你在 GUI 上看到的分支只有一条分支, 不会有普通合并那样的分支分叉和合并记录.
164 |
165 | > rebase 模式解决冲突:
166 | > 如果在 rebase 的过程中出现冲突, git 会暂停下来, 让你解决冲突.
167 | > 解决完冲突之后, 再添加到索引:
168 | >
169 | > ```shell
170 | > # 解决完冲突
171 | > $ git add 冲突的文件
172 | > $ git rebase --continue
173 | > ```
174 | >
175 | > 如果要中断 rebase, 可以执行:
176 | >
177 | > ```shell
178 | > # 中断rebase
179 | > $ git rebase --abort
180 | > ```
181 |
--------------------------------------------------------------------------------
/branch/compare.md:
--------------------------------------------------------------------------------
1 | # 常见工作流比较与选择
2 |
3 | Git 有很多工作流方式,这些工作流的选择可能依赖于`项目的规模`,`项目的类型`以及`团队成员的结构`.
4 | 比如一个简单的个人项目可能不需要复杂的分支划分,我们的变更都是直接提交到 master 分支。再比如开源项目,除了核心团队成员,其他贡献者是没有提交的权限的,而且我们也需要手段来验证和讨论贡献的代码是否合理。 所以对于开源项目
5 | fork 工作流更为适合.
6 | 了解常见的工作流有利于组织或创建适合自己团队的工作流, 提交团队协作的效率;常见的工作流有:
7 |
8 | * [集中式的工作流](centralized.md)
9 | * [基于功能分支的工作流](feature.md)
10 | * [Gitflow](gitflow.md)
11 | * [Fork/Pull Request 工作流](fork.md)
12 |
13 | 通过下面的介绍,你会发现上面列表后者一般是前者的扩展和优化:
14 |
15 | 
16 |
--------------------------------------------------------------------------------
/branch/eim.md:
--------------------------------------------------------------------------------
1 | # EIM 工作流规范
2 |
--------------------------------------------------------------------------------
/branch/feature.md:
--------------------------------------------------------------------------------
1 | # 功能分支工作流
2 |
3 | 随着项目规模变大, 和成员分工的细化,集中式工作流的弊端就会显现出来, 比如不同的成员开发不同的功能,所有代码都往 master 分支上丢,不管是完成还是没完成,稳定还是没有稳定。这样导致我们无法随时构建和发布一个稳定的版本出来。
4 |
5 | `功能分支工作流`是以`集中式工作流`为基础的。它提倡为各个新功能分配一个专门的分支来开发, 当功能分支稳定,或者说经过完备的测试之后才合并到 master 分支。
6 |
7 | 
8 |
9 | `功能分支工作流`相较`集中式`工作流的有点:
10 |
11 | * 保持主干的干净。隔离了多个开发者在各自功能上的开发不会扰乱主干代码
12 | * 提供了`代码review`的空间。功能分支在合并到主干之前,触发集成测试,或者开启`Pull Request`, 启动一个围绕分支的讨论。发挥群众的力量
13 |
14 | ## 1. 适用场景
15 |
16 | 适合分工明确,版本关系简单的项目.
17 |
18 | ## 2. 示例
19 |
20 | ### 2.1 创建分支
21 |
22 | 基于上文集中式工作流的项目,现在 Jim 负责开发一个 very cool 功能:
23 |
24 | ```shell
25 | # 创建分支并马上切换
26 | (Jim)$ git checkout -b feature/very-cool
27 |
28 | # 上面的命令相当于
29 | (Jim)$ git branch feature/very-cool
30 | (Jim)$ git checkout feature/very-cool
31 |
32 | # 查看当前分支
33 | (Jim)$ git branch
34 | * feature/very-cool
35 | master
36 | ```
37 |
38 | > 分支命名规范:
39 | > 在这里推荐适用有带层次的分支命名方式,比如功能分支为 feature/xxx, bug 分支为 bug/B121231,
40 | > 发布分支为 release/v1.0.1. 因为 git 的一些命令支持使用通配符的形式。另外在有很多分支时,可以较快地区分不同类型的分支
41 | > 如: `git show-branch 'bug/*'`
42 |
43 | ### 2.2 推送到远程分支
44 |
45 | ok, 假设 Jim 已经将 very cool 功能开发完毕了,现在要推送到远程版本库,给首长和群众检阅:
46 |
47 | ```shell
48 | # 提交到远程库的feature/very-cool分支
49 | (Jim)$ git push -u origin feature/very-cool
50 | ```
51 |
52 | `-u`是`--set-upstream-to`的简写,它的意思是将当前本地分支的上游绑定为远程分支。换句话说,就是本地分支和远程分支对应起来。这个选项只需要在第一次推送时设置。设置了上游之后,以后推送和拉取就不需要添加参数了:
53 |
54 | ```shell
55 | # 设置了上游之后,下次拉取和推送就不需要指定远程库和分支了
56 | (Jim)$ git pull
57 | (Jim)$ git push
58 | ```
59 |
60 | ### 2.3 发起 Pull Request
61 |
62 | `github`和`gitlab`都支持`Pull Request`, 将功能分支提交到远程版本库之后, 项目首页就会出现 Pull Request 的按钮:
63 |
64 | 
65 |
66 | 这个类似于我们在工作宝群上发一个通告,通知团队成员完成了什么事情:
67 |
68 | 
69 |
70 | 项目成员可以对这个分支的提交进行讨论和 代码 review, 最后由`项目负责人`合并到`master`
71 |
72 | 
73 |
74 | ### 2.4 合并 Pull Request
75 |
76 | Pull Request 可以在`gitlab`或`github`的页面上进行, 如果你要使用自定义的策略进行合并。负责人也可以将分支拉取到本地进行合并.
77 |
78 | ```shell
79 | $ git checkout master
80 | # 保持master为最新版本
81 | $ git pull
82 |
83 | # 合并远程分支到master分支 等价于: `git merge feature/very-cool`
84 | $ git pull origin feature/very-cool
85 |
86 | # 推送最新版本到远程版本库
87 | $ git push
88 | ```
89 |
90 | 如果你不需要保留分支了,可以使用下列命令删除分支
91 |
92 | ```shell
93 | # 删除分支:
94 | $ git branch -d feature/very-cool
95 | # 删除远程分支
96 | $ git push -d origin feature/very-cool
97 | ```
98 |
--------------------------------------------------------------------------------
/branch/fork.md:
--------------------------------------------------------------------------------
1 | # Fork 工作流
2 |
3 | `Fork 工作流`是一种`分布式工作流`,充分利用了 Git 在分支和克隆上的优势。可以安全可靠地管理大团队的开发者,并能接受不信任贡献者的提交。像`github`和`gitlab` 线上服务就是使用这个工作流模式
4 |
5 | 
6 |
7 | 每个成员都可以 fork 项目到自己的目录, 甚至还可以继续衍生出更多项目, 项目之间的通过 pull request 进行代码合并.
8 | 一个项目可以有多个`上游项目`, 也可以由于多个`下游项目`, 它们指向形成一种`图`关系.
9 |
10 | ## 1. Fork 的原理
11 |
12 | Fork 其实不是一个新东西, 当我们在`github`上点击`fork`的时候, `github`只是将项目克隆(git clone)到你的个人目录
13 |
14 | ## 2. 适用场景
15 |
16 | * 适合开源项目. 开源项目需要接受任何开发者的代码共享, 无需给他们正式的代码库的写权限
17 | * 适合大型的, 自发性的团队. fork 工作流可以提供灵活的方式来安全协作
18 |
19 | ## 3. 工作方式
20 |
21 | 
22 |
23 | 1. fork: 一般通过服务器页面进行 fork, 创建一个拥有所有权的拷贝
24 | 2. 克隆项目到本地, 新建`功能分支`, 提交自己的代码, 然后推送到远程版本库
25 | 3. 现在可以发起将`功能分支` 合并到上游(upstream)项目的`Pull Request`请求;
26 | 4. 上游项目的所有者决定是否合并你的代码
27 |
28 | ## 4. 示例
29 |
30 | ### 4.1 fork 项目
31 |
32 | 首先 fork 上游项目:
33 | 
34 |
35 | ### 4.2 开发新功能
36 |
37 | 将项目克隆到本地,并在功能分支上开发新功能:
38 |
39 | ```shell
40 | # 克隆
41 | $ git clone git@github.com:me/test-fork.git
42 | # 新建功能分支
43 | $ git checkout -b feature/awesome
44 | # ... 新增功能, 提交到远程
45 | $ git push -u origin feature/awesome
46 | ```
47 |
48 | ### 4.3 提交 Pull Request
49 |
50 | 现在打开项目主页, 就可以开始提交 Pull Request 了
51 |
52 | 
53 |
54 | 假设清茂跟我一样 fork 了`test-fork`项目,我不仅可以将 PR 提交给`上游项目`, 也可以提交给`同源项目`:
55 |
56 | 
57 |
58 | ### 4.4 合并
59 |
60 | 一般开源项目都会严格审验每个 PR,`GitHub`支持在每个 PR 提交后,对他跑一些集成测试,进行一些讨论和 Review。下面是`React`项目的一个 PR 页面, 这里显示 PR 是否经过了测试、分支代码是否冲突, 项目管理员还可以要求变更:
61 |
62 | 
63 |
--------------------------------------------------------------------------------
/branch/gitflow.md:
--------------------------------------------------------------------------------
1 | # Git Flow
2 |
3 | `功能分支工作流`只定义了`功能分支`的职责, 但是现实中的项目往往复杂得多。我们可能要同时维护多个版本,我们可能要修复多个版本上的 bugs。所以就有了 Git Flow 工作流。
4 |
5 | `Git Flow 工作流`继承了`功能分支工作流`, 定义了更为严格的分支模型。定义了各种分支的`职责`和`使用场景`以及`生命周期`:
6 |
7 | 
8 |
9 | ## 1. 分支定义
10 |
11 | ### 1.1 历史分支
12 |
13 | 
14 |
15 | GitFlow 使用两个分支来记录项目的历史记录,即`master`分支和`develop`分支. 所谓`历史分支`是相对于`临时分支`: `临时分支`有`功能分支`和`修复分支`以及`发布分支`, 这些分支完成自己的使命后就会被删除。而`发布分支`则一个没有'未来'的分支,它的历史可能停留在发布的那一刻。
16 |
17 | * `master` 这是一个稳定的分支, 又称为保护分支, 表示正式发布的历史, 所有对外正式版本发布都会合并到这里, 并打上版本标签。
18 | * `develop` 开发分支用来整合功能分支, 表示最新的开发状态。等价于`功能分支工作流`的`master`分支.
19 |
20 | > 注意每次合并到 master 都要打上 tag, 方便定位
21 |
22 | ### 1.2 功能分支
23 |
24 | `功能分支`的职责无须赘述。这里和`功能分支工作流`不一样的是,`功能分支` 从`开发分支`中分叉出来,当新功能完成后,在合并回`开发分支`
25 |
26 | 
27 |
28 | ### 1.3 发布分支
29 |
30 | 一旦到了发布时机,比如`开发分支`积累了足够的功能或者到了既定的发布日期。 就从`开发分支`上分叉出一个`发布分支`. 然后开始`发布循环`, 从此刻开始新的功能不会加到这个分支,这个分支只应该做 bug 修复, 文档生成和其他面向发布的任务。
31 |
32 | 
33 |
34 | 当`发布分支`稳定到足以合并到`master`的时候, `发布分支`的生命周期可以结束了。这时候我们将稳定的发布分支合并到`master`分支,然后打上 tag 版本号;接着还需要将`发布分支`合并回开发分支。
35 |
36 | > 该不该保留发布分支?
37 | > 你可以删掉它,因为在 master 上打了 tag,即使你删掉了发布分支,你也可以很方便的重新创建一个:
38 | >
39 | > ```shell
40 | > # 基于tag v1.0. 0创建一个分支
41 | > $ git checkout -b release/v1.0.0 v1.0.0
42 | > ```
43 |
44 | 从上可以看到发布分支的好处有:
45 |
46 | * `发布分支`是`开发分支`和`master分支`之间的缓冲区, 对于一个发布,会在发布分支中停留一段时间,等待稳定后才合并到 master
47 | * `发布分支`使得团队可以在完善当前发布版本的同时,不阻拦新功能的开发
48 |
49 | ### 1.4 bug 修复分支
50 |
51 | 或者称为`补丁分支`, 补丁分支的职责是快速给`生产版本`打补丁,这些 bug 可能比较*紧急*,而且*跨越多个分支*, 所以我们通过新建一个`补丁分支`, 快速修复`master`上面的 bug,并合并到`master`和`开发分支`, 并打上 tag
52 |
53 | 
54 |
55 | 这是**唯一**一个可以从`master`分叉出来的分支类型。
56 |
57 | ### 1.5 小结
58 |
59 | 综上,可以看出 GitFlow 定义的这些分支类型都要较高的实用价值。试想一下除了`修复分支`,还有那些方式可以优雅地处理生产版本或跨越多个分支的 bug?但是现实项目可能复杂很多,对分支的应用也可以更加灵活。这有待我们去实践和总结
60 |
61 | ## 2. 示例
62 |
63 | 这里以 SMS 项目为例, 来展示如何应用 Git Flow 工作流.
64 |
65 | ### 2.1 初始化项目
66 |
67 | 首先创建项目, 并创建一个 develop 分支, 以后更多操作是在 develop 分支上进行的:
68 |
69 | ```shell
70 | $ mkdir sms && cd sms
71 | # 初始化git版本库
72 | $ git init
73 | # 添加远程版本库
74 | $ git remote add origin git@myhost.com:web/sms.git
75 | # 新建develop分支并切换
76 | $ git checkout -b develop
77 |
78 | # 初始化项目
79 | $ echo '# SMS项目' > README.md
80 | # 创建.gitignore文件, 用于忽略一些临时文件或自动编译生成文件
81 | $ touch .gitignore
82 | # ...
83 | $ git add .
84 | $ git commit -m "初始化SMS 项目框架"
85 | # 推送到远程开发分支
86 | $ git push -u origin develop
87 | ```
88 |
89 | ### 2.2 功能开发
90 |
91 | 现在我和清茂开始独立开始自己的功能, 比如, 我开发`计费`, 清茂开发`统计`. 我们都新建自己的功能分支, 独立开发,独立测试, 互不干扰.
92 |
93 | ```shell
94 | # 克隆版本库
95 | (我)$ git clone origin git@myhost.com:web/sms.git
96 |
97 | # 切换到develop分支
98 | (我)$ git checkout develop
99 |
100 | # 创建功能分支, 功能分支是从开发分支分叉出去的
101 | (我)$ git checkout -b feature/charging
102 |
103 | # 现在可以愉快地开发新功能了
104 | ....
105 | # 将分支推送到远程版本库
106 | (我)$ git push origin feature/charging
107 | ```
108 |
109 | ### 2.3 代码 Review 和合并
110 |
111 | ok, 我已经完成计费的功能, 而且基本功能也通过了测试, 是时候合并到`开发分支`了. 我发起了 Pull Request 了, 接受群众 Review.
112 | 项目负责人可以接收 Pull Request 并将分支合并到`开发分支`.
113 |
114 | 当然 Pull Request 只是一个可选的步骤, 你可以直接将分支合并到`开发分支`.
115 |
116 | ### 2.4 发布分支
117 |
118 | 现在统计和计费都开发完毕了, 项目负责人景烽掐指一算, 发布新版本吉时已到, 假设是 v0.1.0, 从`开发分支`中拉取出一个发布分支:
119 |
120 | ```shell
121 | # 保持最新
122 | $ git pull
123 | $ git checkout develop
124 | $ git checkout -b release/v0.1.0
125 | $ git push -u origin release/v0.1.0
126 | ```
127 |
128 | 我们已经开始新的功能了, 突然间测试报了个 bug, 我得优先处理这个 bug:
129 |
130 | ```shell
131 | # 但是在切换分支报了个错:
132 | (我)$ git checkout release/v0.1.0
133 | error: Your local changes to the following files would be overwritten by checkout:
134 | xxx.js
135 | Please commit your changes or stash them before you switch branches.
136 | Aborting
137 | ```
138 |
139 | 意思是, 你的本地已经修改了一些文件, 如果就这样 checkout 过去, 将会被覆盖你可以提交你的变更, 或者储藏(stash)起来.
140 | 因为我的代码写到一半, 不能将没有意义的代码提交到版本库. 所以只能使用后者
141 |
142 | ```shell
143 | # 保存现场
144 | (我)$ git stash
145 | (我)$ git checkout release/v0.1.0
146 |
147 | # 修复完bug回到原来的功能分支
148 | # 恢复现场
149 | (我)$ git stash pop
150 | ```
151 |
152 | ### 2.5 合并发布分支
153 |
154 | 发布分支在经过几次迭代之后, 稳定性已经足以合并到`master`了:
155 |
156 | ```shell
157 | # 切换到master分支
158 | $ git checkout master
159 |
160 | # 合并分支
161 | $ git merge release/v0.1.0
162 | # 打个tag
163 | $ git tag -a v0.1.0 -m "v0.1.0: 包含了计费和统计等功能更新"
164 | # 推送版本库
165 | $ git push
166 | # 推送tags
167 | $ git push --tags
168 |
169 | # 切换到开发分支
170 | $ git checkout develop
171 | $ git merge release/v0.1.0
172 | $ git push
173 |
174 | # 删除发布分支
175 | $ git branch -d release/v0.1.0
176 | # 删除远程发布分支
177 | $ git push -d release/v0.1.0
178 | ```
179 |
180 | ### 2.6 修复 bug
181 |
182 | 客户报了一个生产版本的 bug, 这 bug 较为影响使用, 我们必须马上修复这个 bug 并发个版
183 |
184 | ```shell
185 | # 切换到master分支
186 | $ git checkout master
187 | # 创建buf修复分支
188 | $ git checkout -b bug/B20180212
189 | # 修复bug并提交
190 | $ git commit -m "紧急修复xxxbug"
191 |
192 | # 合并到master
193 | $ git checkout master
194 | $ git merge bug/B20180212
195 | $ git tag -a v0.1.1 -m "紧急修复xxxbug"
196 | $ git push
197 |
198 | # 合并到开发分支, 因为开发分支同样有这个bug
199 | $ git checkout develop
200 | $ git merge bug/B20180212
201 | $ git push
202 |
203 | # 删除bug分支
204 | $ git branch -d bug/B20180212
205 | ```
206 |
--------------------------------------------------------------------------------
/branch/images/bare-repo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/bare-repo.png
--------------------------------------------------------------------------------
/branch/images/bug_branch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/bug_branch.png
--------------------------------------------------------------------------------
/branch/images/centralized1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/centralized1.png
--------------------------------------------------------------------------------
/branch/images/clone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/clone.png
--------------------------------------------------------------------------------
/branch/images/commit1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/commit1.png
--------------------------------------------------------------------------------
/branch/images/commit2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/commit2.png
--------------------------------------------------------------------------------
/branch/images/commit3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/commit3.png
--------------------------------------------------------------------------------
/branch/images/feature_branch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/feature_branch.png
--------------------------------------------------------------------------------
/branch/images/feature_flow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/feature_flow.png
--------------------------------------------------------------------------------
/branch/images/fork.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/fork.png
--------------------------------------------------------------------------------
/branch/images/fork2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/fork2.png
--------------------------------------------------------------------------------
/branch/images/fork_example1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/fork_example1.png
--------------------------------------------------------------------------------
/branch/images/fork_example2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/fork_example2.png
--------------------------------------------------------------------------------
/branch/images/fork_example3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/fork_example3.png
--------------------------------------------------------------------------------
/branch/images/fork_example4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/fork_example4.png
--------------------------------------------------------------------------------
/branch/images/git_flow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/git_flow.png
--------------------------------------------------------------------------------
/branch/images/history_branch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/history_branch.png
--------------------------------------------------------------------------------
/branch/images/pr1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/pr1.png
--------------------------------------------------------------------------------
/branch/images/pr2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/pr2.png
--------------------------------------------------------------------------------
/branch/images/pr3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/pr3.png
--------------------------------------------------------------------------------
/branch/images/pull.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/pull.png
--------------------------------------------------------------------------------
/branch/images/pull1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/pull1.png
--------------------------------------------------------------------------------
/branch/images/push.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/push.png
--------------------------------------------------------------------------------
/branch/images/push1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/push1.png
--------------------------------------------------------------------------------
/branch/images/release_branch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/release_branch.png
--------------------------------------------------------------------------------
/branch/images/workflow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/branch/images/workflow.png
--------------------------------------------------------------------------------
/branch/operation.md:
--------------------------------------------------------------------------------
1 | # 分支操作
2 |
--------------------------------------------------------------------------------
/charts.key:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ivan-94/git-guide/ae3ea9048796c0d071076fbd9dde7acca794f01f/charts.key
--------------------------------------------------------------------------------
/further/learn.md:
--------------------------------------------------------------------------------
1 | # 学习资料
2 |
3 | ## 图书
4 |
5 | * 《Git 版本控制管理 第 2 版》
6 | * [《Git Pro》](https://git-scm.com/book/zh/v2)
7 | * [《Git Internals》](https://github.com/pluralsight/git-internals-pdf)
8 |
9 | ## 文章
10 |
11 | * [git Flight Rules](https://github.com/k88hudson/git-flight-rules/blob/master/README_zh-CN.md#%E5%85%B6%E5%AE%83%E8%B5%84%E6%BA%90other-resources) git 飞行规则
12 | * [git-recipes](https://github.com/geeeeeeeeek/git-recipes)高质量的 Git 中文教程
13 |
--------------------------------------------------------------------------------
/further/tools.md:
--------------------------------------------------------------------------------
1 | # 工具/扩展
2 |
3 | ## Cheat-sheet
4 |
5 | * [git-cheat-sheet](https://github.com/arslanbilal/git-cheat-sheet)
6 | * [git-flow-cheatsheet](https://github.com/danielkummer/git-flow-cheatsheet)
7 |
8 | ## 脚本和工具(Scripts and Tools)
9 |
10 | * [firstaidgit.io](http://firstaidgit.io/) 一个可搜索的最常被问到的 Git 的问题
11 | * [git-extra-commands](https://github.com/unixorn/git-extra-commands) - 一堆有用的额外的 Git 脚本
12 | * [git-extras](https://github.com/tj/git-extras) - GIT 工具集 -- repo summary, repl, changelog population, author commit percentages and more
13 | * [git-fire](https://github.com/qw3rtman/git-fire) - git-fire 是一个 Git 插件,用于帮助在紧急情况下添加所有当前文件, 做提交(committing), 和推(push)到一个新分支(阻止合并冲突)。
14 | * [git-tips](https://github.com/git-tips/tips) - Git 小提示
15 | * [git-town](https://github.com/Originate/git-town) - 通用,高级 Git 工作流支持! http://www.git-town.com
16 |
17 | ## GUI 客户端(GUI Clients)
18 |
19 | * [GitKraken](https://www.gitkraken.com/) - 豪华的 Git 客户端 Windows, Mac & Linux
20 | * [git-cola](https://git-cola.github.io/) - 另外一个 Git 客户端 Windows & OS X
21 | * [GitUp](https://github.com/git-up/GitUp) - 一个新的 Git 客户端,在处理 Git 的复杂性上有自己的特点
22 | * [gitx-dev](https://rowanj.github.io/gitx/) - 图形化的 Git 客户端 OS X
23 | * [Source Tree](https://www.sourcetreeapp.com/) - 免费的图形化 Git 客户端 Windows & OS X
24 | * [Tower](http://www.git-tower.com/) - 图形化 Git 客户端 OS X(付费)
25 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "git-guide",
3 | "version": "1.0.0",
4 | "description": "git 版本控制指南",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1",
8 | "gitbook": "gitbook",
9 | "serve": "gitbook serve",
10 | "build": "gitbook build"
11 | },
12 | "repository": {
13 | "type": "git",
14 | "url": "git+https://github.com/carney520/git-guide.git"
15 | },
16 | "author": "",
17 | "license": "MITk",
18 | "bugs": {
19 | "url": "https://github.com/carney520/git-guide/issues"
20 | },
21 | "homepage": "https://github.com/carney520/git-guide#readme",
22 | "devDependencies": {
23 | "gitbook-cli": "^2.3.2"
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | JSONStream@~1.3.1:
6 | version "1.3.2"
7 | resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.2.tgz#c102371b6ec3a7cf3b847ca00c20bb0fce4c6dea"
8 | dependencies:
9 | jsonparse "^1.2.0"
10 | through ">=2.2.7 <3"
11 |
12 | abbrev@1, abbrev@~1.1.0:
13 | version "1.1.1"
14 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
15 |
16 | abbrev@~1.0.9:
17 | version "1.0.9"
18 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
19 |
20 | agent-base@4, agent-base@^4.1.0:
21 | version "4.2.0"
22 | resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.0.tgz#9838b5c3392b962bad031e6a4c5e1024abec45ce"
23 | dependencies:
24 | es6-promisify "^5.0.0"
25 |
26 | agentkeepalive@^3.3.0:
27 | version "3.3.0"
28 | resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.3.0.tgz#6d5de5829afd3be2712201a39275fd11c651857c"
29 | dependencies:
30 | humanize-ms "^1.2.1"
31 |
32 | ajv@^4.9.1:
33 | version "4.11.8"
34 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
35 | dependencies:
36 | co "^4.6.0"
37 | json-stable-stringify "^1.0.1"
38 |
39 | ajv@^5.1.0:
40 | version "5.5.2"
41 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
42 | dependencies:
43 | co "^4.6.0"
44 | fast-deep-equal "^1.0.0"
45 | fast-json-stable-stringify "^2.0.0"
46 | json-schema-traverse "^0.3.0"
47 |
48 | ansi-align@^2.0.0:
49 | version "2.0.0"
50 | resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f"
51 | dependencies:
52 | string-width "^2.0.0"
53 |
54 | ansi-regex@^2.0.0:
55 | version "2.1.1"
56 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
57 |
58 | ansi-regex@^3.0.0, ansi-regex@~3.0.0:
59 | version "3.0.0"
60 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
61 |
62 | ansi-styles@^2.2.1:
63 | version "2.2.1"
64 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
65 |
66 | ansi-styles@^3.1.0:
67 | version "3.2.0"
68 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88"
69 | dependencies:
70 | color-convert "^1.9.0"
71 |
72 | ansi@^0.3.0, ansi@~0.3.1:
73 | version "0.3.1"
74 | resolved "https://registry.yarnpkg.com/ansi/-/ansi-0.3.1.tgz#0c42d4fb17160d5a9af1e484bace1c66922c1b21"
75 |
76 | ansicolors@~0.3.2:
77 | version "0.3.2"
78 | resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979"
79 |
80 | ansistyles@~0.1.3:
81 | version "0.1.3"
82 | resolved "https://registry.yarnpkg.com/ansistyles/-/ansistyles-0.1.3.tgz#5de60415bda071bb37127854c864f41b23254539"
83 |
84 | aproba@^1.0.3, aproba@^1.1.1:
85 | version "1.2.0"
86 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
87 |
88 | aproba@~1.1.2:
89 | version "1.1.2"
90 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1"
91 |
92 | archy@~1.0.0:
93 | version "1.0.0"
94 | resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"
95 |
96 | are-we-there-yet@~1.1.2:
97 | version "1.1.4"
98 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d"
99 | dependencies:
100 | delegates "^1.0.0"
101 | readable-stream "^2.0.6"
102 |
103 | asap@^2.0.0:
104 | version "2.0.6"
105 | resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
106 |
107 | asn1@~0.2.3:
108 | version "0.2.3"
109 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
110 |
111 | assert-plus@1.0.0, assert-plus@^1.0.0:
112 | version "1.0.0"
113 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
114 |
115 | assert-plus@^0.2.0:
116 | version "0.2.0"
117 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
118 |
119 | async-some@~1.0.2:
120 | version "1.0.2"
121 | resolved "https://registry.yarnpkg.com/async-some/-/async-some-1.0.2.tgz#4d8a81620d5958791b5b98f802d3207776e95509"
122 | dependencies:
123 | dezalgo "^1.0.2"
124 |
125 | async@^2.0.1:
126 | version "2.6.0"
127 | resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4"
128 | dependencies:
129 | lodash "^4.14.0"
130 |
131 | asynckit@^0.4.0:
132 | version "0.4.0"
133 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
134 |
135 | aws-sign2@~0.6.0:
136 | version "0.6.0"
137 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
138 |
139 | aws-sign2@~0.7.0:
140 | version "0.7.0"
141 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
142 |
143 | aws4@^1.2.1, aws4@^1.6.0:
144 | version "1.6.0"
145 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
146 |
147 | balanced-match@^1.0.0:
148 | version "1.0.0"
149 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
150 |
151 | bash-color@0.0.4:
152 | version "0.0.4"
153 | resolved "https://registry.yarnpkg.com/bash-color/-/bash-color-0.0.4.tgz#e9be8ce33540cada4881768c59bd63865736e913"
154 |
155 | bcrypt-pbkdf@^1.0.0:
156 | version "1.0.1"
157 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
158 | dependencies:
159 | tweetnacl "^0.14.3"
160 |
161 | bl@^1.0.0:
162 | version "1.2.1"
163 | resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.1.tgz#cac328f7bee45730d404b692203fcb590e172d5e"
164 | dependencies:
165 | readable-stream "^2.0.5"
166 |
167 | bl@~1.1.2:
168 | version "1.1.2"
169 | resolved "https://registry.yarnpkg.com/bl/-/bl-1.1.2.tgz#fdca871a99713aa00d19e3bbba41c44787a65398"
170 | dependencies:
171 | readable-stream "~2.0.5"
172 |
173 | block-stream@*, block-stream@0.0.9:
174 | version "0.0.9"
175 | resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
176 | dependencies:
177 | inherits "~2.0.0"
178 |
179 | bluebird@^3.5.0, bluebird@~3.5.0:
180 | version "3.5.1"
181 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
182 |
183 | boom@2.x.x:
184 | version "2.10.1"
185 | resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
186 | dependencies:
187 | hoek "2.x.x"
188 |
189 | boom@4.x.x:
190 | version "4.3.1"
191 | resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31"
192 | dependencies:
193 | hoek "4.x.x"
194 |
195 | boom@5.x.x:
196 | version "5.2.0"
197 | resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02"
198 | dependencies:
199 | hoek "4.x.x"
200 |
201 | boxen@^1.0.0:
202 | version "1.3.0"
203 | resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b"
204 | dependencies:
205 | ansi-align "^2.0.0"
206 | camelcase "^4.0.0"
207 | chalk "^2.0.1"
208 | cli-boxes "^1.0.0"
209 | string-width "^2.0.0"
210 | term-size "^1.2.0"
211 | widest-line "^2.0.0"
212 |
213 | brace-expansion@^1.1.7:
214 | version "1.1.8"
215 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
216 | dependencies:
217 | balanced-match "^1.0.0"
218 | concat-map "0.0.1"
219 |
220 | buffer-shims@^1.0.0:
221 | version "1.0.0"
222 | resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51"
223 |
224 | builtin-modules@^1.0.0:
225 | version "1.1.1"
226 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
227 |
228 | builtins@0.0.7:
229 | version "0.0.7"
230 | resolved "https://registry.yarnpkg.com/builtins/-/builtins-0.0.7.tgz#355219cd6cf18dbe7c01cc7fd2dce765cfdc549a"
231 |
232 | builtins@^1.0.3:
233 | version "1.0.3"
234 | resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88"
235 |
236 | cacache@^10.0.0:
237 | version "10.0.2"
238 | resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.2.tgz#105a93a162bbedf3a25da42e1939ed99ffb145f8"
239 | dependencies:
240 | bluebird "^3.5.0"
241 | chownr "^1.0.1"
242 | glob "^7.1.2"
243 | graceful-fs "^4.1.11"
244 | lru-cache "^4.1.1"
245 | mississippi "^1.3.0"
246 | mkdirp "^0.5.1"
247 | move-concurrently "^1.0.1"
248 | promise-inflight "^1.0.1"
249 | rimraf "^2.6.1"
250 | ssri "^5.0.0"
251 | unique-filename "^1.1.0"
252 | y18n "^3.2.1"
253 |
254 | cacache@^9.2.9:
255 | version "9.3.0"
256 | resolved "https://registry.yarnpkg.com/cacache/-/cacache-9.3.0.tgz#9cd58f2dd0b8c8cacf685b7067b416d6d3cf9db1"
257 | dependencies:
258 | bluebird "^3.5.0"
259 | chownr "^1.0.1"
260 | glob "^7.1.2"
261 | graceful-fs "^4.1.11"
262 | lru-cache "^4.1.1"
263 | mississippi "^1.3.0"
264 | mkdirp "^0.5.1"
265 | move-concurrently "^1.0.1"
266 | promise-inflight "^1.0.1"
267 | rimraf "^2.6.1"
268 | ssri "^4.1.6"
269 | unique-filename "^1.1.0"
270 | y18n "^3.2.1"
271 |
272 | cacache@~9.2.9:
273 | version "9.2.9"
274 | resolved "https://registry.yarnpkg.com/cacache/-/cacache-9.2.9.tgz#f9d7ffe039851ec94c28290662afa4dd4bb9e8dd"
275 | dependencies:
276 | bluebird "^3.5.0"
277 | chownr "^1.0.1"
278 | glob "^7.1.2"
279 | graceful-fs "^4.1.11"
280 | lru-cache "^4.1.1"
281 | mississippi "^1.3.0"
282 | mkdirp "^0.5.1"
283 | move-concurrently "^1.0.1"
284 | promise-inflight "^1.0.1"
285 | rimraf "^2.6.1"
286 | ssri "^4.1.6"
287 | unique-filename "^1.1.0"
288 | y18n "^3.2.1"
289 |
290 | call-limit@~1.1.0:
291 | version "1.1.0"
292 | resolved "https://registry.yarnpkg.com/call-limit/-/call-limit-1.1.0.tgz#6fd61b03f3da42a2cd0ec2b60f02bd0e71991fea"
293 |
294 | camelcase@^4.0.0:
295 | version "4.1.0"
296 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
297 |
298 | capture-stack-trace@^1.0.0:
299 | version "1.0.0"
300 | resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d"
301 |
302 | caseless@~0.11.0:
303 | version "0.11.0"
304 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7"
305 |
306 | caseless@~0.12.0:
307 | version "0.12.0"
308 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
309 |
310 | chalk@^1.0.0, chalk@^1.1.1:
311 | version "1.1.3"
312 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
313 | dependencies:
314 | ansi-styles "^2.2.1"
315 | escape-string-regexp "^1.0.2"
316 | has-ansi "^2.0.0"
317 | strip-ansi "^3.0.0"
318 | supports-color "^2.0.0"
319 |
320 | chalk@^2.0.1:
321 | version "2.3.0"
322 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba"
323 | dependencies:
324 | ansi-styles "^3.1.0"
325 | escape-string-regexp "^1.0.5"
326 | supports-color "^4.0.0"
327 |
328 | char-spinner@~1.0.1:
329 | version "1.0.1"
330 | resolved "https://registry.yarnpkg.com/char-spinner/-/char-spinner-1.0.1.tgz#e6ea67bd247e107112983b7ab0479ed362800081"
331 |
332 | chmodr@~1.0.2:
333 | version "1.0.2"
334 | resolved "https://registry.yarnpkg.com/chmodr/-/chmodr-1.0.2.tgz#04662b932d0f02ec66deaa2b0ea42811968e3eb9"
335 |
336 | chownr@^1.0.1, chownr@~1.0.1:
337 | version "1.0.1"
338 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181"
339 |
340 | cli-boxes@^1.0.0:
341 | version "1.0.0"
342 | resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143"
343 |
344 | clone@^1.0.2:
345 | version "1.0.3"
346 | resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f"
347 |
348 | cmd-shim@~2.0.2:
349 | version "2.0.2"
350 | resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-2.0.2.tgz#6fcbda99483a8fd15d7d30a196ca69d688a2efdb"
351 | dependencies:
352 | graceful-fs "^4.1.2"
353 | mkdirp "~0.5.0"
354 |
355 | co@^4.6.0:
356 | version "4.6.0"
357 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
358 |
359 | code-point-at@^1.0.0:
360 | version "1.1.0"
361 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
362 |
363 | color-convert@^1.9.0:
364 | version "1.9.1"
365 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed"
366 | dependencies:
367 | color-name "^1.1.1"
368 |
369 | color-name@^1.1.1:
370 | version "1.1.3"
371 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
372 |
373 | columnify@~1.5.4:
374 | version "1.5.4"
375 | resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb"
376 | dependencies:
377 | strip-ansi "^3.0.0"
378 | wcwidth "^1.0.0"
379 |
380 | combined-stream@^1.0.5, combined-stream@~1.0.5:
381 | version "1.0.5"
382 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
383 | dependencies:
384 | delayed-stream "~1.0.0"
385 |
386 | commander@2.11.0:
387 | version "2.11.0"
388 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
389 |
390 | commander@^2.9.0:
391 | version "2.14.0"
392 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.0.tgz#7b25325963e6aace20d3a9285b09379b0c2208b5"
393 |
394 | concat-map@0.0.1:
395 | version "0.0.1"
396 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
397 |
398 | concat-stream@^1.5.0, concat-stream@^1.5.2:
399 | version "1.6.0"
400 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7"
401 | dependencies:
402 | inherits "^2.0.3"
403 | readable-stream "^2.2.2"
404 | typedarray "^0.0.6"
405 |
406 | config-chain@~1.1.10, config-chain@~1.1.11:
407 | version "1.1.11"
408 | resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.11.tgz#aba09747dfbe4c3e70e766a6e41586e1859fc6f2"
409 | dependencies:
410 | ini "^1.3.4"
411 | proto-list "~1.2.1"
412 |
413 | configstore@^3.0.0:
414 | version "3.1.1"
415 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.1.tgz#094ee662ab83fad9917678de114faaea8fcdca90"
416 | dependencies:
417 | dot-prop "^4.1.0"
418 | graceful-fs "^4.1.2"
419 | make-dir "^1.0.0"
420 | unique-string "^1.0.0"
421 | write-file-atomic "^2.0.0"
422 | xdg-basedir "^3.0.0"
423 |
424 | console-control-strings@^1.0.0, console-control-strings@~1.1.0:
425 | version "1.1.0"
426 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
427 |
428 | copy-concurrently@^1.0.0:
429 | version "1.0.5"
430 | resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
431 | dependencies:
432 | aproba "^1.1.1"
433 | fs-write-stream-atomic "^1.0.8"
434 | iferr "^0.1.5"
435 | mkdirp "^0.5.1"
436 | rimraf "^2.5.4"
437 | run-queue "^1.0.0"
438 |
439 | core-util-is@1.0.2, core-util-is@~1.0.0:
440 | version "1.0.2"
441 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
442 |
443 | create-error-class@^3.0.0:
444 | version "3.0.2"
445 | resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6"
446 | dependencies:
447 | capture-stack-trace "^1.0.0"
448 |
449 | cross-spawn@^5.0.1:
450 | version "5.1.0"
451 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
452 | dependencies:
453 | lru-cache "^4.0.1"
454 | shebang-command "^1.2.0"
455 | which "^1.2.9"
456 |
457 | cryptiles@2.x.x:
458 | version "2.0.5"
459 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
460 | dependencies:
461 | boom "2.x.x"
462 |
463 | cryptiles@3.x.x:
464 | version "3.1.2"
465 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"
466 | dependencies:
467 | boom "5.x.x"
468 |
469 | crypto-random-string@^1.0.0:
470 | version "1.0.0"
471 | resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e"
472 |
473 | cyclist@~0.2.2:
474 | version "0.2.2"
475 | resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640"
476 |
477 | dashdash@^1.12.0:
478 | version "1.14.1"
479 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
480 | dependencies:
481 | assert-plus "^1.0.0"
482 |
483 | debug@2:
484 | version "2.6.9"
485 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
486 | dependencies:
487 | ms "2.0.0"
488 |
489 | debug@^3.1.0:
490 | version "3.1.0"
491 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
492 | dependencies:
493 | ms "2.0.0"
494 |
495 | debuglog@^1.0.1:
496 | version "1.0.1"
497 | resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492"
498 |
499 | deep-extend@~0.4.0:
500 | version "0.4.2"
501 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
502 |
503 | defaults@^1.0.3:
504 | version "1.0.3"
505 | resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d"
506 | dependencies:
507 | clone "^1.0.2"
508 |
509 | delayed-stream@~1.0.0:
510 | version "1.0.0"
511 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
512 |
513 | delegates@^1.0.0:
514 | version "1.0.0"
515 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
516 |
517 | detect-indent@~5.0.0:
518 | version "5.0.0"
519 | resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d"
520 |
521 | dezalgo@^1.0.0, dezalgo@^1.0.1, dezalgo@^1.0.2, dezalgo@~1.0.3:
522 | version "1.0.3"
523 | resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456"
524 | dependencies:
525 | asap "^2.0.0"
526 | wrappy "1"
527 |
528 | dot-prop@^4.1.0:
529 | version "4.2.0"
530 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
531 | dependencies:
532 | is-obj "^1.0.0"
533 |
534 | duplexer3@^0.1.4:
535 | version "0.1.4"
536 | resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
537 |
538 | duplexify@^3.4.2, duplexify@^3.5.3:
539 | version "3.5.3"
540 | resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.3.tgz#8b5818800df92fd0125b27ab896491912858243e"
541 | dependencies:
542 | end-of-stream "^1.0.0"
543 | inherits "^2.0.1"
544 | readable-stream "^2.0.0"
545 | stream-shift "^1.0.0"
546 |
547 | ecc-jsbn@~0.1.1:
548 | version "0.1.1"
549 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
550 | dependencies:
551 | jsbn "~0.1.0"
552 |
553 | editor@~1.0.0:
554 | version "1.0.0"
555 | resolved "https://registry.yarnpkg.com/editor/-/editor-1.0.0.tgz#60c7f87bd62bcc6a894fa8ccd6afb7823a24f742"
556 |
557 | encoding@^0.1.11:
558 | version "0.1.12"
559 | resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
560 | dependencies:
561 | iconv-lite "~0.4.13"
562 |
563 | end-of-stream@^1.0.0, end-of-stream@^1.1.0:
564 | version "1.4.1"
565 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
566 | dependencies:
567 | once "^1.4.0"
568 |
569 | err-code@^1.0.0:
570 | version "1.1.2"
571 | resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960"
572 |
573 | "errno@>=0.1.1 <0.2.0-0":
574 | version "0.1.6"
575 | resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.6.tgz#c386ce8a6283f14fc09563b71560908c9bf53026"
576 | dependencies:
577 | prr "~1.0.1"
578 |
579 | es6-promise@^4.0.3:
580 | version "4.2.4"
581 | resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29"
582 |
583 | es6-promisify@^5.0.0:
584 | version "5.0.0"
585 | resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
586 | dependencies:
587 | es6-promise "^4.0.3"
588 |
589 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
590 | version "1.0.5"
591 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
592 |
593 | execa@^0.7.0:
594 | version "0.7.0"
595 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
596 | dependencies:
597 | cross-spawn "^5.0.1"
598 | get-stream "^3.0.0"
599 | is-stream "^1.1.0"
600 | npm-run-path "^2.0.0"
601 | p-finally "^1.0.0"
602 | signal-exit "^3.0.0"
603 | strip-eof "^1.0.0"
604 |
605 | extend@~3.0.0, extend@~3.0.1:
606 | version "3.0.1"
607 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
608 |
609 | extsprintf@1.3.0:
610 | version "1.3.0"
611 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
612 |
613 | extsprintf@^1.2.0:
614 | version "1.4.0"
615 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
616 |
617 | fast-deep-equal@^1.0.0:
618 | version "1.0.0"
619 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
620 |
621 | fast-json-stable-stringify@^2.0.0:
622 | version "2.0.0"
623 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
624 |
625 | flush-write-stream@^1.0.0:
626 | version "1.0.2"
627 | resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.2.tgz#c81b90d8746766f1a609a46809946c45dd8ae417"
628 | dependencies:
629 | inherits "^2.0.1"
630 | readable-stream "^2.0.4"
631 |
632 | forever-agent@~0.6.1:
633 | version "0.6.1"
634 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
635 |
636 | form-data@~1.0.0-rc4:
637 | version "1.0.1"
638 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-1.0.1.tgz#ae315db9a4907fa065502304a66d7733475ee37c"
639 | dependencies:
640 | async "^2.0.1"
641 | combined-stream "^1.0.5"
642 | mime-types "^2.1.11"
643 |
644 | form-data@~2.1.1:
645 | version "2.1.4"
646 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
647 | dependencies:
648 | asynckit "^0.4.0"
649 | combined-stream "^1.0.5"
650 | mime-types "^2.1.12"
651 |
652 | form-data@~2.3.1:
653 | version "2.3.1"
654 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf"
655 | dependencies:
656 | asynckit "^0.4.0"
657 | combined-stream "^1.0.5"
658 | mime-types "^2.1.12"
659 |
660 | from2@^1.3.0:
661 | version "1.3.0"
662 | resolved "https://registry.yarnpkg.com/from2/-/from2-1.3.0.tgz#88413baaa5f9a597cfde9221d86986cd3c061dfd"
663 | dependencies:
664 | inherits "~2.0.1"
665 | readable-stream "~1.1.10"
666 |
667 | from2@^2.1.0:
668 | version "2.3.0"
669 | resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
670 | dependencies:
671 | inherits "^2.0.1"
672 | readable-stream "^2.0.0"
673 |
674 | fs-extra@3.0.1:
675 | version "3.0.1"
676 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291"
677 | dependencies:
678 | graceful-fs "^4.1.2"
679 | jsonfile "^3.0.0"
680 | universalify "^0.1.0"
681 |
682 | fs-vacuum@~1.2.10, fs-vacuum@~1.2.9:
683 | version "1.2.10"
684 | resolved "https://registry.yarnpkg.com/fs-vacuum/-/fs-vacuum-1.2.10.tgz#b7629bec07a4031a2548fdf99f5ecf1cc8b31e36"
685 | dependencies:
686 | graceful-fs "^4.1.2"
687 | path-is-inside "^1.0.1"
688 | rimraf "^2.5.2"
689 |
690 | fs-write-stream-atomic@^1.0.8, fs-write-stream-atomic@~1.0.10, fs-write-stream-atomic@~1.0.8:
691 | version "1.0.10"
692 | resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
693 | dependencies:
694 | graceful-fs "^4.1.2"
695 | iferr "^0.1.5"
696 | imurmurhash "^0.1.4"
697 | readable-stream "1 || 2"
698 |
699 | fs.realpath@^1.0.0:
700 | version "1.0.0"
701 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
702 |
703 | fstream-ignore@^1.0.0:
704 | version "1.0.5"
705 | resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105"
706 | dependencies:
707 | fstream "^1.0.0"
708 | inherits "2"
709 | minimatch "^3.0.0"
710 |
711 | fstream-npm@~1.1.1:
712 | version "1.1.1"
713 | resolved "https://registry.yarnpkg.com/fstream-npm/-/fstream-npm-1.1.1.tgz#6b9175db6239a83d8209e232426c494dbb29690c"
714 | dependencies:
715 | fstream-ignore "^1.0.0"
716 | inherits "2"
717 |
718 | fstream-npm@~1.2.1:
719 | version "1.2.1"
720 | resolved "https://registry.yarnpkg.com/fstream-npm/-/fstream-npm-1.2.1.tgz#08c4a452f789dcbac4c89a4563c902b2c862fd5b"
721 | dependencies:
722 | fstream-ignore "^1.0.0"
723 | inherits "2"
724 |
725 | fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10, fstream@~1.0.11:
726 | version "1.0.11"
727 | resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"
728 | dependencies:
729 | graceful-fs "^4.1.2"
730 | inherits "~2.0.0"
731 | mkdirp ">=0.5 0"
732 | rimraf "2"
733 |
734 | gauge@~1.2.5:
735 | version "1.2.7"
736 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-1.2.7.tgz#e9cec5483d3d4ee0ef44b60a7d99e4935e136d93"
737 | dependencies:
738 | ansi "^0.3.0"
739 | has-unicode "^2.0.0"
740 | lodash.pad "^4.1.0"
741 | lodash.padend "^4.1.0"
742 | lodash.padstart "^4.1.0"
743 |
744 | gauge@~2.6.0:
745 | version "2.6.0"
746 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.6.0.tgz#d35301ad18e96902b4751dcbbe40f4218b942a46"
747 | dependencies:
748 | aproba "^1.0.3"
749 | console-control-strings "^1.0.0"
750 | has-color "^0.1.7"
751 | has-unicode "^2.0.0"
752 | object-assign "^4.1.0"
753 | signal-exit "^3.0.0"
754 | string-width "^1.0.1"
755 | strip-ansi "^3.0.1"
756 | wide-align "^1.1.0"
757 |
758 | gauge@~2.7.3:
759 | version "2.7.4"
760 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
761 | dependencies:
762 | aproba "^1.0.3"
763 | console-control-strings "^1.0.0"
764 | has-unicode "^2.0.0"
765 | object-assign "^4.1.0"
766 | signal-exit "^3.0.0"
767 | string-width "^1.0.1"
768 | strip-ansi "^3.0.1"
769 | wide-align "^1.1.0"
770 |
771 | generate-function@^2.0.0:
772 | version "2.0.0"
773 | resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74"
774 |
775 | generate-object-property@^1.1.0:
776 | version "1.2.0"
777 | resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0"
778 | dependencies:
779 | is-property "^1.0.0"
780 |
781 | genfun@^4.0.1:
782 | version "4.0.1"
783 | resolved "https://registry.yarnpkg.com/genfun/-/genfun-4.0.1.tgz#ed10041f2e4a7f1b0a38466d17a5c3e27df1dfc1"
784 |
785 | get-stream@^3.0.0:
786 | version "3.0.0"
787 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
788 |
789 | getpass@^0.1.1:
790 | version "0.1.7"
791 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
792 | dependencies:
793 | assert-plus "^1.0.0"
794 |
795 | gitbook-cli@^2.3.2:
796 | version "2.3.2"
797 | resolved "https://registry.yarnpkg.com/gitbook-cli/-/gitbook-cli-2.3.2.tgz#5e893582e1f743f6fa920c3c3eb36b62ea4a31a0"
798 | dependencies:
799 | bash-color "0.0.4"
800 | commander "2.11.0"
801 | fs-extra "3.0.1"
802 | lodash "4.17.4"
803 | npm "5.1.0"
804 | npmi "1.0.1"
805 | optimist "0.6.1"
806 | q "1.5.0"
807 | semver "5.3.0"
808 | tmp "0.0.31"
809 | user-home "2.0.0"
810 |
811 | github-url-from-git@~1.4.0:
812 | version "1.4.0"
813 | resolved "https://registry.yarnpkg.com/github-url-from-git/-/github-url-from-git-1.4.0.tgz#285e6b520819001bde128674704379e4ff03e0de"
814 |
815 | github-url-from-username-repo@~1.0.2:
816 | version "1.0.2"
817 | resolved "https://registry.yarnpkg.com/github-url-from-username-repo/-/github-url-from-username-repo-1.0.2.tgz#7dd79330d2abe69c10c2cef79714c97215791dfa"
818 |
819 | glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@~7.1.2:
820 | version "7.1.2"
821 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
822 | dependencies:
823 | fs.realpath "^1.0.0"
824 | inflight "^1.0.4"
825 | inherits "2"
826 | minimatch "^3.0.4"
827 | once "^1.3.0"
828 | path-is-absolute "^1.0.0"
829 |
830 | glob@~7.0.6:
831 | version "7.0.6"
832 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a"
833 | dependencies:
834 | fs.realpath "^1.0.0"
835 | inflight "^1.0.4"
836 | inherits "2"
837 | minimatch "^3.0.2"
838 | once "^1.3.0"
839 | path-is-absolute "^1.0.0"
840 |
841 | got@^6.7.1:
842 | version "6.7.1"
843 | resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0"
844 | dependencies:
845 | create-error-class "^3.0.0"
846 | duplexer3 "^0.1.4"
847 | get-stream "^3.0.0"
848 | is-redirect "^1.0.0"
849 | is-retry-allowed "^1.0.0"
850 | is-stream "^1.0.0"
851 | lowercase-keys "^1.0.0"
852 | safe-buffer "^5.0.1"
853 | timed-out "^4.0.0"
854 | unzip-response "^2.0.1"
855 | url-parse-lax "^1.0.0"
856 |
857 | graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@~4.1.11, graceful-fs@~4.1.6:
858 | version "4.1.11"
859 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
860 |
861 | har-schema@^1.0.5:
862 | version "1.0.5"
863 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
864 |
865 | har-schema@^2.0.0:
866 | version "2.0.0"
867 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
868 |
869 | har-validator@~2.0.6:
870 | version "2.0.6"
871 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d"
872 | dependencies:
873 | chalk "^1.1.1"
874 | commander "^2.9.0"
875 | is-my-json-valid "^2.12.4"
876 | pinkie-promise "^2.0.0"
877 |
878 | har-validator@~4.2.1:
879 | version "4.2.1"
880 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
881 | dependencies:
882 | ajv "^4.9.1"
883 | har-schema "^1.0.5"
884 |
885 | har-validator@~5.0.3:
886 | version "5.0.3"
887 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
888 | dependencies:
889 | ajv "^5.1.0"
890 | har-schema "^2.0.0"
891 |
892 | has-ansi@^2.0.0:
893 | version "2.0.0"
894 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
895 | dependencies:
896 | ansi-regex "^2.0.0"
897 |
898 | has-color@^0.1.7:
899 | version "0.1.7"
900 | resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f"
901 |
902 | has-flag@^2.0.0:
903 | version "2.0.0"
904 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
905 |
906 | has-unicode@^2.0.0, has-unicode@~2.0.1:
907 | version "2.0.1"
908 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
909 |
910 | hawk@~3.1.3:
911 | version "3.1.3"
912 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
913 | dependencies:
914 | boom "2.x.x"
915 | cryptiles "2.x.x"
916 | hoek "2.x.x"
917 | sntp "1.x.x"
918 |
919 | hawk@~6.0.2:
920 | version "6.0.2"
921 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"
922 | dependencies:
923 | boom "4.x.x"
924 | cryptiles "3.x.x"
925 | hoek "4.x.x"
926 | sntp "2.x.x"
927 |
928 | hoek@2.x.x:
929 | version "2.16.3"
930 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
931 |
932 | hoek@4.x.x:
933 | version "4.2.0"
934 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d"
935 |
936 | hosted-git-info@^2.1.4, hosted-git-info@^2.1.5, hosted-git-info@^2.4.2, hosted-git-info@~2.5.0:
937 | version "2.5.0"
938 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c"
939 |
940 | hosted-git-info@~2.1.5:
941 | version "2.1.5"
942 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b"
943 |
944 | http-cache-semantics@^3.8.0:
945 | version "3.8.1"
946 | resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2"
947 |
948 | http-proxy-agent@^2.0.0:
949 | version "2.0.0"
950 | resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.0.0.tgz#46482a2f0523a4d6082551709f469cb3e4a85ff4"
951 | dependencies:
952 | agent-base "4"
953 | debug "2"
954 |
955 | http-signature@~1.1.0:
956 | version "1.1.1"
957 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
958 | dependencies:
959 | assert-plus "^0.2.0"
960 | jsprim "^1.2.2"
961 | sshpk "^1.7.0"
962 |
963 | http-signature@~1.2.0:
964 | version "1.2.0"
965 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
966 | dependencies:
967 | assert-plus "^1.0.0"
968 | jsprim "^1.2.2"
969 | sshpk "^1.7.0"
970 |
971 | https-proxy-agent@^2.1.0:
972 | version "2.1.1"
973 | resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.1.1.tgz#a7ce4382a1ba8266ee848578778122d491260fd9"
974 | dependencies:
975 | agent-base "^4.1.0"
976 | debug "^3.1.0"
977 |
978 | humanize-ms@^1.2.1:
979 | version "1.2.1"
980 | resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed"
981 | dependencies:
982 | ms "^2.0.0"
983 |
984 | iconv-lite@~0.4.13:
985 | version "0.4.19"
986 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
987 |
988 | iferr@^0.1.5, iferr@~0.1.5:
989 | version "0.1.5"
990 | resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
991 |
992 | import-lazy@^2.1.0:
993 | version "2.1.0"
994 | resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
995 |
996 | imurmurhash@^0.1.4:
997 | version "0.1.4"
998 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
999 |
1000 | inflight@^1.0.4, inflight@~1.0.4, inflight@~1.0.6:
1001 | version "1.0.6"
1002 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
1003 | dependencies:
1004 | once "^1.3.0"
1005 | wrappy "1"
1006 |
1007 | inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
1008 | version "2.0.3"
1009 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
1010 |
1011 | ini@^1.3.4, ini@~1.3.0, ini@~1.3.4:
1012 | version "1.3.5"
1013 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
1014 |
1015 | init-package-json@~1.10.1:
1016 | version "1.10.1"
1017 | resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-1.10.1.tgz#cd873a167796befb99612b28762a0b6393fd8f6a"
1018 | dependencies:
1019 | glob "^7.1.1"
1020 | npm-package-arg "^4.0.0 || ^5.0.0"
1021 | promzard "^0.3.0"
1022 | read "~1.0.1"
1023 | read-package-json "1 || 2"
1024 | semver "2.x || 3.x || 4 || 5"
1025 | validate-npm-package-license "^3.0.1"
1026 | validate-npm-package-name "^3.0.0"
1027 |
1028 | init-package-json@~1.9.4:
1029 | version "1.9.6"
1030 | resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-1.9.6.tgz#789fc2b74466a4952b9ea77c0575bc78ebd60a61"
1031 | dependencies:
1032 | glob "^7.1.1"
1033 | npm-package-arg "^4.0.0 || ^5.0.0"
1034 | promzard "^0.3.0"
1035 | read "~1.0.1"
1036 | read-package-json "1 || 2"
1037 | semver "2.x || 3.x || 4 || 5"
1038 | validate-npm-package-license "^3.0.1"
1039 | validate-npm-package-name "^3.0.0"
1040 |
1041 | ip@^1.1.4:
1042 | version "1.1.5"
1043 | resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
1044 |
1045 | is-builtin-module@^1.0.0:
1046 | version "1.0.0"
1047 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
1048 | dependencies:
1049 | builtin-modules "^1.0.0"
1050 |
1051 | is-fullwidth-code-point@^1.0.0:
1052 | version "1.0.0"
1053 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
1054 | dependencies:
1055 | number-is-nan "^1.0.0"
1056 |
1057 | is-fullwidth-code-point@^2.0.0:
1058 | version "2.0.0"
1059 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
1060 |
1061 | is-my-json-valid@^2.12.4:
1062 | version "2.17.1"
1063 | resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.1.tgz#3da98914a70a22f0a8563ef1511a246c6fc55471"
1064 | dependencies:
1065 | generate-function "^2.0.0"
1066 | generate-object-property "^1.1.0"
1067 | jsonpointer "^4.0.0"
1068 | xtend "^4.0.0"
1069 |
1070 | is-npm@^1.0.0:
1071 | version "1.0.0"
1072 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4"
1073 |
1074 | is-obj@^1.0.0:
1075 | version "1.0.1"
1076 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
1077 |
1078 | is-property@^1.0.0:
1079 | version "1.0.2"
1080 | resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
1081 |
1082 | is-redirect@^1.0.0:
1083 | version "1.0.0"
1084 | resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"
1085 |
1086 | is-retry-allowed@^1.0.0:
1087 | version "1.1.0"
1088 | resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34"
1089 |
1090 | is-stream@^1.0.0, is-stream@^1.1.0:
1091 | version "1.1.0"
1092 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
1093 |
1094 | is-typedarray@~1.0.0:
1095 | version "1.0.0"
1096 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
1097 |
1098 | isarray@0.0.1:
1099 | version "0.0.1"
1100 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
1101 |
1102 | isarray@~1.0.0:
1103 | version "1.0.0"
1104 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
1105 |
1106 | isexe@^2.0.0:
1107 | version "2.0.0"
1108 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
1109 |
1110 | isstream@~0.1.2:
1111 | version "0.1.2"
1112 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
1113 |
1114 | jsbn@~0.1.0:
1115 | version "0.1.1"
1116 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
1117 |
1118 | json-parse-better-errors@^1.0.0:
1119 | version "1.0.1"
1120 | resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz#50183cd1b2d25275de069e9e71b467ac9eab973a"
1121 |
1122 | json-schema-traverse@^0.3.0:
1123 | version "0.3.1"
1124 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
1125 |
1126 | json-schema@0.2.3:
1127 | version "0.2.3"
1128 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
1129 |
1130 | json-stable-stringify@^1.0.1:
1131 | version "1.0.1"
1132 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
1133 | dependencies:
1134 | jsonify "~0.0.0"
1135 |
1136 | json-stringify-safe@~5.0.1:
1137 | version "5.0.1"
1138 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
1139 |
1140 | jsonfile@^3.0.0:
1141 | version "3.0.1"
1142 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66"
1143 | optionalDependencies:
1144 | graceful-fs "^4.1.6"
1145 |
1146 | jsonify@~0.0.0:
1147 | version "0.0.0"
1148 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
1149 |
1150 | jsonparse@^1.2.0:
1151 | version "1.3.1"
1152 | resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280"
1153 |
1154 | jsonpointer@^4.0.0:
1155 | version "4.0.1"
1156 | resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
1157 |
1158 | jsprim@^1.2.2:
1159 | version "1.4.1"
1160 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
1161 | dependencies:
1162 | assert-plus "1.0.0"
1163 | extsprintf "1.3.0"
1164 | json-schema "0.2.3"
1165 | verror "1.10.0"
1166 |
1167 | latest-version@^3.0.0:
1168 | version "3.1.0"
1169 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15"
1170 | dependencies:
1171 | package-json "^4.0.0"
1172 |
1173 | lazy-property@~1.0.0:
1174 | version "1.0.0"
1175 | resolved "https://registry.yarnpkg.com/lazy-property/-/lazy-property-1.0.0.tgz#84ddc4b370679ba8bd4cdcfa4c06b43d57111147"
1176 |
1177 | lockfile@~1.0.1, lockfile@~1.0.3:
1178 | version "1.0.3"
1179 | resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.3.tgz#2638fc39a0331e9cac1a04b71799931c9c50df79"
1180 |
1181 | lodash._baseuniq@~4.6.0:
1182 | version "4.6.0"
1183 | resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8"
1184 | dependencies:
1185 | lodash._createset "~4.0.0"
1186 | lodash._root "~3.0.0"
1187 |
1188 | lodash._createset@~4.0.0:
1189 | version "4.0.3"
1190 | resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26"
1191 |
1192 | lodash._root@~3.0.0:
1193 | version "3.0.1"
1194 | resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692"
1195 |
1196 | lodash.clonedeep@~4.5.0:
1197 | version "4.5.0"
1198 | resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
1199 |
1200 | lodash.pad@^4.1.0:
1201 | version "4.5.1"
1202 | resolved "https://registry.yarnpkg.com/lodash.pad/-/lodash.pad-4.5.1.tgz#4330949a833a7c8da22cc20f6a26c4d59debba70"
1203 |
1204 | lodash.padend@^4.1.0:
1205 | version "4.6.1"
1206 | resolved "https://registry.yarnpkg.com/lodash.padend/-/lodash.padend-4.6.1.tgz#53ccba047d06e158d311f45da625f4e49e6f166e"
1207 |
1208 | lodash.padstart@^4.1.0:
1209 | version "4.6.1"
1210 | resolved "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b"
1211 |
1212 | lodash.union@~4.6.0:
1213 | version "4.6.0"
1214 | resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88"
1215 |
1216 | lodash.uniq@~4.5.0:
1217 | version "4.5.0"
1218 | resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
1219 |
1220 | lodash.without@~4.4.0:
1221 | version "4.4.0"
1222 | resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac"
1223 |
1224 | lodash@4.17.4:
1225 | version "4.17.4"
1226 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
1227 |
1228 | lodash@^4.14.0:
1229 | version "4.17.5"
1230 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511"
1231 |
1232 | lowercase-keys@^1.0.0:
1233 | version "1.0.0"
1234 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306"
1235 |
1236 | lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@~4.1.1:
1237 | version "4.1.1"
1238 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55"
1239 | dependencies:
1240 | pseudomap "^1.0.2"
1241 | yallist "^2.1.2"
1242 |
1243 | lru-cache@~4.0.1:
1244 | version "4.0.2"
1245 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e"
1246 | dependencies:
1247 | pseudomap "^1.0.1"
1248 | yallist "^2.0.0"
1249 |
1250 | make-dir@^1.0.0:
1251 | version "1.1.0"
1252 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51"
1253 | dependencies:
1254 | pify "^3.0.0"
1255 |
1256 | make-fetch-happen@^2.4.13:
1257 | version "2.6.0"
1258 | resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-2.6.0.tgz#8474aa52198f6b1ae4f3094c04e8370d35ea8a38"
1259 | dependencies:
1260 | agentkeepalive "^3.3.0"
1261 | cacache "^10.0.0"
1262 | http-cache-semantics "^3.8.0"
1263 | http-proxy-agent "^2.0.0"
1264 | https-proxy-agent "^2.1.0"
1265 | lru-cache "^4.1.1"
1266 | mississippi "^1.2.0"
1267 | node-fetch-npm "^2.0.2"
1268 | promise-retry "^1.1.1"
1269 | socks-proxy-agent "^3.0.1"
1270 | ssri "^5.0.0"
1271 |
1272 | mime-db@~1.30.0:
1273 | version "1.30.0"
1274 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
1275 |
1276 | mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.7:
1277 | version "2.1.17"
1278 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
1279 | dependencies:
1280 | mime-db "~1.30.0"
1281 |
1282 | minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.3:
1283 | version "3.0.4"
1284 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
1285 | dependencies:
1286 | brace-expansion "^1.1.7"
1287 |
1288 | minimist@0.0.8:
1289 | version "0.0.8"
1290 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
1291 |
1292 | minimist@^1.2.0:
1293 | version "1.2.0"
1294 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
1295 |
1296 | minimist@~0.0.1:
1297 | version "0.0.10"
1298 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
1299 |
1300 | mississippi@^1.2.0, mississippi@^1.3.0, mississippi@~1.3.0:
1301 | version "1.3.1"
1302 | resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-1.3.1.tgz#2a8bb465e86550ac8b36a7b6f45599171d78671e"
1303 | dependencies:
1304 | concat-stream "^1.5.0"
1305 | duplexify "^3.4.2"
1306 | end-of-stream "^1.1.0"
1307 | flush-write-stream "^1.0.0"
1308 | from2 "^2.1.0"
1309 | parallel-transform "^1.1.0"
1310 | pump "^1.0.0"
1311 | pumpify "^1.3.3"
1312 | stream-each "^1.1.0"
1313 | through2 "^2.0.0"
1314 |
1315 | "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
1316 | version "0.5.1"
1317 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
1318 | dependencies:
1319 | minimist "0.0.8"
1320 |
1321 | move-concurrently@^1.0.1, move-concurrently@~1.0.1:
1322 | version "1.0.1"
1323 | resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
1324 | dependencies:
1325 | aproba "^1.1.1"
1326 | copy-concurrently "^1.0.0"
1327 | fs-write-stream-atomic "^1.0.8"
1328 | mkdirp "^0.5.1"
1329 | rimraf "^2.5.4"
1330 | run-queue "^1.0.3"
1331 |
1332 | ms@2.0.0:
1333 | version "2.0.0"
1334 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
1335 |
1336 | ms@^2.0.0:
1337 | version "2.1.1"
1338 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
1339 |
1340 | mute-stream@~0.0.4:
1341 | version "0.0.7"
1342 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
1343 |
1344 | node-fetch-npm@^2.0.2:
1345 | version "2.0.2"
1346 | resolved "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz#7258c9046182dca345b4208eda918daf33697ff7"
1347 | dependencies:
1348 | encoding "^0.1.11"
1349 | json-parse-better-errors "^1.0.0"
1350 | safe-buffer "^5.1.1"
1351 |
1352 | node-gyp@~3.6.0, node-gyp@~3.6.2:
1353 | version "3.6.2"
1354 | resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.2.tgz#9bfbe54562286284838e750eac05295853fa1c60"
1355 | dependencies:
1356 | fstream "^1.0.0"
1357 | glob "^7.0.3"
1358 | graceful-fs "^4.1.2"
1359 | minimatch "^3.0.2"
1360 | mkdirp "^0.5.0"
1361 | nopt "2 || 3"
1362 | npmlog "0 || 1 || 2 || 3 || 4"
1363 | osenv "0"
1364 | request "2"
1365 | rimraf "2"
1366 | semver "~5.3.0"
1367 | tar "^2.0.0"
1368 | which "1"
1369 |
1370 | node-uuid@~1.4.7:
1371 | version "1.4.8"
1372 | resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907"
1373 |
1374 | "nopt@2 || 3", nopt@~3.0.6:
1375 | version "3.0.6"
1376 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
1377 | dependencies:
1378 | abbrev "1"
1379 |
1380 | nopt@~4.0.1:
1381 | version "4.0.1"
1382 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
1383 | dependencies:
1384 | abbrev "1"
1385 | osenv "^0.1.4"
1386 |
1387 | normalize-git-url@~3.0.2:
1388 | version "3.0.2"
1389 | resolved "https://registry.yarnpkg.com/normalize-git-url/-/normalize-git-url-3.0.2.tgz#8e5f14be0bdaedb73e07200310aa416c27350fc4"
1390 |
1391 | normalize-package-data@^2.0.0, normalize-package-data@^2.4.0, "normalize-package-data@~1.0.1 || ^2.0.0", normalize-package-data@~2.4.0:
1392 | version "2.4.0"
1393 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
1394 | dependencies:
1395 | hosted-git-info "^2.1.4"
1396 | is-builtin-module "^1.0.0"
1397 | semver "2 || 3 || 4 || 5"
1398 | validate-npm-package-license "^3.0.1"
1399 |
1400 | normalize-package-data@~2.3.5:
1401 | version "2.3.8"
1402 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.8.tgz#d819eda2a9dedbd1ffa563ea4071d936782295bb"
1403 | dependencies:
1404 | hosted-git-info "^2.1.4"
1405 | is-builtin-module "^1.0.0"
1406 | semver "2 || 3 || 4 || 5"
1407 | validate-npm-package-license "^3.0.1"
1408 |
1409 | npm-cache-filename@~1.0.2:
1410 | version "1.0.2"
1411 | resolved "https://registry.yarnpkg.com/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz#ded306c5b0bfc870a9e9faf823bc5f283e05ae11"
1412 |
1413 | npm-install-checks@~1.0.7:
1414 | version "1.0.7"
1415 | resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-1.0.7.tgz#6d91aeda0ac96801f1ed7aadee116a6c0a086a57"
1416 | dependencies:
1417 | npmlog "0.1 || 1 || 2"
1418 | semver "^2.3.0 || 3.x || 4 || 5"
1419 |
1420 | npm-install-checks@~3.0.0:
1421 | version "3.0.0"
1422 | resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-3.0.0.tgz#d4aecdfd51a53e3723b7b2f93b2ee28e307bc0d7"
1423 | dependencies:
1424 | semver "^2.3.0 || 3.x || 4 || 5"
1425 |
1426 | "npm-package-arg@^3.0.0 || ^4.0.0", npm-package-arg@^4.1.1:
1427 | version "4.2.1"
1428 | resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-4.2.1.tgz#593303fdea85f7c422775f17f9eb7670f680e3ec"
1429 | dependencies:
1430 | hosted-git-info "^2.1.5"
1431 | semver "^5.1.0"
1432 |
1433 | "npm-package-arg@^3.0.0 || ^4.0.0 || ^5.0.0", "npm-package-arg@^4.0.0 || ^5.0.0", npm-package-arg@^5.1.2, npm-package-arg@~5.1.2:
1434 | version "5.1.2"
1435 | resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-5.1.2.tgz#fb18d17bb61e60900d6312619919bd753755ab37"
1436 | dependencies:
1437 | hosted-git-info "^2.4.2"
1438 | osenv "^0.1.4"
1439 | semver "^5.1.0"
1440 | validate-npm-package-name "^3.0.0"
1441 |
1442 | npm-package-arg@~4.1.0:
1443 | version "4.1.1"
1444 | resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-4.1.1.tgz#86d9dca985b4c5e5d59772dfd5de6919998a495a"
1445 | dependencies:
1446 | hosted-git-info "^2.1.4"
1447 | semver "4 || 5"
1448 |
1449 | npm-pick-manifest@^1.0.4:
1450 | version "1.0.4"
1451 | resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-1.0.4.tgz#a5ee6510c1fe7221c0bc0414e70924c14045f7e8"
1452 | dependencies:
1453 | npm-package-arg "^5.1.2"
1454 | semver "^5.3.0"
1455 |
1456 | npm-registry-client@~7.2.1:
1457 | version "7.2.1"
1458 | resolved "https://registry.yarnpkg.com/npm-registry-client/-/npm-registry-client-7.2.1.tgz#c792266b088cc313f8525e7e35248626c723db75"
1459 | dependencies:
1460 | concat-stream "^1.5.2"
1461 | graceful-fs "^4.1.6"
1462 | normalize-package-data "~1.0.1 || ^2.0.0"
1463 | npm-package-arg "^3.0.0 || ^4.0.0"
1464 | once "^1.3.3"
1465 | request "^2.74.0"
1466 | retry "^0.10.0"
1467 | semver "2 >=2.2.1 || 3.x || 4 || 5"
1468 | slide "^1.1.3"
1469 | optionalDependencies:
1470 | npmlog "~2.0.0 || ~3.1.0"
1471 |
1472 | npm-registry-client@~8.4.0:
1473 | version "8.4.0"
1474 | resolved "https://registry.yarnpkg.com/npm-registry-client/-/npm-registry-client-8.4.0.tgz#d52b901685647fc62a4c03eafecb6ceaa5018d4c"
1475 | dependencies:
1476 | concat-stream "^1.5.2"
1477 | graceful-fs "^4.1.6"
1478 | normalize-package-data "~1.0.1 || ^2.0.0"
1479 | npm-package-arg "^3.0.0 || ^4.0.0 || ^5.0.0"
1480 | once "^1.3.3"
1481 | request "^2.74.0"
1482 | retry "^0.10.0"
1483 | semver "2 >=2.2.1 || 3.x || 4 || 5"
1484 | slide "^1.1.3"
1485 | ssri "^4.1.2"
1486 | optionalDependencies:
1487 | npmlog "2 || ^3.1.0 || ^4.0.0"
1488 |
1489 | npm-run-path@^2.0.0:
1490 | version "2.0.2"
1491 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
1492 | dependencies:
1493 | path-key "^2.0.0"
1494 |
1495 | npm-user-validate@~0.1.5:
1496 | version "0.1.5"
1497 | resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-0.1.5.tgz#52465d50c2d20294a57125b996baedbf56c5004b"
1498 |
1499 | npm-user-validate@~1.0.0:
1500 | version "1.0.0"
1501 | resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.0.tgz#8ceca0f5cea04d4e93519ef72d0557a75122e951"
1502 |
1503 | npm@5.1.0:
1504 | version "5.1.0"
1505 | resolved "https://registry.yarnpkg.com/npm/-/npm-5.1.0.tgz#cf8201e044018e9c89532041c90094541982b2c0"
1506 | dependencies:
1507 | JSONStream "~1.3.1"
1508 | abbrev "~1.1.0"
1509 | ansi-regex "~3.0.0"
1510 | ansicolors "~0.3.2"
1511 | ansistyles "~0.1.3"
1512 | aproba "~1.1.2"
1513 | archy "~1.0.0"
1514 | bluebird "~3.5.0"
1515 | cacache "~9.2.9"
1516 | call-limit "~1.1.0"
1517 | chownr "~1.0.1"
1518 | cmd-shim "~2.0.2"
1519 | columnify "~1.5.4"
1520 | config-chain "~1.1.11"
1521 | detect-indent "~5.0.0"
1522 | dezalgo "~1.0.3"
1523 | editor "~1.0.0"
1524 | fs-vacuum "~1.2.10"
1525 | fs-write-stream-atomic "~1.0.10"
1526 | fstream "~1.0.11"
1527 | fstream-npm "~1.2.1"
1528 | glob "~7.1.2"
1529 | graceful-fs "~4.1.11"
1530 | has-unicode "~2.0.1"
1531 | hosted-git-info "~2.5.0"
1532 | iferr "~0.1.5"
1533 | inflight "~1.0.6"
1534 | inherits "~2.0.3"
1535 | ini "~1.3.4"
1536 | init-package-json "~1.10.1"
1537 | lazy-property "~1.0.0"
1538 | lockfile "~1.0.3"
1539 | lodash._baseuniq "~4.6.0"
1540 | lodash.clonedeep "~4.5.0"
1541 | lodash.union "~4.6.0"
1542 | lodash.uniq "~4.5.0"
1543 | lodash.without "~4.4.0"
1544 | lru-cache "~4.1.1"
1545 | mississippi "~1.3.0"
1546 | mkdirp "~0.5.1"
1547 | move-concurrently "~1.0.1"
1548 | node-gyp "~3.6.2"
1549 | nopt "~4.0.1"
1550 | normalize-package-data "~2.4.0"
1551 | npm-cache-filename "~1.0.2"
1552 | npm-install-checks "~3.0.0"
1553 | npm-package-arg "~5.1.2"
1554 | npm-registry-client "~8.4.0"
1555 | npm-user-validate "~1.0.0"
1556 | npmlog "~4.1.2"
1557 | once "~1.4.0"
1558 | opener "~1.4.3"
1559 | osenv "~0.1.4"
1560 | pacote "~2.7.38"
1561 | path-is-inside "~1.0.2"
1562 | promise-inflight "~1.0.1"
1563 | read "~1.0.7"
1564 | read-cmd-shim "~1.0.1"
1565 | read-installed "~4.0.3"
1566 | read-package-json "~2.0.9"
1567 | read-package-tree "~5.1.6"
1568 | readable-stream "~2.3.2"
1569 | request "~2.81.0"
1570 | retry "~0.10.1"
1571 | rimraf "~2.6.1"
1572 | safe-buffer "~5.1.1"
1573 | semver "~5.3.0"
1574 | sha "~2.0.1"
1575 | slide "~1.1.6"
1576 | sorted-object "~2.0.1"
1577 | sorted-union-stream "~2.1.3"
1578 | ssri "~4.1.6"
1579 | strip-ansi "~4.0.0"
1580 | tar "~2.2.1"
1581 | text-table "~0.2.0"
1582 | uid-number "0.0.6"
1583 | umask "~1.1.0"
1584 | unique-filename "~1.1.0"
1585 | unpipe "~1.0.0"
1586 | update-notifier "~2.2.0"
1587 | uuid "~3.1.0"
1588 | validate-npm-package-name "~3.0.0"
1589 | which "~1.2.14"
1590 | worker-farm "~1.3.1"
1591 | wrappy "~1.0.2"
1592 | write-file-atomic "~2.1.0"
1593 |
1594 | npm@^2.1.12:
1595 | version "2.15.12"
1596 | resolved "https://registry.yarnpkg.com/npm/-/npm-2.15.12.tgz#df7c3ed5a277c3f9d4b5d819b05311d10a200ae6"
1597 | dependencies:
1598 | abbrev "~1.0.9"
1599 | ansi "~0.3.1"
1600 | ansicolors "~0.3.2"
1601 | ansistyles "~0.1.3"
1602 | archy "~1.0.0"
1603 | async-some "~1.0.2"
1604 | block-stream "0.0.9"
1605 | char-spinner "~1.0.1"
1606 | chmodr "~1.0.2"
1607 | chownr "~1.0.1"
1608 | cmd-shim "~2.0.2"
1609 | columnify "~1.5.4"
1610 | config-chain "~1.1.10"
1611 | dezalgo "~1.0.3"
1612 | editor "~1.0.0"
1613 | fs-vacuum "~1.2.9"
1614 | fs-write-stream-atomic "~1.0.8"
1615 | fstream "~1.0.10"
1616 | fstream-npm "~1.1.1"
1617 | github-url-from-git "~1.4.0"
1618 | github-url-from-username-repo "~1.0.2"
1619 | glob "~7.0.6"
1620 | graceful-fs "~4.1.6"
1621 | hosted-git-info "~2.1.5"
1622 | inflight "~1.0.4"
1623 | inherits "~2.0.3"
1624 | ini "~1.3.4"
1625 | init-package-json "~1.9.4"
1626 | lockfile "~1.0.1"
1627 | lru-cache "~4.0.1"
1628 | minimatch "~3.0.3"
1629 | mkdirp "~0.5.1"
1630 | node-gyp "~3.6.0"
1631 | nopt "~3.0.6"
1632 | normalize-git-url "~3.0.2"
1633 | normalize-package-data "~2.3.5"
1634 | npm-cache-filename "~1.0.2"
1635 | npm-install-checks "~1.0.7"
1636 | npm-package-arg "~4.1.0"
1637 | npm-registry-client "~7.2.1"
1638 | npm-user-validate "~0.1.5"
1639 | npmlog "~2.0.4"
1640 | once "~1.4.0"
1641 | opener "~1.4.1"
1642 | osenv "~0.1.3"
1643 | path-is-inside "~1.0.0"
1644 | read "~1.0.7"
1645 | read-installed "~4.0.3"
1646 | read-package-json "~2.0.4"
1647 | readable-stream "~2.1.5"
1648 | realize-package-specifier "~3.0.1"
1649 | request "~2.74.0"
1650 | retry "~0.10.0"
1651 | rimraf "~2.5.4"
1652 | semver "~5.1.0"
1653 | sha "~2.0.1"
1654 | slide "~1.1.6"
1655 | sorted-object "~2.0.0"
1656 | spdx-license-ids "~1.2.2"
1657 | strip-ansi "~3.0.1"
1658 | tar "~2.2.1"
1659 | text-table "~0.2.0"
1660 | uid-number "0.0.6"
1661 | umask "~1.1.0"
1662 | validate-npm-package-license "~3.0.1"
1663 | validate-npm-package-name "~2.2.2"
1664 | which "~1.2.11"
1665 | wrappy "~1.0.2"
1666 | write-file-atomic "~1.1.4"
1667 |
1668 | npmi@1.0.1:
1669 | version "1.0.1"
1670 | resolved "https://registry.yarnpkg.com/npmi/-/npmi-1.0.1.tgz#15d769273547545e6809dcf0ce18aed48b0290e2"
1671 | dependencies:
1672 | npm "^2.1.12"
1673 | semver "^4.1.0"
1674 |
1675 | "npmlog@0 || 1 || 2 || 3 || 4", "npmlog@2 || ^3.1.0 || ^4.0.0", npmlog@~4.1.2:
1676 | version "4.1.2"
1677 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
1678 | dependencies:
1679 | are-we-there-yet "~1.1.2"
1680 | console-control-strings "~1.1.0"
1681 | gauge "~2.7.3"
1682 | set-blocking "~2.0.0"
1683 |
1684 | "npmlog@0.1 || 1 || 2", npmlog@~2.0.4:
1685 | version "2.0.4"
1686 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-2.0.4.tgz#98b52530f2514ca90d09ec5b22c8846722375692"
1687 | dependencies:
1688 | ansi "~0.3.1"
1689 | are-we-there-yet "~1.1.2"
1690 | gauge "~1.2.5"
1691 |
1692 | "npmlog@~2.0.0 || ~3.1.0":
1693 | version "3.1.2"
1694 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-3.1.2.tgz#2d46fa874337af9498a2f12bb43d8d0be4a36873"
1695 | dependencies:
1696 | are-we-there-yet "~1.1.2"
1697 | console-control-strings "~1.1.0"
1698 | gauge "~2.6.0"
1699 | set-blocking "~2.0.0"
1700 |
1701 | number-is-nan@^1.0.0:
1702 | version "1.0.1"
1703 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
1704 |
1705 | oauth-sign@~0.8.1, oauth-sign@~0.8.2:
1706 | version "0.8.2"
1707 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
1708 |
1709 | object-assign@^4.1.0:
1710 | version "4.1.1"
1711 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
1712 |
1713 | once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0, once@~1.4.0:
1714 | version "1.4.0"
1715 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1716 | dependencies:
1717 | wrappy "1"
1718 |
1719 | opener@~1.4.1, opener@~1.4.3:
1720 | version "1.4.3"
1721 | resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8"
1722 |
1723 | optimist@0.6.1:
1724 | version "0.6.1"
1725 | resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
1726 | dependencies:
1727 | minimist "~0.0.1"
1728 | wordwrap "~0.0.2"
1729 |
1730 | os-homedir@^1.0.0:
1731 | version "1.0.2"
1732 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
1733 |
1734 | os-tmpdir@^1.0.0, os-tmpdir@~1.0.1:
1735 | version "1.0.2"
1736 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
1737 |
1738 | osenv@0, osenv@^0.1.4, osenv@~0.1.3, osenv@~0.1.4:
1739 | version "0.1.4"
1740 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644"
1741 | dependencies:
1742 | os-homedir "^1.0.0"
1743 | os-tmpdir "^1.0.0"
1744 |
1745 | p-finally@^1.0.0:
1746 | version "1.0.0"
1747 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
1748 |
1749 | package-json@^4.0.0:
1750 | version "4.0.1"
1751 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed"
1752 | dependencies:
1753 | got "^6.7.1"
1754 | registry-auth-token "^3.0.1"
1755 | registry-url "^3.0.3"
1756 | semver "^5.1.0"
1757 |
1758 | pacote@~2.7.38:
1759 | version "2.7.38"
1760 | resolved "https://registry.yarnpkg.com/pacote/-/pacote-2.7.38.tgz#5091f8774298c26c3eca24606037f1bb73db74c1"
1761 | dependencies:
1762 | bluebird "^3.5.0"
1763 | cacache "^9.2.9"
1764 | glob "^7.1.2"
1765 | lru-cache "^4.1.1"
1766 | make-fetch-happen "^2.4.13"
1767 | minimatch "^3.0.4"
1768 | mississippi "^1.2.0"
1769 | normalize-package-data "^2.4.0"
1770 | npm-package-arg "^5.1.2"
1771 | npm-pick-manifest "^1.0.4"
1772 | osenv "^0.1.4"
1773 | promise-inflight "^1.0.1"
1774 | promise-retry "^1.1.1"
1775 | protoduck "^4.0.0"
1776 | safe-buffer "^5.1.1"
1777 | semver "^5.3.0"
1778 | ssri "^4.1.6"
1779 | tar-fs "^1.15.3"
1780 | tar-stream "^1.5.4"
1781 | unique-filename "^1.1.0"
1782 | which "^1.2.12"
1783 |
1784 | parallel-transform@^1.1.0:
1785 | version "1.1.0"
1786 | resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06"
1787 | dependencies:
1788 | cyclist "~0.2.2"
1789 | inherits "^2.0.3"
1790 | readable-stream "^2.1.5"
1791 |
1792 | path-is-absolute@^1.0.0:
1793 | version "1.0.1"
1794 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
1795 |
1796 | path-is-inside@^1.0.1, path-is-inside@~1.0.0, path-is-inside@~1.0.2:
1797 | version "1.0.2"
1798 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
1799 |
1800 | path-key@^2.0.0:
1801 | version "2.0.1"
1802 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
1803 |
1804 | performance-now@^0.2.0:
1805 | version "0.2.0"
1806 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
1807 |
1808 | performance-now@^2.1.0:
1809 | version "2.1.0"
1810 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
1811 |
1812 | pify@^3.0.0:
1813 | version "3.0.0"
1814 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
1815 |
1816 | pinkie-promise@^2.0.0:
1817 | version "2.0.1"
1818 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
1819 | dependencies:
1820 | pinkie "^2.0.0"
1821 |
1822 | pinkie@^2.0.0:
1823 | version "2.0.4"
1824 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
1825 |
1826 | prepend-http@^1.0.1:
1827 | version "1.0.4"
1828 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
1829 |
1830 | process-nextick-args@~1.0.6:
1831 | version "1.0.7"
1832 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
1833 |
1834 | promise-inflight@^1.0.1, promise-inflight@~1.0.1:
1835 | version "1.0.1"
1836 | resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
1837 |
1838 | promise-retry@^1.1.1:
1839 | version "1.1.1"
1840 | resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d"
1841 | dependencies:
1842 | err-code "^1.0.0"
1843 | retry "^0.10.0"
1844 |
1845 | promzard@^0.3.0:
1846 | version "0.3.0"
1847 | resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee"
1848 | dependencies:
1849 | read "1"
1850 |
1851 | proto-list@~1.2.1:
1852 | version "1.2.4"
1853 | resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
1854 |
1855 | protoduck@^4.0.0:
1856 | version "4.0.0"
1857 | resolved "https://registry.yarnpkg.com/protoduck/-/protoduck-4.0.0.tgz#fe4874d8c7913366cfd9ead12453a22cd3657f8e"
1858 | dependencies:
1859 | genfun "^4.0.1"
1860 |
1861 | prr@~1.0.1:
1862 | version "1.0.1"
1863 | resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
1864 |
1865 | pseudomap@^1.0.1, pseudomap@^1.0.2:
1866 | version "1.0.2"
1867 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
1868 |
1869 | pump@^1.0.0:
1870 | version "1.0.3"
1871 | resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954"
1872 | dependencies:
1873 | end-of-stream "^1.1.0"
1874 | once "^1.3.1"
1875 |
1876 | pump@^2.0.0:
1877 | version "2.0.1"
1878 | resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
1879 | dependencies:
1880 | end-of-stream "^1.1.0"
1881 | once "^1.3.1"
1882 |
1883 | pumpify@^1.3.3:
1884 | version "1.4.0"
1885 | resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.4.0.tgz#80b7c5df7e24153d03f0e7ac8a05a5d068bd07fb"
1886 | dependencies:
1887 | duplexify "^3.5.3"
1888 | inherits "^2.0.3"
1889 | pump "^2.0.0"
1890 |
1891 | punycode@^1.4.1:
1892 | version "1.4.1"
1893 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
1894 |
1895 | q@1.5.0:
1896 | version "1.5.0"
1897 | resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1"
1898 |
1899 | qs@~6.2.0:
1900 | version "6.2.3"
1901 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.3.tgz#1cfcb25c10a9b2b483053ff39f5dfc9233908cfe"
1902 |
1903 | qs@~6.4.0:
1904 | version "6.4.0"
1905 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
1906 |
1907 | qs@~6.5.1:
1908 | version "6.5.1"
1909 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
1910 |
1911 | rc@^1.0.1, rc@^1.1.6:
1912 | version "1.2.5"
1913 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.5.tgz#275cd687f6e3b36cc756baa26dfee80a790301fd"
1914 | dependencies:
1915 | deep-extend "~0.4.0"
1916 | ini "~1.3.0"
1917 | minimist "^1.2.0"
1918 | strip-json-comments "~2.0.1"
1919 |
1920 | read-cmd-shim@~1.0.1:
1921 | version "1.0.1"
1922 | resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz#2d5d157786a37c055d22077c32c53f8329e91c7b"
1923 | dependencies:
1924 | graceful-fs "^4.1.2"
1925 |
1926 | read-installed@~4.0.3:
1927 | version "4.0.3"
1928 | resolved "https://registry.yarnpkg.com/read-installed/-/read-installed-4.0.3.tgz#ff9b8b67f187d1e4c29b9feb31f6b223acd19067"
1929 | dependencies:
1930 | debuglog "^1.0.1"
1931 | read-package-json "^2.0.0"
1932 | readdir-scoped-modules "^1.0.0"
1933 | semver "2 || 3 || 4 || 5"
1934 | slide "~1.1.3"
1935 | util-extend "^1.0.1"
1936 | optionalDependencies:
1937 | graceful-fs "^4.1.2"
1938 |
1939 | "read-package-json@1 || 2", read-package-json@^2.0.0, read-package-json@~2.0.4, read-package-json@~2.0.9:
1940 | version "2.0.12"
1941 | resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.0.12.tgz#68ea45f98b3741cb6e10ae3bbd42a605026a6951"
1942 | dependencies:
1943 | glob "^7.1.1"
1944 | json-parse-better-errors "^1.0.0"
1945 | normalize-package-data "^2.0.0"
1946 | slash "^1.0.0"
1947 | optionalDependencies:
1948 | graceful-fs "^4.1.2"
1949 |
1950 | read-package-tree@~5.1.6:
1951 | version "5.1.6"
1952 | resolved "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.1.6.tgz#4f03e83d0486856fb60d97c94882841c2a7b1b7a"
1953 | dependencies:
1954 | debuglog "^1.0.1"
1955 | dezalgo "^1.0.0"
1956 | once "^1.3.0"
1957 | read-package-json "^2.0.0"
1958 | readdir-scoped-modules "^1.0.0"
1959 |
1960 | read@1, read@~1.0.1, read@~1.0.7:
1961 | version "1.0.7"
1962 | resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4"
1963 | dependencies:
1964 | mute-stream "~0.0.4"
1965 |
1966 | "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@~2.3.2:
1967 | version "2.3.3"
1968 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
1969 | dependencies:
1970 | core-util-is "~1.0.0"
1971 | inherits "~2.0.3"
1972 | isarray "~1.0.0"
1973 | process-nextick-args "~1.0.6"
1974 | safe-buffer "~5.1.1"
1975 | string_decoder "~1.0.3"
1976 | util-deprecate "~1.0.1"
1977 |
1978 | readable-stream@~1.1.10:
1979 | version "1.1.14"
1980 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9"
1981 | dependencies:
1982 | core-util-is "~1.0.0"
1983 | inherits "~2.0.1"
1984 | isarray "0.0.1"
1985 | string_decoder "~0.10.x"
1986 |
1987 | readable-stream@~2.0.5:
1988 | version "2.0.6"
1989 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e"
1990 | dependencies:
1991 | core-util-is "~1.0.0"
1992 | inherits "~2.0.1"
1993 | isarray "~1.0.0"
1994 | process-nextick-args "~1.0.6"
1995 | string_decoder "~0.10.x"
1996 | util-deprecate "~1.0.1"
1997 |
1998 | readable-stream@~2.1.5:
1999 | version "2.1.5"
2000 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0"
2001 | dependencies:
2002 | buffer-shims "^1.0.0"
2003 | core-util-is "~1.0.0"
2004 | inherits "~2.0.1"
2005 | isarray "~1.0.0"
2006 | process-nextick-args "~1.0.6"
2007 | string_decoder "~0.10.x"
2008 | util-deprecate "~1.0.1"
2009 |
2010 | readdir-scoped-modules@^1.0.0:
2011 | version "1.0.2"
2012 | resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747"
2013 | dependencies:
2014 | debuglog "^1.0.1"
2015 | dezalgo "^1.0.0"
2016 | graceful-fs "^4.1.2"
2017 | once "^1.3.0"
2018 |
2019 | realize-package-specifier@~3.0.1:
2020 | version "3.0.3"
2021 | resolved "https://registry.yarnpkg.com/realize-package-specifier/-/realize-package-specifier-3.0.3.tgz#d0def882952b8de3f67eba5e91199661271f41f4"
2022 | dependencies:
2023 | dezalgo "^1.0.1"
2024 | npm-package-arg "^4.1.1"
2025 |
2026 | registry-auth-token@^3.0.1:
2027 | version "3.3.2"
2028 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20"
2029 | dependencies:
2030 | rc "^1.1.6"
2031 | safe-buffer "^5.0.1"
2032 |
2033 | registry-url@^3.0.3:
2034 | version "3.1.0"
2035 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942"
2036 | dependencies:
2037 | rc "^1.0.1"
2038 |
2039 | request@2, request@^2.74.0:
2040 | version "2.83.0"
2041 | resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
2042 | dependencies:
2043 | aws-sign2 "~0.7.0"
2044 | aws4 "^1.6.0"
2045 | caseless "~0.12.0"
2046 | combined-stream "~1.0.5"
2047 | extend "~3.0.1"
2048 | forever-agent "~0.6.1"
2049 | form-data "~2.3.1"
2050 | har-validator "~5.0.3"
2051 | hawk "~6.0.2"
2052 | http-signature "~1.2.0"
2053 | is-typedarray "~1.0.0"
2054 | isstream "~0.1.2"
2055 | json-stringify-safe "~5.0.1"
2056 | mime-types "~2.1.17"
2057 | oauth-sign "~0.8.2"
2058 | performance-now "^2.1.0"
2059 | qs "~6.5.1"
2060 | safe-buffer "^5.1.1"
2061 | stringstream "~0.0.5"
2062 | tough-cookie "~2.3.3"
2063 | tunnel-agent "^0.6.0"
2064 | uuid "^3.1.0"
2065 |
2066 | request@~2.74.0:
2067 | version "2.74.0"
2068 | resolved "https://registry.yarnpkg.com/request/-/request-2.74.0.tgz#7693ca768bbb0ea5c8ce08c084a45efa05b892ab"
2069 | dependencies:
2070 | aws-sign2 "~0.6.0"
2071 | aws4 "^1.2.1"
2072 | bl "~1.1.2"
2073 | caseless "~0.11.0"
2074 | combined-stream "~1.0.5"
2075 | extend "~3.0.0"
2076 | forever-agent "~0.6.1"
2077 | form-data "~1.0.0-rc4"
2078 | har-validator "~2.0.6"
2079 | hawk "~3.1.3"
2080 | http-signature "~1.1.0"
2081 | is-typedarray "~1.0.0"
2082 | isstream "~0.1.2"
2083 | json-stringify-safe "~5.0.1"
2084 | mime-types "~2.1.7"
2085 | node-uuid "~1.4.7"
2086 | oauth-sign "~0.8.1"
2087 | qs "~6.2.0"
2088 | stringstream "~0.0.4"
2089 | tough-cookie "~2.3.0"
2090 | tunnel-agent "~0.4.1"
2091 |
2092 | request@~2.81.0:
2093 | version "2.81.0"
2094 | resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
2095 | dependencies:
2096 | aws-sign2 "~0.6.0"
2097 | aws4 "^1.2.1"
2098 | caseless "~0.12.0"
2099 | combined-stream "~1.0.5"
2100 | extend "~3.0.0"
2101 | forever-agent "~0.6.1"
2102 | form-data "~2.1.1"
2103 | har-validator "~4.2.1"
2104 | hawk "~3.1.3"
2105 | http-signature "~1.1.0"
2106 | is-typedarray "~1.0.0"
2107 | isstream "~0.1.2"
2108 | json-stringify-safe "~5.0.1"
2109 | mime-types "~2.1.7"
2110 | oauth-sign "~0.8.1"
2111 | performance-now "^0.2.0"
2112 | qs "~6.4.0"
2113 | safe-buffer "^5.0.1"
2114 | stringstream "~0.0.4"
2115 | tough-cookie "~2.3.0"
2116 | tunnel-agent "^0.6.0"
2117 | uuid "^3.0.0"
2118 |
2119 | retry@^0.10.0, retry@~0.10.0, retry@~0.10.1:
2120 | version "0.10.1"
2121 | resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4"
2122 |
2123 | rimraf@2, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@~2.6.1:
2124 | version "2.6.2"
2125 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
2126 | dependencies:
2127 | glob "^7.0.5"
2128 |
2129 | rimraf@~2.5.4:
2130 | version "2.5.4"
2131 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04"
2132 | dependencies:
2133 | glob "^7.0.5"
2134 |
2135 | run-queue@^1.0.0, run-queue@^1.0.3:
2136 | version "1.0.3"
2137 | resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
2138 | dependencies:
2139 | aproba "^1.1.1"
2140 |
2141 | 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:
2142 | version "5.1.1"
2143 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
2144 |
2145 | semver-diff@^2.0.0:
2146 | version "2.1.0"
2147 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36"
2148 | dependencies:
2149 | semver "^5.0.3"
2150 |
2151 | "semver@2 >=2.2.1 || 3.x || 4 || 5", "semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0:
2152 | version "5.5.0"
2153 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
2154 |
2155 | semver@5.3.0, semver@~5.3.0:
2156 | version "5.3.0"
2157 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
2158 |
2159 | semver@^4.1.0:
2160 | version "4.3.6"
2161 | resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da"
2162 |
2163 | semver@~5.1.0:
2164 | version "5.1.1"
2165 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.1.1.tgz#a3292a373e6f3e0798da0b20641b9a9c5bc47e19"
2166 |
2167 | set-blocking@~2.0.0:
2168 | version "2.0.0"
2169 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
2170 |
2171 | sha@~2.0.1:
2172 | version "2.0.1"
2173 | resolved "https://registry.yarnpkg.com/sha/-/sha-2.0.1.tgz#6030822fbd2c9823949f8f72ed6411ee5cf25aae"
2174 | dependencies:
2175 | graceful-fs "^4.1.2"
2176 | readable-stream "^2.0.2"
2177 |
2178 | shebang-command@^1.2.0:
2179 | version "1.2.0"
2180 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
2181 | dependencies:
2182 | shebang-regex "^1.0.0"
2183 |
2184 | shebang-regex@^1.0.0:
2185 | version "1.0.0"
2186 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
2187 |
2188 | signal-exit@^3.0.0, signal-exit@^3.0.2:
2189 | version "3.0.2"
2190 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
2191 |
2192 | slash@^1.0.0:
2193 | version "1.0.0"
2194 | resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
2195 |
2196 | slide@^1.1.3, slide@^1.1.5, slide@~1.1.3, slide@~1.1.6:
2197 | version "1.1.6"
2198 | resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
2199 |
2200 | smart-buffer@^1.0.13:
2201 | version "1.1.15"
2202 | resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16"
2203 |
2204 | sntp@1.x.x:
2205 | version "1.0.9"
2206 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
2207 | dependencies:
2208 | hoek "2.x.x"
2209 |
2210 | sntp@2.x.x:
2211 | version "2.1.0"
2212 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8"
2213 | dependencies:
2214 | hoek "4.x.x"
2215 |
2216 | socks-proxy-agent@^3.0.1:
2217 | version "3.0.1"
2218 | resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz#2eae7cf8e2a82d34565761539a7f9718c5617659"
2219 | dependencies:
2220 | agent-base "^4.1.0"
2221 | socks "^1.1.10"
2222 |
2223 | socks@^1.1.10:
2224 | version "1.1.10"
2225 | resolved "https://registry.yarnpkg.com/socks/-/socks-1.1.10.tgz#5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a"
2226 | dependencies:
2227 | ip "^1.1.4"
2228 | smart-buffer "^1.0.13"
2229 |
2230 | sorted-object@~2.0.0, sorted-object@~2.0.1:
2231 | version "2.0.1"
2232 | resolved "https://registry.yarnpkg.com/sorted-object/-/sorted-object-2.0.1.tgz#7d631f4bd3a798a24af1dffcfbfe83337a5df5fc"
2233 |
2234 | sorted-union-stream@~2.1.3:
2235 | version "2.1.3"
2236 | resolved "https://registry.yarnpkg.com/sorted-union-stream/-/sorted-union-stream-2.1.3.tgz#c7794c7e077880052ff71a8d4a2dbb4a9a638ac7"
2237 | dependencies:
2238 | from2 "^1.3.0"
2239 | stream-iterate "^1.1.0"
2240 |
2241 | spdx-correct@~1.0.0:
2242 | version "1.0.2"
2243 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
2244 | dependencies:
2245 | spdx-license-ids "^1.0.2"
2246 |
2247 | spdx-expression-parse@~1.0.0:
2248 | version "1.0.4"
2249 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c"
2250 |
2251 | spdx-license-ids@^1.0.2, spdx-license-ids@~1.2.2:
2252 | version "1.2.2"
2253 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57"
2254 |
2255 | sshpk@^1.7.0:
2256 | version "1.13.1"
2257 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
2258 | dependencies:
2259 | asn1 "~0.2.3"
2260 | assert-plus "^1.0.0"
2261 | dashdash "^1.12.0"
2262 | getpass "^0.1.1"
2263 | optionalDependencies:
2264 | bcrypt-pbkdf "^1.0.0"
2265 | ecc-jsbn "~0.1.1"
2266 | jsbn "~0.1.0"
2267 | tweetnacl "~0.14.0"
2268 |
2269 | ssri@^4.1.2, ssri@^4.1.6, ssri@~4.1.6:
2270 | version "4.1.6"
2271 | resolved "https://registry.yarnpkg.com/ssri/-/ssri-4.1.6.tgz#0cb49b6ac84457e7bdd466cb730c3cb623e9a25b"
2272 | dependencies:
2273 | safe-buffer "^5.1.0"
2274 |
2275 | ssri@^5.0.0:
2276 | version "5.1.0"
2277 | resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.1.0.tgz#2cbf1df36b74d0fc91fcf89640a4b3e1d10b1899"
2278 | dependencies:
2279 | safe-buffer "^5.1.0"
2280 |
2281 | stream-each@^1.1.0:
2282 | version "1.2.2"
2283 | resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.2.tgz#8e8c463f91da8991778765873fe4d960d8f616bd"
2284 | dependencies:
2285 | end-of-stream "^1.1.0"
2286 | stream-shift "^1.0.0"
2287 |
2288 | stream-iterate@^1.1.0:
2289 | version "1.2.0"
2290 | resolved "https://registry.yarnpkg.com/stream-iterate/-/stream-iterate-1.2.0.tgz#2bd7c77296c1702a46488b8ad41f79865eecd4e1"
2291 | dependencies:
2292 | readable-stream "^2.1.5"
2293 | stream-shift "^1.0.0"
2294 |
2295 | stream-shift@^1.0.0:
2296 | version "1.0.0"
2297 | resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952"
2298 |
2299 | string-width@^1.0.1, string-width@^1.0.2:
2300 | version "1.0.2"
2301 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
2302 | dependencies:
2303 | code-point-at "^1.0.0"
2304 | is-fullwidth-code-point "^1.0.0"
2305 | strip-ansi "^3.0.0"
2306 |
2307 | string-width@^2.0.0, string-width@^2.1.1:
2308 | version "2.1.1"
2309 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
2310 | dependencies:
2311 | is-fullwidth-code-point "^2.0.0"
2312 | strip-ansi "^4.0.0"
2313 |
2314 | string_decoder@~0.10.x:
2315 | version "0.10.31"
2316 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
2317 |
2318 | string_decoder@~1.0.3:
2319 | version "1.0.3"
2320 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
2321 | dependencies:
2322 | safe-buffer "~5.1.0"
2323 |
2324 | stringstream@~0.0.4, stringstream@~0.0.5:
2325 | version "0.0.5"
2326 | resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
2327 |
2328 | strip-ansi@^3.0.0, strip-ansi@^3.0.1, strip-ansi@~3.0.1:
2329 | version "3.0.1"
2330 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
2331 | dependencies:
2332 | ansi-regex "^2.0.0"
2333 |
2334 | strip-ansi@^4.0.0, strip-ansi@~4.0.0:
2335 | version "4.0.0"
2336 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
2337 | dependencies:
2338 | ansi-regex "^3.0.0"
2339 |
2340 | strip-eof@^1.0.0:
2341 | version "1.0.0"
2342 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
2343 |
2344 | strip-json-comments@~2.0.1:
2345 | version "2.0.1"
2346 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
2347 |
2348 | supports-color@^2.0.0:
2349 | version "2.0.0"
2350 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
2351 |
2352 | supports-color@^4.0.0:
2353 | version "4.5.0"
2354 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b"
2355 | dependencies:
2356 | has-flag "^2.0.0"
2357 |
2358 | tar-fs@^1.15.3:
2359 | version "1.16.0"
2360 | resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.0.tgz#e877a25acbcc51d8c790da1c57c9cf439817b896"
2361 | dependencies:
2362 | chownr "^1.0.1"
2363 | mkdirp "^0.5.1"
2364 | pump "^1.0.0"
2365 | tar-stream "^1.1.2"
2366 |
2367 | tar-stream@^1.1.2, tar-stream@^1.5.4:
2368 | version "1.5.5"
2369 | resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.5.tgz#5cad84779f45c83b1f2508d96b09d88c7218af55"
2370 | dependencies:
2371 | bl "^1.0.0"
2372 | end-of-stream "^1.0.0"
2373 | readable-stream "^2.0.0"
2374 | xtend "^4.0.0"
2375 |
2376 | tar@^2.0.0, tar@~2.2.1:
2377 | version "2.2.1"
2378 | resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
2379 | dependencies:
2380 | block-stream "*"
2381 | fstream "^1.0.2"
2382 | inherits "2"
2383 |
2384 | term-size@^1.2.0:
2385 | version "1.2.0"
2386 | resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69"
2387 | dependencies:
2388 | execa "^0.7.0"
2389 |
2390 | text-table@~0.2.0:
2391 | version "0.2.0"
2392 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
2393 |
2394 | through2@^2.0.0:
2395 | version "2.0.3"
2396 | resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
2397 | dependencies:
2398 | readable-stream "^2.1.5"
2399 | xtend "~4.0.1"
2400 |
2401 | "through@>=2.2.7 <3":
2402 | version "2.3.8"
2403 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
2404 |
2405 | timed-out@^4.0.0:
2406 | version "4.0.1"
2407 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
2408 |
2409 | tmp@0.0.31:
2410 | version "0.0.31"
2411 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7"
2412 | dependencies:
2413 | os-tmpdir "~1.0.1"
2414 |
2415 | tough-cookie@~2.3.0, tough-cookie@~2.3.3:
2416 | version "2.3.3"
2417 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561"
2418 | dependencies:
2419 | punycode "^1.4.1"
2420 |
2421 | tunnel-agent@^0.6.0:
2422 | version "0.6.0"
2423 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
2424 | dependencies:
2425 | safe-buffer "^5.0.1"
2426 |
2427 | tunnel-agent@~0.4.1:
2428 | version "0.4.3"
2429 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb"
2430 |
2431 | tweetnacl@^0.14.3, tweetnacl@~0.14.0:
2432 | version "0.14.5"
2433 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
2434 |
2435 | typedarray@^0.0.6:
2436 | version "0.0.6"
2437 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
2438 |
2439 | uid-number@0.0.6:
2440 | version "0.0.6"
2441 | resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
2442 |
2443 | umask@~1.1.0:
2444 | version "1.1.0"
2445 | resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d"
2446 |
2447 | unique-filename@^1.1.0, unique-filename@~1.1.0:
2448 | version "1.1.0"
2449 | resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3"
2450 | dependencies:
2451 | unique-slug "^2.0.0"
2452 |
2453 | unique-slug@^2.0.0:
2454 | version "2.0.0"
2455 | resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab"
2456 | dependencies:
2457 | imurmurhash "^0.1.4"
2458 |
2459 | unique-string@^1.0.0:
2460 | version "1.0.0"
2461 | resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a"
2462 | dependencies:
2463 | crypto-random-string "^1.0.0"
2464 |
2465 | universalify@^0.1.0:
2466 | version "0.1.1"
2467 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7"
2468 |
2469 | unpipe@~1.0.0:
2470 | version "1.0.0"
2471 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
2472 |
2473 | unzip-response@^2.0.1:
2474 | version "2.0.1"
2475 | resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"
2476 |
2477 | update-notifier@~2.2.0:
2478 | version "2.2.0"
2479 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.2.0.tgz#1b5837cf90c0736d88627732b661c138f86de72f"
2480 | dependencies:
2481 | boxen "^1.0.0"
2482 | chalk "^1.0.0"
2483 | configstore "^3.0.0"
2484 | import-lazy "^2.1.0"
2485 | is-npm "^1.0.0"
2486 | latest-version "^3.0.0"
2487 | semver-diff "^2.0.0"
2488 | xdg-basedir "^3.0.0"
2489 |
2490 | url-parse-lax@^1.0.0:
2491 | version "1.0.0"
2492 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73"
2493 | dependencies:
2494 | prepend-http "^1.0.1"
2495 |
2496 | user-home@2.0.0:
2497 | version "2.0.0"
2498 | resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f"
2499 | dependencies:
2500 | os-homedir "^1.0.0"
2501 |
2502 | util-deprecate@~1.0.1:
2503 | version "1.0.2"
2504 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
2505 |
2506 | util-extend@^1.0.1:
2507 | version "1.0.3"
2508 | resolved "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz#a7c216d267545169637b3b6edc6ca9119e2ff93f"
2509 |
2510 | uuid@^3.0.0, uuid@^3.1.0:
2511 | version "3.2.1"
2512 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14"
2513 |
2514 | uuid@~3.1.0:
2515 | version "3.1.0"
2516 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
2517 |
2518 | validate-npm-package-license@^3.0.1, validate-npm-package-license@~3.0.1:
2519 | version "3.0.1"
2520 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
2521 | dependencies:
2522 | spdx-correct "~1.0.0"
2523 | spdx-expression-parse "~1.0.0"
2524 |
2525 | validate-npm-package-name@^3.0.0, validate-npm-package-name@~3.0.0:
2526 | version "3.0.0"
2527 | resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e"
2528 | dependencies:
2529 | builtins "^1.0.3"
2530 |
2531 | validate-npm-package-name@~2.2.2:
2532 | version "2.2.2"
2533 | resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-2.2.2.tgz#f65695b22f7324442019a3c7fa39a6e7fd299085"
2534 | dependencies:
2535 | builtins "0.0.7"
2536 |
2537 | verror@1.10.0:
2538 | version "1.10.0"
2539 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
2540 | dependencies:
2541 | assert-plus "^1.0.0"
2542 | core-util-is "1.0.2"
2543 | extsprintf "^1.2.0"
2544 |
2545 | wcwidth@^1.0.0:
2546 | version "1.0.1"
2547 | resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
2548 | dependencies:
2549 | defaults "^1.0.3"
2550 |
2551 | which@1, which@^1.2.12, which@^1.2.9:
2552 | version "1.3.0"
2553 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
2554 | dependencies:
2555 | isexe "^2.0.0"
2556 |
2557 | which@~1.2.11, which@~1.2.14:
2558 | version "1.2.14"
2559 | resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5"
2560 | dependencies:
2561 | isexe "^2.0.0"
2562 |
2563 | wide-align@^1.1.0:
2564 | version "1.1.2"
2565 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710"
2566 | dependencies:
2567 | string-width "^1.0.2"
2568 |
2569 | widest-line@^2.0.0:
2570 | version "2.0.0"
2571 | resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.0.tgz#0142a4e8a243f8882c0233aa0e0281aa76152273"
2572 | dependencies:
2573 | string-width "^2.1.1"
2574 |
2575 | wordwrap@~0.0.2:
2576 | version "0.0.3"
2577 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
2578 |
2579 | worker-farm@~1.3.1:
2580 | version "1.3.1"
2581 | resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.3.1.tgz#4333112bb49b17aa050b87895ca6b2cacf40e5ff"
2582 | dependencies:
2583 | errno ">=0.1.1 <0.2.0-0"
2584 | xtend ">=4.0.0 <4.1.0-0"
2585 |
2586 | wrappy@1, wrappy@~1.0.2:
2587 | version "1.0.2"
2588 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
2589 |
2590 | write-file-atomic@^2.0.0:
2591 | version "2.3.0"
2592 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab"
2593 | dependencies:
2594 | graceful-fs "^4.1.11"
2595 | imurmurhash "^0.1.4"
2596 | signal-exit "^3.0.2"
2597 |
2598 | write-file-atomic@~1.1.4:
2599 | version "1.1.4"
2600 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.1.4.tgz#b1f52dc2e8dc0e3cb04d187a25f758a38a90ca3b"
2601 | dependencies:
2602 | graceful-fs "^4.1.2"
2603 | imurmurhash "^0.1.4"
2604 | slide "^1.1.5"
2605 |
2606 | write-file-atomic@~2.1.0:
2607 | version "2.1.0"
2608 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.1.0.tgz#1769f4b551eedce419f0505deae2e26763542d37"
2609 | dependencies:
2610 | graceful-fs "^4.1.11"
2611 | imurmurhash "^0.1.4"
2612 | slide "^1.1.5"
2613 |
2614 | xdg-basedir@^3.0.0:
2615 | version "3.0.0"
2616 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4"
2617 |
2618 | "xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.1:
2619 | version "4.0.1"
2620 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
2621 |
2622 | y18n@^3.2.1:
2623 | version "3.2.1"
2624 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
2625 |
2626 | yallist@^2.0.0, yallist@^2.1.2:
2627 | version "2.1.2"
2628 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
2629 |
--------------------------------------------------------------------------------