graphdoc-ruby 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +13 -0
- data/.rspec +2 -0
- data/.rubocop.yml +76 -0
- data/.travis.yml +5 -0
- data/Gemfile +8 -0
- data/LICENSE.txt +21 -0
- data/README.md +202 -0
- data/Rakefile +8 -0
- data/config.ru +17 -0
- data/graphdoc-ruby.gemspec +33 -0
- data/lib/graphdoc-ruby.rb +3 -0
- data/lib/graphdoc-ruby/application.rb +91 -0
- data/lib/graphdoc-ruby/config.rb +104 -0
- data/lib/graphdoc-ruby/graphdoc.rb +58 -0
- data/lib/graphdoc-ruby/graphql_json.rb +38 -0
- data/lib/graphdoc-ruby/railtie.rb +11 -0
- data/lib/graphdoc-ruby/rake_task.rb +41 -0
- data/lib/graphdoc-ruby/static.rb +37 -0
- data/lib/graphdoc-ruby/utils.rb +16 -0
- data/lib/graphdoc-ruby/version.rb +5 -0
- data/lib/graphdoc_ruby.rb +22 -0
- data/package.json +7 -0
- data/yarn.lock +455 -0
- metadata +165 -0
@@ -0,0 +1,104 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'bundler'
|
4
|
+
|
5
|
+
module GraphdocRuby
|
6
|
+
class Config
|
7
|
+
class InvalidConfiguration < StandardError; end
|
8
|
+
|
9
|
+
# Required: <String>
|
10
|
+
# GraphQL endpoint url or dumped schema.json path.
|
11
|
+
attr_reader :endpoint
|
12
|
+
|
13
|
+
# Optional: <String>
|
14
|
+
# Executable path of `graphdoc`.
|
15
|
+
# (default: `Bundler.which('graphdoc')`)
|
16
|
+
attr_accessor :executable_path
|
17
|
+
|
18
|
+
# Optional: <String>
|
19
|
+
# Output path for `graphdoc`. If you disabled run_time_generation, this value must be customized.
|
20
|
+
# (default: `File.join(Dir.mktmpdir, 'graphdoc')`)
|
21
|
+
attr_reader :output_directory
|
22
|
+
|
23
|
+
# Optional: <Boolean>
|
24
|
+
# Overwrite files if generated html already exist.
|
25
|
+
# (default: true)
|
26
|
+
attr_accessor :overwrite
|
27
|
+
|
28
|
+
# Optional: <Boolean>
|
29
|
+
# Generate html with graphdoc on the first access.
|
30
|
+
# (default: true)
|
31
|
+
attr_accessor :run_time_generation
|
32
|
+
|
33
|
+
# Optional: <Proc>
|
34
|
+
# Context of your graphql.
|
35
|
+
# (default: -> {})
|
36
|
+
attr_accessor :graphql_context
|
37
|
+
|
38
|
+
# Optional: <Proc>
|
39
|
+
# Query of your graphql.
|
40
|
+
# (default: -> {})
|
41
|
+
attr_accessor :graphql_query
|
42
|
+
|
43
|
+
# Optional: <String>
|
44
|
+
# Schema name of your graphql-ruby. It is necessary when generating schema.json.
|
45
|
+
# (default: nil)
|
46
|
+
attr_accessor :schema_name
|
47
|
+
|
48
|
+
# no doc
|
49
|
+
attr_reader :mtime
|
50
|
+
|
51
|
+
def initialize
|
52
|
+
self.endpoint = nil
|
53
|
+
self.executable_path = Bundler.which('graphdoc')
|
54
|
+
self.output_directory = default_output_directory
|
55
|
+
self.overwrite = true
|
56
|
+
self.run_time_generation = true
|
57
|
+
self.schema_name = nil
|
58
|
+
self.graphql_context = -> {}
|
59
|
+
self.graphql_query = -> {}
|
60
|
+
|
61
|
+
@use_temporary_output_directory = true
|
62
|
+
@mtime = Time.now
|
63
|
+
end
|
64
|
+
|
65
|
+
def endpoint=(value)
|
66
|
+
@endpoint = value.to_s
|
67
|
+
end
|
68
|
+
|
69
|
+
def output_directory=(value)
|
70
|
+
@output_directory = value.to_s
|
71
|
+
@use_temporary_output_directory = false
|
72
|
+
end
|
73
|
+
|
74
|
+
def evaluate_graphql_context
|
75
|
+
hash = self.graphql_context.call
|
76
|
+
hash if hash.is_a?(Hash)
|
77
|
+
end
|
78
|
+
|
79
|
+
def evaluate_graphql_query
|
80
|
+
hash = self.graphql_query.call
|
81
|
+
hash if hash.is_a?(Hash)
|
82
|
+
end
|
83
|
+
|
84
|
+
def assert_configuration!
|
85
|
+
unless endpoint
|
86
|
+
raise InvalidConfiguration, "(endpoint: '#{endpoint}') must be GraphQL endpoint url or dumped schema.json path."
|
87
|
+
end
|
88
|
+
|
89
|
+
if @use_temporary_output_directory && !run_time_generation
|
90
|
+
raise InvalidConfiguration, 'If you disabled run_time_generation, static `output_directory` must be set.'
|
91
|
+
end
|
92
|
+
|
93
|
+
unless File.executable?(executable_path)
|
94
|
+
raise InvalidConfiguration, '`graphdoc` not found. Please install graphdoc (npm install -g @2fd/graphdoc)'
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
private
|
99
|
+
|
100
|
+
def default_output_directory
|
101
|
+
File.join(Dir.mktmpdir, 'graphdoc')
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'open3'
|
4
|
+
module GraphdocRuby
|
5
|
+
class Graphdoc
|
6
|
+
def initialize(output:, endpoint:, overwrite:, executable:, mtime:, query: {}, context: {})
|
7
|
+
@endpoint = endpoint
|
8
|
+
@executable = executable
|
9
|
+
@overwrite = overwrite
|
10
|
+
@mtime = mtime
|
11
|
+
|
12
|
+
@output_html = File.join(output, 'index.html')
|
13
|
+
@options = ['--output', output]
|
14
|
+
@options += ['--force'] if overwrite
|
15
|
+
|
16
|
+
if query && !query.empty?
|
17
|
+
query.each do |key_value|
|
18
|
+
@options += ['--query', key_value.join('=')]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
if context && !context.empty?
|
23
|
+
context.each do |key_value|
|
24
|
+
@options += ['--header', key_value.join(': ')]
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def generate_document!
|
30
|
+
return if generated?
|
31
|
+
|
32
|
+
message, status = Open3.capture2e(*command)
|
33
|
+
raise "Command failed. (#{command}) '#{message}'" unless status.success?
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def generated?
|
39
|
+
GraphdocRuby::Utils.file_exist?(@output_html) && (!@overwrite || (@overwrite && regenerated?))
|
40
|
+
end
|
41
|
+
|
42
|
+
def regenerated?
|
43
|
+
File::Stat.new(@output_html).mtime >= @mtime
|
44
|
+
rescue Errno::ENOENT
|
45
|
+
false
|
46
|
+
end
|
47
|
+
|
48
|
+
def command
|
49
|
+
if GraphdocRuby::Utils.valid_url?(@endpoint)
|
50
|
+
[@executable, '--endpoint', @endpoint, *@options]
|
51
|
+
elsif GraphdocRuby::Utils.file_exist?(@endpoint)
|
52
|
+
[@executable, '--schema-file', @endpoint, *@options]
|
53
|
+
else
|
54
|
+
raise "Invalid endpoint given. endpoint(#{@endpoint}) must be valid URL or existing schema file"
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
3
|
+
module GraphdocRuby
|
4
|
+
class GraphqlJson
|
5
|
+
def self.write_schema_json
|
6
|
+
context = GraphdocRuby.config.evaluate_graphql_context || {}
|
7
|
+
|
8
|
+
new(
|
9
|
+
GraphdocRuby.config.schema_name,
|
10
|
+
GraphdocRuby.config.endpoint,
|
11
|
+
context
|
12
|
+
).write_json
|
13
|
+
end
|
14
|
+
|
15
|
+
def initialize(schema_name, output_file, context = {})
|
16
|
+
@schema_name = schema_name
|
17
|
+
@output_file = output_file
|
18
|
+
@context = context
|
19
|
+
end
|
20
|
+
|
21
|
+
def write_json
|
22
|
+
json = schema.to_json(context: @context)
|
23
|
+
|
24
|
+
directory = File.dirname(@output_file)
|
25
|
+
FileUtils.mkdir_p(directory)
|
26
|
+
|
27
|
+
File.write(@output_file, json)
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def schema
|
33
|
+
@schema ||= Object.const_get(@schema_name.to_s)
|
34
|
+
rescue
|
35
|
+
raise GraphdocRuby::Config::InvalidConfiguration, "(schema_name: #{@schema_name}) must be GraphQL Schema"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'graphdoc-ruby'
|
2
|
+
|
3
|
+
module GraphdocRuby
|
4
|
+
class RakeTask
|
5
|
+
include Rake::DSL
|
6
|
+
|
7
|
+
# Set the parameters of this task by passing keyword arguments
|
8
|
+
# or assigning attributes inside the block
|
9
|
+
def initialize
|
10
|
+
dependencies = if defined?(::Rails)
|
11
|
+
[:environment]
|
12
|
+
else
|
13
|
+
[]
|
14
|
+
end
|
15
|
+
|
16
|
+
define_tasks(dependencies)
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def define_tasks(dependencies)
|
22
|
+
namespace :graphdoc do
|
23
|
+
desc 'Dump GraphQL schema to endpoint'
|
24
|
+
task dump_schema: dependencies do
|
25
|
+
require 'graphdoc-ruby/graphql_json'
|
26
|
+
raise(ArgumentError, 'GraphdocRuby.config.schema_name is required.') unless GraphdocRuby.config.schema_name
|
27
|
+
|
28
|
+
puts "-- Write schema.json to #{GraphdocRuby.config.endpoint}"
|
29
|
+
GraphdocRuby::GraphqlJson.write_schema_json
|
30
|
+
end
|
31
|
+
|
32
|
+
desc 'Generate html with graphdoc'
|
33
|
+
task generate: dependencies do
|
34
|
+
puts "-- Generate html with graphdoc from #{GraphdocRuby.config.endpoint}"
|
35
|
+
GraphdocRuby::Application.graphdoc.generate_document!
|
36
|
+
puts "-- Generated html to #{GraphdocRuby.config.output_directory}"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rack/utils'
|
4
|
+
require 'active_support/core_ext/uri'
|
5
|
+
|
6
|
+
module GraphdocRuby
|
7
|
+
class Static
|
8
|
+
def initialize(root, headers: {})
|
9
|
+
@root = root.chomp('/')
|
10
|
+
@file_server = ::Rack::File.new(@root, headers)
|
11
|
+
end
|
12
|
+
|
13
|
+
def match?(path)
|
14
|
+
path = ::Rack::Utils.unescape_path(path)
|
15
|
+
return false unless ::Rack::Utils.valid_path? path
|
16
|
+
path = ::Rack::Utils.clean_path_info(path)
|
17
|
+
|
18
|
+
candidate_paths = [path, "#{path}.html", "#{path}/index.html"]
|
19
|
+
|
20
|
+
match = candidate_paths.detect do |candidate_path|
|
21
|
+
absolute_path = File.join(@root, candidate_path.dup.force_encoding(Encoding::UTF_8))
|
22
|
+
|
23
|
+
begin
|
24
|
+
File.file?(absolute_path) && File.readable?(absolute_path)
|
25
|
+
rescue SystemCallError
|
26
|
+
false
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
::Rack::Utils.escape_path(match) if match
|
31
|
+
end
|
32
|
+
|
33
|
+
def serve(request)
|
34
|
+
@file_server.call(request.env)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rack'
|
4
|
+
require 'graphdoc-ruby/utils'
|
5
|
+
require 'graphdoc-ruby/graphdoc'
|
6
|
+
require 'graphdoc-ruby/static'
|
7
|
+
require 'graphdoc-ruby/application'
|
8
|
+
require 'graphdoc-ruby/config'
|
9
|
+
require 'graphdoc-ruby/graphql_json'
|
10
|
+
require 'graphdoc-ruby/version'
|
11
|
+
|
12
|
+
module GraphdocRuby
|
13
|
+
def self.config
|
14
|
+
@config ||= GraphdocRuby::Config.new
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.configure
|
18
|
+
yield(config)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
require 'graphdoc-ruby/railtie' if defined?(Rails)
|
data/package.json
ADDED
data/yarn.lock
ADDED
@@ -0,0 +1,455 @@
|
|
1
|
+
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
2
|
+
# yarn lockfile v1
|
3
|
+
|
4
|
+
|
5
|
+
"@2fd/command@^1.1.2":
|
6
|
+
version "1.1.2"
|
7
|
+
resolved "https://registry.yarnpkg.com/@2fd/command/-/command-1.1.2.tgz#b831d511bdd3b4e2d88139aaddb06d3d6aa0b08a"
|
8
|
+
|
9
|
+
"@2fd/graphdoc@^2.4.0":
|
10
|
+
version "2.4.0"
|
11
|
+
resolved "https://registry.yarnpkg.com/@2fd/graphdoc/-/graphdoc-2.4.0.tgz#ebfabd0b09487ce9db8db901a66f1917a025a808"
|
12
|
+
dependencies:
|
13
|
+
"@2fd/command" "^1.1.2"
|
14
|
+
bluebird "^3.5.0"
|
15
|
+
fs-extra "^0.30.0"
|
16
|
+
glob "^7.1.0"
|
17
|
+
graphql "^0.7.0"
|
18
|
+
marked "^0.3.6"
|
19
|
+
mustache "^2.2.1"
|
20
|
+
request "^2.79.0"
|
21
|
+
slug "^0.9.1"
|
22
|
+
striptags "^3.0.1"
|
23
|
+
word-wrap "^1.2.1"
|
24
|
+
|
25
|
+
ajv@^5.1.0:
|
26
|
+
version "5.5.2"
|
27
|
+
resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
|
28
|
+
dependencies:
|
29
|
+
co "^4.6.0"
|
30
|
+
fast-deep-equal "^1.0.0"
|
31
|
+
fast-json-stable-stringify "^2.0.0"
|
32
|
+
json-schema-traverse "^0.3.0"
|
33
|
+
|
34
|
+
asn1@~0.2.3:
|
35
|
+
version "0.2.3"
|
36
|
+
resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
|
37
|
+
|
38
|
+
assert-plus@1.0.0, assert-plus@^1.0.0:
|
39
|
+
version "1.0.0"
|
40
|
+
resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
|
41
|
+
|
42
|
+
asynckit@^0.4.0:
|
43
|
+
version "0.4.0"
|
44
|
+
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
|
45
|
+
|
46
|
+
aws-sign2@~0.7.0:
|
47
|
+
version "0.7.0"
|
48
|
+
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
|
49
|
+
|
50
|
+
aws4@^1.6.0:
|
51
|
+
version "1.6.0"
|
52
|
+
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
|
53
|
+
|
54
|
+
balanced-match@^1.0.0:
|
55
|
+
version "1.0.0"
|
56
|
+
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
57
|
+
|
58
|
+
bcrypt-pbkdf@^1.0.0:
|
59
|
+
version "1.0.1"
|
60
|
+
resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
|
61
|
+
dependencies:
|
62
|
+
tweetnacl "^0.14.3"
|
63
|
+
|
64
|
+
bluebird@^3.5.0:
|
65
|
+
version "3.5.1"
|
66
|
+
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
|
67
|
+
|
68
|
+
boom@4.x.x:
|
69
|
+
version "4.3.1"
|
70
|
+
resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31"
|
71
|
+
dependencies:
|
72
|
+
hoek "4.x.x"
|
73
|
+
|
74
|
+
boom@5.x.x:
|
75
|
+
version "5.2.0"
|
76
|
+
resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02"
|
77
|
+
dependencies:
|
78
|
+
hoek "4.x.x"
|
79
|
+
|
80
|
+
brace-expansion@^1.1.7:
|
81
|
+
version "1.1.8"
|
82
|
+
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
|
83
|
+
dependencies:
|
84
|
+
balanced-match "^1.0.0"
|
85
|
+
concat-map "0.0.1"
|
86
|
+
|
87
|
+
caseless@~0.12.0:
|
88
|
+
version "0.12.0"
|
89
|
+
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
|
90
|
+
|
91
|
+
co@^4.6.0:
|
92
|
+
version "4.6.0"
|
93
|
+
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
|
94
|
+
|
95
|
+
combined-stream@^1.0.5, combined-stream@~1.0.5:
|
96
|
+
version "1.0.5"
|
97
|
+
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
|
98
|
+
dependencies:
|
99
|
+
delayed-stream "~1.0.0"
|
100
|
+
|
101
|
+
concat-map@0.0.1:
|
102
|
+
version "0.0.1"
|
103
|
+
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
104
|
+
|
105
|
+
core-util-is@1.0.2:
|
106
|
+
version "1.0.2"
|
107
|
+
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
|
108
|
+
|
109
|
+
cryptiles@3.x.x:
|
110
|
+
version "3.1.2"
|
111
|
+
resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"
|
112
|
+
dependencies:
|
113
|
+
boom "5.x.x"
|
114
|
+
|
115
|
+
dashdash@^1.12.0:
|
116
|
+
version "1.14.1"
|
117
|
+
resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
|
118
|
+
dependencies:
|
119
|
+
assert-plus "^1.0.0"
|
120
|
+
|
121
|
+
delayed-stream@~1.0.0:
|
122
|
+
version "1.0.0"
|
123
|
+
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
|
124
|
+
|
125
|
+
ecc-jsbn@~0.1.1:
|
126
|
+
version "0.1.1"
|
127
|
+
resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
|
128
|
+
dependencies:
|
129
|
+
jsbn "~0.1.0"
|
130
|
+
|
131
|
+
extend@~3.0.1:
|
132
|
+
version "3.0.1"
|
133
|
+
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
|
134
|
+
|
135
|
+
extsprintf@1.3.0:
|
136
|
+
version "1.3.0"
|
137
|
+
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
|
138
|
+
|
139
|
+
extsprintf@^1.2.0:
|
140
|
+
version "1.4.0"
|
141
|
+
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
|
142
|
+
|
143
|
+
fast-deep-equal@^1.0.0:
|
144
|
+
version "1.0.0"
|
145
|
+
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
|
146
|
+
|
147
|
+
fast-json-stable-stringify@^2.0.0:
|
148
|
+
version "2.0.0"
|
149
|
+
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
|
150
|
+
|
151
|
+
forever-agent@~0.6.1:
|
152
|
+
version "0.6.1"
|
153
|
+
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
|
154
|
+
|
155
|
+
form-data@~2.3.1:
|
156
|
+
version "2.3.1"
|
157
|
+
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf"
|
158
|
+
dependencies:
|
159
|
+
asynckit "^0.4.0"
|
160
|
+
combined-stream "^1.0.5"
|
161
|
+
mime-types "^2.1.12"
|
162
|
+
|
163
|
+
fs-extra@^0.30.0:
|
164
|
+
version "0.30.0"
|
165
|
+
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0"
|
166
|
+
dependencies:
|
167
|
+
graceful-fs "^4.1.2"
|
168
|
+
jsonfile "^2.1.0"
|
169
|
+
klaw "^1.0.0"
|
170
|
+
path-is-absolute "^1.0.0"
|
171
|
+
rimraf "^2.2.8"
|
172
|
+
|
173
|
+
fs.realpath@^1.0.0:
|
174
|
+
version "1.0.0"
|
175
|
+
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
|
176
|
+
|
177
|
+
getpass@^0.1.1:
|
178
|
+
version "0.1.7"
|
179
|
+
resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
|
180
|
+
dependencies:
|
181
|
+
assert-plus "^1.0.0"
|
182
|
+
|
183
|
+
glob@^7.0.5, glob@^7.1.0:
|
184
|
+
version "7.1.2"
|
185
|
+
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
|
186
|
+
dependencies:
|
187
|
+
fs.realpath "^1.0.0"
|
188
|
+
inflight "^1.0.4"
|
189
|
+
inherits "2"
|
190
|
+
minimatch "^3.0.4"
|
191
|
+
once "^1.3.0"
|
192
|
+
path-is-absolute "^1.0.0"
|
193
|
+
|
194
|
+
graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
|
195
|
+
version "4.1.11"
|
196
|
+
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
|
197
|
+
|
198
|
+
graphql@^0.7.0:
|
199
|
+
version "0.7.2"
|
200
|
+
resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.7.2.tgz#cc894a32823399b8a0cb012b9e9ecad35cd00f72"
|
201
|
+
dependencies:
|
202
|
+
iterall "1.0.2"
|
203
|
+
|
204
|
+
har-schema@^2.0.0:
|
205
|
+
version "2.0.0"
|
206
|
+
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
|
207
|
+
|
208
|
+
har-validator@~5.0.3:
|
209
|
+
version "5.0.3"
|
210
|
+
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
|
211
|
+
dependencies:
|
212
|
+
ajv "^5.1.0"
|
213
|
+
har-schema "^2.0.0"
|
214
|
+
|
215
|
+
hawk@~6.0.2:
|
216
|
+
version "6.0.2"
|
217
|
+
resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"
|
218
|
+
dependencies:
|
219
|
+
boom "4.x.x"
|
220
|
+
cryptiles "3.x.x"
|
221
|
+
hoek "4.x.x"
|
222
|
+
sntp "2.x.x"
|
223
|
+
|
224
|
+
hoek@4.x.x:
|
225
|
+
version "4.2.0"
|
226
|
+
resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d"
|
227
|
+
|
228
|
+
http-signature@~1.2.0:
|
229
|
+
version "1.2.0"
|
230
|
+
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
|
231
|
+
dependencies:
|
232
|
+
assert-plus "^1.0.0"
|
233
|
+
jsprim "^1.2.2"
|
234
|
+
sshpk "^1.7.0"
|
235
|
+
|
236
|
+
inflight@^1.0.4:
|
237
|
+
version "1.0.6"
|
238
|
+
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
239
|
+
dependencies:
|
240
|
+
once "^1.3.0"
|
241
|
+
wrappy "1"
|
242
|
+
|
243
|
+
inherits@2:
|
244
|
+
version "2.0.3"
|
245
|
+
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
|
246
|
+
|
247
|
+
is-typedarray@~1.0.0:
|
248
|
+
version "1.0.0"
|
249
|
+
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
|
250
|
+
|
251
|
+
isstream@~0.1.2:
|
252
|
+
version "0.1.2"
|
253
|
+
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
|
254
|
+
|
255
|
+
iterall@1.0.2:
|
256
|
+
version "1.0.2"
|
257
|
+
resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.0.2.tgz#41a2e96ce9eda5e61c767ee5dc312373bb046e91"
|
258
|
+
|
259
|
+
jsbn@~0.1.0:
|
260
|
+
version "0.1.1"
|
261
|
+
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
|
262
|
+
|
263
|
+
json-schema-traverse@^0.3.0:
|
264
|
+
version "0.3.1"
|
265
|
+
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
|
266
|
+
|
267
|
+
json-schema@0.2.3:
|
268
|
+
version "0.2.3"
|
269
|
+
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
|
270
|
+
|
271
|
+
json-stringify-safe@~5.0.1:
|
272
|
+
version "5.0.1"
|
273
|
+
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
|
274
|
+
|
275
|
+
jsonfile@^2.1.0:
|
276
|
+
version "2.4.0"
|
277
|
+
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
|
278
|
+
optionalDependencies:
|
279
|
+
graceful-fs "^4.1.6"
|
280
|
+
|
281
|
+
jsprim@^1.2.2:
|
282
|
+
version "1.4.1"
|
283
|
+
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
|
284
|
+
dependencies:
|
285
|
+
assert-plus "1.0.0"
|
286
|
+
extsprintf "1.3.0"
|
287
|
+
json-schema "0.2.3"
|
288
|
+
verror "1.10.0"
|
289
|
+
|
290
|
+
klaw@^1.0.0:
|
291
|
+
version "1.3.1"
|
292
|
+
resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
|
293
|
+
optionalDependencies:
|
294
|
+
graceful-fs "^4.1.9"
|
295
|
+
|
296
|
+
marked@^0.3.6:
|
297
|
+
version "0.3.9"
|
298
|
+
resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.9.tgz#54ce6a57e720c3ac6098374ec625fcbcc97ff290"
|
299
|
+
|
300
|
+
mime-db@~1.30.0:
|
301
|
+
version "1.30.0"
|
302
|
+
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
|
303
|
+
|
304
|
+
mime-types@^2.1.12, mime-types@~2.1.17:
|
305
|
+
version "2.1.17"
|
306
|
+
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
|
307
|
+
dependencies:
|
308
|
+
mime-db "~1.30.0"
|
309
|
+
|
310
|
+
minimatch@^3.0.4:
|
311
|
+
version "3.0.4"
|
312
|
+
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
|
313
|
+
dependencies:
|
314
|
+
brace-expansion "^1.1.7"
|
315
|
+
|
316
|
+
mustache@^2.2.1:
|
317
|
+
version "2.3.0"
|
318
|
+
resolved "https://registry.yarnpkg.com/mustache/-/mustache-2.3.0.tgz#4028f7778b17708a489930a6e52ac3bca0da41d0"
|
319
|
+
|
320
|
+
oauth-sign@~0.8.2:
|
321
|
+
version "0.8.2"
|
322
|
+
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
|
323
|
+
|
324
|
+
once@^1.3.0:
|
325
|
+
version "1.4.0"
|
326
|
+
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
327
|
+
dependencies:
|
328
|
+
wrappy "1"
|
329
|
+
|
330
|
+
path-is-absolute@^1.0.0:
|
331
|
+
version "1.0.1"
|
332
|
+
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
333
|
+
|
334
|
+
performance-now@^2.1.0:
|
335
|
+
version "2.1.0"
|
336
|
+
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
|
337
|
+
|
338
|
+
punycode@^1.4.1:
|
339
|
+
version "1.4.1"
|
340
|
+
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
|
341
|
+
|
342
|
+
qs@~6.5.1:
|
343
|
+
version "6.5.1"
|
344
|
+
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
|
345
|
+
|
346
|
+
request@^2.79.0:
|
347
|
+
version "2.83.0"
|
348
|
+
resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
|
349
|
+
dependencies:
|
350
|
+
aws-sign2 "~0.7.0"
|
351
|
+
aws4 "^1.6.0"
|
352
|
+
caseless "~0.12.0"
|
353
|
+
combined-stream "~1.0.5"
|
354
|
+
extend "~3.0.1"
|
355
|
+
forever-agent "~0.6.1"
|
356
|
+
form-data "~2.3.1"
|
357
|
+
har-validator "~5.0.3"
|
358
|
+
hawk "~6.0.2"
|
359
|
+
http-signature "~1.2.0"
|
360
|
+
is-typedarray "~1.0.0"
|
361
|
+
isstream "~0.1.2"
|
362
|
+
json-stringify-safe "~5.0.1"
|
363
|
+
mime-types "~2.1.17"
|
364
|
+
oauth-sign "~0.8.2"
|
365
|
+
performance-now "^2.1.0"
|
366
|
+
qs "~6.5.1"
|
367
|
+
safe-buffer "^5.1.1"
|
368
|
+
stringstream "~0.0.5"
|
369
|
+
tough-cookie "~2.3.3"
|
370
|
+
tunnel-agent "^0.6.0"
|
371
|
+
uuid "^3.1.0"
|
372
|
+
|
373
|
+
rimraf@^2.2.8:
|
374
|
+
version "2.6.2"
|
375
|
+
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
|
376
|
+
dependencies:
|
377
|
+
glob "^7.0.5"
|
378
|
+
|
379
|
+
safe-buffer@^5.0.1, safe-buffer@^5.1.1:
|
380
|
+
version "5.1.1"
|
381
|
+
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
|
382
|
+
|
383
|
+
slug@^0.9.1:
|
384
|
+
version "0.9.1"
|
385
|
+
resolved "https://registry.yarnpkg.com/slug/-/slug-0.9.1.tgz#af08f608a7c11516b61778aa800dce84c518cfda"
|
386
|
+
dependencies:
|
387
|
+
unicode ">= 0.3.1"
|
388
|
+
|
389
|
+
sntp@2.x.x:
|
390
|
+
version "2.1.0"
|
391
|
+
resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8"
|
392
|
+
dependencies:
|
393
|
+
hoek "4.x.x"
|
394
|
+
|
395
|
+
sshpk@^1.7.0:
|
396
|
+
version "1.13.1"
|
397
|
+
resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
|
398
|
+
dependencies:
|
399
|
+
asn1 "~0.2.3"
|
400
|
+
assert-plus "^1.0.0"
|
401
|
+
dashdash "^1.12.0"
|
402
|
+
getpass "^0.1.1"
|
403
|
+
optionalDependencies:
|
404
|
+
bcrypt-pbkdf "^1.0.0"
|
405
|
+
ecc-jsbn "~0.1.1"
|
406
|
+
jsbn "~0.1.0"
|
407
|
+
tweetnacl "~0.14.0"
|
408
|
+
|
409
|
+
stringstream@~0.0.5:
|
410
|
+
version "0.0.5"
|
411
|
+
resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
|
412
|
+
|
413
|
+
striptags@^3.0.1:
|
414
|
+
version "3.1.1"
|
415
|
+
resolved "https://registry.yarnpkg.com/striptags/-/striptags-3.1.1.tgz#c8c3e7fdd6fb4bb3a32a3b752e5b5e3e38093ebd"
|
416
|
+
|
417
|
+
tough-cookie@~2.3.3:
|
418
|
+
version "2.3.3"
|
419
|
+
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561"
|
420
|
+
dependencies:
|
421
|
+
punycode "^1.4.1"
|
422
|
+
|
423
|
+
tunnel-agent@^0.6.0:
|
424
|
+
version "0.6.0"
|
425
|
+
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
|
426
|
+
dependencies:
|
427
|
+
safe-buffer "^5.0.1"
|
428
|
+
|
429
|
+
tweetnacl@^0.14.3, tweetnacl@~0.14.0:
|
430
|
+
version "0.14.5"
|
431
|
+
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
|
432
|
+
|
433
|
+
"unicode@>= 0.3.1":
|
434
|
+
version "10.0.0"
|
435
|
+
resolved "https://registry.yarnpkg.com/unicode/-/unicode-10.0.0.tgz#e5d51c1db93b6c71a0b879e0b0c4af7e6fdf688e"
|
436
|
+
|
437
|
+
uuid@^3.1.0:
|
438
|
+
version "3.1.0"
|
439
|
+
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
|
440
|
+
|
441
|
+
verror@1.10.0:
|
442
|
+
version "1.10.0"
|
443
|
+
resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
|
444
|
+
dependencies:
|
445
|
+
assert-plus "^1.0.0"
|
446
|
+
core-util-is "1.0.2"
|
447
|
+
extsprintf "^1.2.0"
|
448
|
+
|
449
|
+
word-wrap@^1.2.1:
|
450
|
+
version "1.2.3"
|
451
|
+
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
|
452
|
+
|
453
|
+
wrappy@1:
|
454
|
+
version "1.0.2"
|
455
|
+
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|