yarnlock 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 971a86fd881953dd44f8cb81309d879707e29471
4
- data.tar.gz: 2d91494c6c74878999cf1b54e18fc85b3f4fdaa1
3
+ metadata.gz: f585247db16ab766b377683746a6284b41556ef2
4
+ data.tar.gz: bbf0f0a483546a4f60f224402f7b8581fe7432a8
5
5
  SHA512:
6
- metadata.gz: 8b10a8e7554b0fa385cee918333209e6c0f1c80fadfd08ef3a82e76aec10edb9d1f41e3f9302cbb72ec81989020bca12bb37317e1dd9d2626d98e012fea313cc
7
- data.tar.gz: e0787a52a5b613d2cefe12299811eda7d17e0330d949f86e055f8cad9f9997ae0d978e844774a2da5c945fa9eb6316860fc1cf65583259f6296816b49c730362
6
+ metadata.gz: 6b237ffefa43111e575cd1fb0c08fa180ece8ff3b15a5994d841a8f25545df32db72cd082e439db3ee83bfea470f00af4863e1b77542a277c787e2a31e78aab8
7
+ data.tar.gz: a6ac1b293b0861019f1077fa5bc53e512dd96d709ee9eb30f6a64afc157f0b9137f384047742bbf80f7ec57ab94bf0e109c69ded58d50e5c0ee08366cb75867b
data/.gitignore CHANGED
@@ -7,10 +7,10 @@
7
7
  /spec/reports/
8
8
  /tmp/
9
9
  /node_modules/
10
+ yarn-error.log
10
11
 
11
12
  # rspec failure tracking
12
13
  .rspec_status
13
14
 
14
15
  # lock files
15
- /yarn.lock
16
16
  /Gemfile.lock
data/README.md CHANGED
@@ -3,10 +3,10 @@
3
3
  [![Gem Version](https://badge.fury.io/rb/yarnlock.svg)](https://badge.fury.io/rb/yarnlock)
4
4
  [![Build Status](https://travis-ci.org/hiromi2424/ruby-yarnlock.svg?branch=master)](https://travis-ci.org/hiromi2424/ruby-yarnlock)
5
5
 
6
- Thin wrapper of [@yarnpkg/lockfile](https://yarnpkg.com/ja/package/@yarnpkg/lockfile) for Ruby.
6
+ Thin wrapper of [@yarnpkg/lockfile](https://yarnpkg.com/en/package/@yarnpkg/lockfile) for Ruby.
7
7
 
8
8
  Note that this is NOT a resolver of every package.
9
- It means parsed object does not contain any package.json info of dependencies!
9
+ It means parsed object does not contain any `package.json` info of dependencies!
10
10
 
11
11
  ## Installation
12
12
 
@@ -34,25 +34,55 @@ Also add `@yarnpkg/lockfile` to your yarn dev dependency:
34
34
  ```ruby
35
35
  require 'yarnlock'
36
36
  # Parse string as in yarn.lock:
37
- Yarnlock.parse 'yarn_lock_text'
38
- # Returns Hash object like: {"@yarnpkg/lockfile@^1.0.0"=>{"version"=>"1.0.0", "resolved"=>"https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.0.0.tgz#33d1dbb659a23b81f87f048762b35a446172add3"}}
37
+ parsed = Yarnlock.parse 'yarn_lock_text'
39
38
 
40
39
  # Load from file path:
41
- Yarnlock.load 'yarn.lock'
40
+ parsed = Yarnlock.load 'yarn.lock'
42
41
 
43
42
  # Stringify parsed object from yarn.lock
44
- Yarnlock.stringify parsed_hash
43
+ Yarnlock.stringify parsed
45
44
  ```
46
45
 
47
- You can configure paths for Node.js(`'node'` by default) and JS scripts dir(`'{package root}/scripts'` by default).
46
+ ### Parsed object structure
47
+
48
+ `Yarnlock.parse` returns `Yarnlock::Entry::Collection` object that is actually extends `Hash` and is holding each entries defined at `yarn.lock`.
49
+
50
+ That hash has 3 dimension, such like:
51
+
52
+ ```ruby
53
+ parsed['@yarnpkg/lockfile']['1.0.0'] = Yarnlock::Entry.new
54
+ ```
55
+
56
+ The key of 1st level is the package name that is found on [Yarn repository](https://yarnpkg.com), can be used for dependency specification in `package.json`.
57
+ The key of 2nd level is the resolved version for range of versions.
58
+ The value is `Yarnlock.Entry` object that represents a entry of `yarn.lock`.
59
+
60
+ `Yarnlock.Entry` is a pure class that holds parsed information from a entry. You can access attribute to get information what you need:
61
+
62
+ - `package` `[String]` The package name. Same as 1st level key of `Yarnlock::Entry::Collection`.
63
+ - `package` `[String]` Resolved version. Same as 2nd level key of `Yarnlock::Entry::Collection`.
64
+ - `version_ranges` `[Array]` Version ranges, this holds multiple ranges like `['^2.1.0', '^2.1.1']`.
65
+ - You can see like `"@yarnpkg/lockfile@^1.0.0":` in `yarn.lock`, range of versions is `^1.0.0` of that, specified by `*dependencies` at `package.json` and its sub dependencies.
66
+ - `resolved` `[String]` Resolved registry location for tar ball.
67
+ - `dependencies` `[Hash]` Sub dependencies keyed by package name and valued by version range.
68
+
69
+ ### Options
70
+
71
+ You can configure some options to change behavior like:
48
72
 
49
73
  ```ruby
50
74
  Yarnlock.configure do |config|
51
- config.script_dir = '/path/to/my/dir'
52
75
  config.node_path = '/usr/local/bin/node'
76
+ config.script_dir = '/path/to/my/dir'
77
+ config.return_collection = false
53
78
  end
54
79
  ```
55
80
 
81
+ - `node_path` `[String]` (`'node'` by default) The executable path for Node.js. Since yarn requires Node.js, this gem does not use any javascript executor gem, directly use `node` command on your local machine. You can use other path to use different version of Node.js.
82
+ - `script_dir` `[String]` (`'{package root}/scripts'` by default) The directory for javascripts to execute `@yarnpkg/lockfile` API. You can override this dir to execute your custom scripts if needed.
83
+ - `return_collection` `[boolean]` (`true` by default) Specify whether return value of `Yarnlock.parse` is collection object provided by this gem or pure JSON value from `@yarnpkg/lockfile` API represented as `Hash`.
84
+
85
+
56
86
  ## Development
57
87
 
58
88
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -3,6 +3,8 @@
3
3
  require 'yarnlock/version'
4
4
 
5
5
  require 'yarnlock/config'
6
+ require 'yarnlock/entry'
7
+ require 'yarnlock/entry/collection'
6
8
  require 'yarnlock/js_executor'
7
9
 
8
10
  require 'json'
@@ -19,16 +21,21 @@ module Yarnlock
19
21
  def self.parse(yarnlock)
20
22
  json_string = JsExecutor.execute 'parse', yarnlock
21
23
  parsed = JSON.parse json_string
24
+
22
25
  raise "An error was occurred when parsing yarn.lock: #{parsed}" unless parsed.is_a? Hash
23
26
  raise "Could not parse yarn.lock: #{parsed['reason']}" unless parsed['type'] == 'success'
24
- parsed['object']
27
+
28
+ return parsed['object'] unless config.return_collection
29
+ Entry::Collection.parse parsed['object']
25
30
  end
26
31
 
27
32
  def self.stringify(object)
28
33
  json_string = JsExecutor.execute 'stringify', JSON.generate(object)
29
34
  parsed = JSON.parse json_string
35
+
30
36
  raise "An error was occurred when stringing object: #{parsed}" unless parsed.is_a? Hash
31
37
  raise "Could not stringing object: #{parsed['reason']}" unless parsed['type'] == 'success'
38
+
32
39
  parsed['yarnlock']
33
40
  end
34
41
 
@@ -2,11 +2,12 @@
2
2
 
3
3
  module Yarnlock
4
4
  class Config
5
- attr_accessor :script_dir, :node_path
5
+ attr_accessor :node_path, :script_dir, :return_collection
6
6
 
7
7
  def initialize
8
- @script_dir = File.expand_path '../../scripts', __dir__
9
8
  @node_path = 'node'
9
+ @script_dir = File.expand_path '../../scripts', __dir__
10
+ @return_collection = true
10
11
  end
11
12
  end
12
13
  end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Yarnlock
4
+ class Entry
5
+ attr_accessor :package, :version_ranges, :version, :resolved, :dependencies
6
+
7
+ def self.parse(pattern, entry)
8
+ new.parse pattern, entry
9
+ end
10
+
11
+ def parse(pattern, entry)
12
+ @version_ranges = []
13
+ pattern.split(', ').each do |package_version|
14
+ @package, version_range = package_version.split(/(?!^)@/)
15
+ @version_ranges << version_range
16
+ end
17
+
18
+ @version = entry['version']
19
+ @resolved = entry['resolved']
20
+ @dependencies = entry['dependencies']
21
+
22
+ self
23
+ end
24
+
25
+ def to_h
26
+ pattern = version_ranges.map do |version_range|
27
+ "#{package}@#{version_range}"
28
+ end.join(', ')
29
+ {
30
+ pattern => {
31
+ 'version' => version,
32
+ 'resolved' => resolved,
33
+ 'dependencies' => dependencies
34
+ }.reject { |_, v| v.nil? } # Hash#compact is not supported in Ruby < 2.4
35
+ }
36
+ end
37
+
38
+ def as_json(_options = {})
39
+ to_h
40
+ end
41
+
42
+ def to_json(*options)
43
+ as_json(*options).to_json(*options)
44
+ end
45
+
46
+ def ==(other)
47
+ other.is_a?(self.class) && other.to_h == to_h
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Yarnlock
4
+ class Entry
5
+ class Collection < Hash
6
+ def self.parse(raw_entries)
7
+ collection = new
8
+ raw_entries.each do |pattern, raw_entry|
9
+ entry = Yarnlock::Entry.parse pattern, raw_entry
10
+ collection[entry.package] ||= {}
11
+ collection[entry.package][entry.version] = entry
12
+ end
13
+ collection
14
+ end
15
+
16
+ def as_json(_options = {})
17
+ entries = {}
18
+ each_value do |versions|
19
+ versions.each_value do |entry|
20
+ entries.merge! entry.to_h
21
+ end
22
+ end
23
+ entries
24
+ end
25
+
26
+ def to_json(*options)
27
+ as_json(*options).to_json(*options)
28
+ end
29
+ end
30
+ end
31
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Yarnlock
4
- VERSION = '0.1.1'
4
+ VERSION = '0.2.0'
5
5
  end
@@ -0,0 +1,791 @@
1
+ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2
+ # yarn lockfile v1
3
+
4
+
5
+ "@yarnpkg/lockfile@^1.0.0":
6
+ version "1.0.0"
7
+ resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.0.0.tgz#33d1dbb659a23b81f87f048762b35a446172add3"
8
+
9
+ acorn-jsx@^3.0.0:
10
+ version "3.0.1"
11
+ resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
12
+ dependencies:
13
+ acorn "^3.0.4"
14
+
15
+ acorn@^3.0.4:
16
+ version "3.3.0"
17
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
18
+
19
+ acorn@^5.5.0:
20
+ version "5.5.3"
21
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9"
22
+
23
+ ajv-keywords@^2.1.0:
24
+ version "2.1.1"
25
+ resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762"
26
+
27
+ ajv@^5.2.3, ajv@^5.3.0:
28
+ version "5.5.2"
29
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
30
+ dependencies:
31
+ co "^4.6.0"
32
+ fast-deep-equal "^1.0.0"
33
+ fast-json-stable-stringify "^2.0.0"
34
+ json-schema-traverse "^0.3.0"
35
+
36
+ ansi-escapes@^3.0.0:
37
+ version "3.0.0"
38
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92"
39
+
40
+ ansi-regex@^2.0.0:
41
+ version "2.1.1"
42
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
43
+
44
+ ansi-regex@^3.0.0:
45
+ version "3.0.0"
46
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
47
+
48
+ ansi-styles@^2.2.1:
49
+ version "2.2.1"
50
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
51
+
52
+ ansi-styles@^3.2.1:
53
+ version "3.2.1"
54
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
55
+ dependencies:
56
+ color-convert "^1.9.0"
57
+
58
+ argparse@^1.0.7:
59
+ version "1.0.10"
60
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
61
+ dependencies:
62
+ sprintf-js "~1.0.2"
63
+
64
+ array-union@^1.0.1:
65
+ version "1.0.2"
66
+ resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
67
+ dependencies:
68
+ array-uniq "^1.0.1"
69
+
70
+ array-uniq@^1.0.1:
71
+ version "1.0.3"
72
+ resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
73
+
74
+ arrify@^1.0.0:
75
+ version "1.0.1"
76
+ resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
77
+
78
+ babel-code-frame@^6.22.0:
79
+ version "6.26.0"
80
+ resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
81
+ dependencies:
82
+ chalk "^1.1.3"
83
+ esutils "^2.0.2"
84
+ js-tokens "^3.0.2"
85
+
86
+ balanced-match@^1.0.0:
87
+ version "1.0.0"
88
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
89
+
90
+ brace-expansion@^1.1.7:
91
+ version "1.1.11"
92
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
93
+ dependencies:
94
+ balanced-match "^1.0.0"
95
+ concat-map "0.0.1"
96
+
97
+ caller-path@^0.1.0:
98
+ version "0.1.0"
99
+ resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
100
+ dependencies:
101
+ callsites "^0.2.0"
102
+
103
+ callsites@^0.2.0:
104
+ version "0.2.0"
105
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
106
+
107
+ chalk@^1.1.3:
108
+ version "1.1.3"
109
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
110
+ dependencies:
111
+ ansi-styles "^2.2.1"
112
+ escape-string-regexp "^1.0.2"
113
+ has-ansi "^2.0.0"
114
+ strip-ansi "^3.0.0"
115
+ supports-color "^2.0.0"
116
+
117
+ chalk@^2.0.0, chalk@^2.1.0:
118
+ version "2.3.2"
119
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65"
120
+ dependencies:
121
+ ansi-styles "^3.2.1"
122
+ escape-string-regexp "^1.0.5"
123
+ supports-color "^5.3.0"
124
+
125
+ chardet@^0.4.0:
126
+ version "0.4.2"
127
+ resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
128
+
129
+ circular-json@^0.3.1:
130
+ version "0.3.3"
131
+ resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
132
+
133
+ cli-cursor@^2.1.0:
134
+ version "2.1.0"
135
+ resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
136
+ dependencies:
137
+ restore-cursor "^2.0.0"
138
+
139
+ cli-width@^2.0.0:
140
+ version "2.2.0"
141
+ resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
142
+
143
+ co@^4.6.0:
144
+ version "4.6.0"
145
+ resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
146
+
147
+ color-convert@^1.9.0:
148
+ version "1.9.1"
149
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed"
150
+ dependencies:
151
+ color-name "^1.1.1"
152
+
153
+ color-name@^1.1.1:
154
+ version "1.1.3"
155
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
156
+
157
+ concat-map@0.0.1:
158
+ version "0.0.1"
159
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
160
+
161
+ concat-stream@^1.6.0:
162
+ version "1.6.1"
163
+ resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.1.tgz#261b8f518301f1d834e36342b9fea095d2620a26"
164
+ dependencies:
165
+ inherits "^2.0.3"
166
+ readable-stream "^2.2.2"
167
+ typedarray "^0.0.6"
168
+
169
+ core-util-is@~1.0.0:
170
+ version "1.0.2"
171
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
172
+
173
+ cross-spawn@^5.1.0:
174
+ version "5.1.0"
175
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
176
+ dependencies:
177
+ lru-cache "^4.0.1"
178
+ shebang-command "^1.2.0"
179
+ which "^1.2.9"
180
+
181
+ debug@^3.1.0:
182
+ version "3.1.0"
183
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
184
+ dependencies:
185
+ ms "2.0.0"
186
+
187
+ deep-is@~0.1.3:
188
+ version "0.1.3"
189
+ resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
190
+
191
+ del@^2.0.2:
192
+ version "2.2.2"
193
+ resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
194
+ dependencies:
195
+ globby "^5.0.0"
196
+ is-path-cwd "^1.0.0"
197
+ is-path-in-cwd "^1.0.0"
198
+ object-assign "^4.0.1"
199
+ pify "^2.0.0"
200
+ pinkie-promise "^2.0.0"
201
+ rimraf "^2.2.8"
202
+
203
+ doctrine@^2.1.0:
204
+ version "2.1.0"
205
+ resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
206
+ dependencies:
207
+ esutils "^2.0.2"
208
+
209
+ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
210
+ version "1.0.5"
211
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
212
+
213
+ eslint-scope@^3.7.1:
214
+ version "3.7.1"
215
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8"
216
+ dependencies:
217
+ esrecurse "^4.1.0"
218
+ estraverse "^4.1.1"
219
+
220
+ eslint-visitor-keys@^1.0.0:
221
+ version "1.0.0"
222
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d"
223
+
224
+ eslint@^4.18.2:
225
+ version "4.18.2"
226
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.18.2.tgz#0f81267ad1012e7d2051e186a9004cc2267b8d45"
227
+ dependencies:
228
+ ajv "^5.3.0"
229
+ babel-code-frame "^6.22.0"
230
+ chalk "^2.1.0"
231
+ concat-stream "^1.6.0"
232
+ cross-spawn "^5.1.0"
233
+ debug "^3.1.0"
234
+ doctrine "^2.1.0"
235
+ eslint-scope "^3.7.1"
236
+ eslint-visitor-keys "^1.0.0"
237
+ espree "^3.5.2"
238
+ esquery "^1.0.0"
239
+ esutils "^2.0.2"
240
+ file-entry-cache "^2.0.0"
241
+ functional-red-black-tree "^1.0.1"
242
+ glob "^7.1.2"
243
+ globals "^11.0.1"
244
+ ignore "^3.3.3"
245
+ imurmurhash "^0.1.4"
246
+ inquirer "^3.0.6"
247
+ is-resolvable "^1.0.0"
248
+ js-yaml "^3.9.1"
249
+ json-stable-stringify-without-jsonify "^1.0.1"
250
+ levn "^0.3.0"
251
+ lodash "^4.17.4"
252
+ minimatch "^3.0.2"
253
+ mkdirp "^0.5.1"
254
+ natural-compare "^1.4.0"
255
+ optionator "^0.8.2"
256
+ path-is-inside "^1.0.2"
257
+ pluralize "^7.0.0"
258
+ progress "^2.0.0"
259
+ require-uncached "^1.0.3"
260
+ semver "^5.3.0"
261
+ strip-ansi "^4.0.0"
262
+ strip-json-comments "~2.0.1"
263
+ table "4.0.2"
264
+ text-table "~0.2.0"
265
+
266
+ espree@^3.5.2:
267
+ version "3.5.4"
268
+ resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7"
269
+ dependencies:
270
+ acorn "^5.5.0"
271
+ acorn-jsx "^3.0.0"
272
+
273
+ esprima@^4.0.0:
274
+ version "4.0.0"
275
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
276
+
277
+ esquery@^1.0.0:
278
+ version "1.0.0"
279
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa"
280
+ dependencies:
281
+ estraverse "^4.0.0"
282
+
283
+ esrecurse@^4.1.0:
284
+ version "4.2.1"
285
+ resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
286
+ dependencies:
287
+ estraverse "^4.1.0"
288
+
289
+ estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1:
290
+ version "4.2.0"
291
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
292
+
293
+ esutils@^2.0.2:
294
+ version "2.0.2"
295
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
296
+
297
+ external-editor@^2.0.4:
298
+ version "2.1.0"
299
+ resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48"
300
+ dependencies:
301
+ chardet "^0.4.0"
302
+ iconv-lite "^0.4.17"
303
+ tmp "^0.0.33"
304
+
305
+ fast-deep-equal@^1.0.0:
306
+ version "1.1.0"
307
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"
308
+
309
+ fast-json-stable-stringify@^2.0.0:
310
+ version "2.0.0"
311
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
312
+
313
+ fast-levenshtein@~2.0.4:
314
+ version "2.0.6"
315
+ resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
316
+
317
+ figures@^2.0.0:
318
+ version "2.0.0"
319
+ resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
320
+ dependencies:
321
+ escape-string-regexp "^1.0.5"
322
+
323
+ file-entry-cache@^2.0.0:
324
+ version "2.0.0"
325
+ resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361"
326
+ dependencies:
327
+ flat-cache "^1.2.1"
328
+ object-assign "^4.0.1"
329
+
330
+ flat-cache@^1.2.1:
331
+ version "1.3.0"
332
+ resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481"
333
+ dependencies:
334
+ circular-json "^0.3.1"
335
+ del "^2.0.2"
336
+ graceful-fs "^4.1.2"
337
+ write "^0.2.1"
338
+
339
+ fs.realpath@^1.0.0:
340
+ version "1.0.0"
341
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
342
+
343
+ functional-red-black-tree@^1.0.1:
344
+ version "1.0.1"
345
+ resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
346
+
347
+ glob@^7.0.3, glob@^7.0.5, glob@^7.1.2:
348
+ version "7.1.2"
349
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
350
+ dependencies:
351
+ fs.realpath "^1.0.0"
352
+ inflight "^1.0.4"
353
+ inherits "2"
354
+ minimatch "^3.0.4"
355
+ once "^1.3.0"
356
+ path-is-absolute "^1.0.0"
357
+
358
+ globals@^11.0.1:
359
+ version "11.3.0"
360
+ resolved "https://registry.yarnpkg.com/globals/-/globals-11.3.0.tgz#e04fdb7b9796d8adac9c8f64c14837b2313378b0"
361
+
362
+ globby@^5.0.0:
363
+ version "5.0.0"
364
+ resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
365
+ dependencies:
366
+ array-union "^1.0.1"
367
+ arrify "^1.0.0"
368
+ glob "^7.0.3"
369
+ object-assign "^4.0.1"
370
+ pify "^2.0.0"
371
+ pinkie-promise "^2.0.0"
372
+
373
+ graceful-fs@^4.1.2:
374
+ version "4.1.11"
375
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
376
+
377
+ has-ansi@^2.0.0:
378
+ version "2.0.0"
379
+ resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
380
+ dependencies:
381
+ ansi-regex "^2.0.0"
382
+
383
+ has-flag@^3.0.0:
384
+ version "3.0.0"
385
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
386
+
387
+ iconv-lite@^0.4.17:
388
+ version "0.4.19"
389
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
390
+
391
+ ignore@^3.3.3:
392
+ version "3.3.7"
393
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021"
394
+
395
+ imurmurhash@^0.1.4:
396
+ version "0.1.4"
397
+ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
398
+
399
+ inflight@^1.0.4:
400
+ version "1.0.6"
401
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
402
+ dependencies:
403
+ once "^1.3.0"
404
+ wrappy "1"
405
+
406
+ inherits@2, inherits@^2.0.3, inherits@~2.0.3:
407
+ version "2.0.3"
408
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
409
+
410
+ inquirer@^3.0.6:
411
+ version "3.3.0"
412
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9"
413
+ dependencies:
414
+ ansi-escapes "^3.0.0"
415
+ chalk "^2.0.0"
416
+ cli-cursor "^2.1.0"
417
+ cli-width "^2.0.0"
418
+ external-editor "^2.0.4"
419
+ figures "^2.0.0"
420
+ lodash "^4.3.0"
421
+ mute-stream "0.0.7"
422
+ run-async "^2.2.0"
423
+ rx-lite "^4.0.8"
424
+ rx-lite-aggregates "^4.0.8"
425
+ string-width "^2.1.0"
426
+ strip-ansi "^4.0.0"
427
+ through "^2.3.6"
428
+
429
+ is-fullwidth-code-point@^2.0.0:
430
+ version "2.0.0"
431
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
432
+
433
+ is-path-cwd@^1.0.0:
434
+ version "1.0.0"
435
+ resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
436
+
437
+ is-path-in-cwd@^1.0.0:
438
+ version "1.0.0"
439
+ resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc"
440
+ dependencies:
441
+ is-path-inside "^1.0.0"
442
+
443
+ is-path-inside@^1.0.0:
444
+ version "1.0.1"
445
+ resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036"
446
+ dependencies:
447
+ path-is-inside "^1.0.1"
448
+
449
+ is-promise@^2.1.0:
450
+ version "2.1.0"
451
+ resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
452
+
453
+ is-resolvable@^1.0.0:
454
+ version "1.1.0"
455
+ resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
456
+
457
+ isarray@~1.0.0:
458
+ version "1.0.0"
459
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
460
+
461
+ isexe@^2.0.0:
462
+ version "2.0.0"
463
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
464
+
465
+ js-tokens@^3.0.2:
466
+ version "3.0.2"
467
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
468
+
469
+ js-yaml@^3.9.1:
470
+ version "3.11.0"
471
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef"
472
+ dependencies:
473
+ argparse "^1.0.7"
474
+ esprima "^4.0.0"
475
+
476
+ json-schema-traverse@^0.3.0:
477
+ version "0.3.1"
478
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
479
+
480
+ json-stable-stringify-without-jsonify@^1.0.1:
481
+ version "1.0.1"
482
+ resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
483
+
484
+ levn@^0.3.0, levn@~0.3.0:
485
+ version "0.3.0"
486
+ resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
487
+ dependencies:
488
+ prelude-ls "~1.1.2"
489
+ type-check "~0.3.2"
490
+
491
+ lodash@^4.17.4, lodash@^4.3.0:
492
+ version "4.17.5"
493
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511"
494
+
495
+ lru-cache@^4.0.1:
496
+ version "4.1.2"
497
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.2.tgz#45234b2e6e2f2b33da125624c4664929a0224c3f"
498
+ dependencies:
499
+ pseudomap "^1.0.2"
500
+ yallist "^2.1.2"
501
+
502
+ mimic-fn@^1.0.0:
503
+ version "1.2.0"
504
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
505
+
506
+ minimatch@^3.0.2, minimatch@^3.0.4:
507
+ version "3.0.4"
508
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
509
+ dependencies:
510
+ brace-expansion "^1.1.7"
511
+
512
+ minimist@0.0.8:
513
+ version "0.0.8"
514
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
515
+
516
+ mkdirp@^0.5.1:
517
+ version "0.5.1"
518
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
519
+ dependencies:
520
+ minimist "0.0.8"
521
+
522
+ ms@2.0.0:
523
+ version "2.0.0"
524
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
525
+
526
+ mute-stream@0.0.7:
527
+ version "0.0.7"
528
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
529
+
530
+ natural-compare@^1.4.0:
531
+ version "1.4.0"
532
+ resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
533
+
534
+ object-assign@^4.0.1:
535
+ version "4.1.1"
536
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
537
+
538
+ once@^1.3.0:
539
+ version "1.4.0"
540
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
541
+ dependencies:
542
+ wrappy "1"
543
+
544
+ onetime@^2.0.0:
545
+ version "2.0.1"
546
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
547
+ dependencies:
548
+ mimic-fn "^1.0.0"
549
+
550
+ optionator@^0.8.2:
551
+ version "0.8.2"
552
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
553
+ dependencies:
554
+ deep-is "~0.1.3"
555
+ fast-levenshtein "~2.0.4"
556
+ levn "~0.3.0"
557
+ prelude-ls "~1.1.2"
558
+ type-check "~0.3.2"
559
+ wordwrap "~1.0.0"
560
+
561
+ os-tmpdir@~1.0.2:
562
+ version "1.0.2"
563
+ resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
564
+
565
+ path-is-absolute@^1.0.0:
566
+ version "1.0.1"
567
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
568
+
569
+ path-is-inside@^1.0.1, path-is-inside@^1.0.2:
570
+ version "1.0.2"
571
+ resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
572
+
573
+ pify@^2.0.0:
574
+ version "2.3.0"
575
+ resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
576
+
577
+ pinkie-promise@^2.0.0:
578
+ version "2.0.1"
579
+ resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
580
+ dependencies:
581
+ pinkie "^2.0.0"
582
+
583
+ pinkie@^2.0.0:
584
+ version "2.0.4"
585
+ resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
586
+
587
+ pluralize@^7.0.0:
588
+ version "7.0.0"
589
+ resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777"
590
+
591
+ prelude-ls@~1.1.2:
592
+ version "1.1.2"
593
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
594
+
595
+ process-nextick-args@~2.0.0:
596
+ version "2.0.0"
597
+ resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
598
+
599
+ progress@^2.0.0:
600
+ version "2.0.0"
601
+ resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"
602
+
603
+ pseudomap@^1.0.2:
604
+ version "1.0.2"
605
+ resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
606
+
607
+ readable-stream@^2.2.2:
608
+ version "2.3.5"
609
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.5.tgz#b4f85003a938cbb6ecbce2a124fb1012bd1a838d"
610
+ dependencies:
611
+ core-util-is "~1.0.0"
612
+ inherits "~2.0.3"
613
+ isarray "~1.0.0"
614
+ process-nextick-args "~2.0.0"
615
+ safe-buffer "~5.1.1"
616
+ string_decoder "~1.0.3"
617
+ util-deprecate "~1.0.1"
618
+
619
+ require-uncached@^1.0.3:
620
+ version "1.0.3"
621
+ resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
622
+ dependencies:
623
+ caller-path "^0.1.0"
624
+ resolve-from "^1.0.0"
625
+
626
+ resolve-from@^1.0.0:
627
+ version "1.0.1"
628
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
629
+
630
+ restore-cursor@^2.0.0:
631
+ version "2.0.0"
632
+ resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
633
+ dependencies:
634
+ onetime "^2.0.0"
635
+ signal-exit "^3.0.2"
636
+
637
+ rimraf@^2.2.8:
638
+ version "2.6.2"
639
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
640
+ dependencies:
641
+ glob "^7.0.5"
642
+
643
+ run-async@^2.2.0:
644
+ version "2.3.0"
645
+ resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
646
+ dependencies:
647
+ is-promise "^2.1.0"
648
+
649
+ rx-lite-aggregates@^4.0.8:
650
+ version "4.0.8"
651
+ resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be"
652
+ dependencies:
653
+ rx-lite "*"
654
+
655
+ rx-lite@*, rx-lite@^4.0.8:
656
+ version "4.0.8"
657
+ resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
658
+
659
+ safe-buffer@~5.1.0, safe-buffer@~5.1.1:
660
+ version "5.1.1"
661
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
662
+
663
+ semver@^5.3.0:
664
+ version "5.5.0"
665
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
666
+
667
+ shebang-command@^1.2.0:
668
+ version "1.2.0"
669
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
670
+ dependencies:
671
+ shebang-regex "^1.0.0"
672
+
673
+ shebang-regex@^1.0.0:
674
+ version "1.0.0"
675
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
676
+
677
+ signal-exit@^3.0.2:
678
+ version "3.0.2"
679
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
680
+
681
+ slice-ansi@1.0.0:
682
+ version "1.0.0"
683
+ resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d"
684
+ dependencies:
685
+ is-fullwidth-code-point "^2.0.0"
686
+
687
+ sprintf-js@~1.0.2:
688
+ version "1.0.3"
689
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
690
+
691
+ string-width@^2.1.0, string-width@^2.1.1:
692
+ version "2.1.1"
693
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
694
+ dependencies:
695
+ is-fullwidth-code-point "^2.0.0"
696
+ strip-ansi "^4.0.0"
697
+
698
+ string_decoder@~1.0.3:
699
+ version "1.0.3"
700
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
701
+ dependencies:
702
+ safe-buffer "~5.1.0"
703
+
704
+ strip-ansi@^3.0.0:
705
+ version "3.0.1"
706
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
707
+ dependencies:
708
+ ansi-regex "^2.0.0"
709
+
710
+ strip-ansi@^4.0.0:
711
+ version "4.0.0"
712
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
713
+ dependencies:
714
+ ansi-regex "^3.0.0"
715
+
716
+ strip-json-comments@~2.0.1:
717
+ version "2.0.1"
718
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
719
+
720
+ supports-color@^2.0.0:
721
+ version "2.0.0"
722
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
723
+
724
+ supports-color@^5.3.0:
725
+ version "5.3.0"
726
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0"
727
+ dependencies:
728
+ has-flag "^3.0.0"
729
+
730
+ table@4.0.2:
731
+ version "4.0.2"
732
+ resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36"
733
+ dependencies:
734
+ ajv "^5.2.3"
735
+ ajv-keywords "^2.1.0"
736
+ chalk "^2.1.0"
737
+ lodash "^4.17.4"
738
+ slice-ansi "1.0.0"
739
+ string-width "^2.1.1"
740
+
741
+ text-table@~0.2.0:
742
+ version "0.2.0"
743
+ resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
744
+
745
+ through@^2.3.6:
746
+ version "2.3.8"
747
+ resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
748
+
749
+ tmp@^0.0.33:
750
+ version "0.0.33"
751
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
752
+ dependencies:
753
+ os-tmpdir "~1.0.2"
754
+
755
+ type-check@~0.3.2:
756
+ version "0.3.2"
757
+ resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
758
+ dependencies:
759
+ prelude-ls "~1.1.2"
760
+
761
+ typedarray@^0.0.6:
762
+ version "0.0.6"
763
+ resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
764
+
765
+ util-deprecate@~1.0.1:
766
+ version "1.0.2"
767
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
768
+
769
+ which@^1.2.9:
770
+ version "1.3.0"
771
+ resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
772
+ dependencies:
773
+ isexe "^2.0.0"
774
+
775
+ wordwrap@~1.0.0:
776
+ version "1.0.0"
777
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
778
+
779
+ wrappy@1:
780
+ version "1.0.2"
781
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
782
+
783
+ write@^0.2.1:
784
+ version "0.2.1"
785
+ resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
786
+ dependencies:
787
+ mkdirp "^0.5.1"
788
+
789
+ yallist@^2.1.2:
790
+ version "2.1.2"
791
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yarnlock
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hiroki Shimizu
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-03-10 00:00:00.000000000 Z
11
+ date: 2018-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -88,12 +88,15 @@ files:
88
88
  - bin/setup
89
89
  - lib/yarnlock.rb
90
90
  - lib/yarnlock/config.rb
91
+ - lib/yarnlock/entry.rb
92
+ - lib/yarnlock/entry/collection.rb
91
93
  - lib/yarnlock/js_executor.rb
92
94
  - lib/yarnlock/version.rb
93
95
  - package.json
94
96
  - scripts/parse.js
95
97
  - scripts/stringify.js
96
98
  - scripts/util.js
99
+ - yarn.lock
97
100
  - yarnlock.gemspec
98
101
  homepage: https://github.com/hiromi2424/ruby-yarnlock
99
102
  licenses: