graphql-relay-walker 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4afa127af28fd4cffeea4fcc562e50275f397dd9aaead073d406d615a82d3a93
4
- data.tar.gz: 9e26b00ba9b1b2d4f81454b79621a55368263894bb2ba164da98708707967934
3
+ metadata.gz: d351dcfe5896d75e7086bab93406475e6af14d9f5901330a03dfaae0c1f225a0
4
+ data.tar.gz: a4f68b19ecb09f2e07168f7b3ad2f58fd71600acf169054249026a18c42f068d
5
5
  SHA512:
6
- metadata.gz: a44890c61009ccd8cf9cc1e700f150107105bc3f03da0b8703948e682af1224cda18b9f71a941cf12e94c6f0a315649f7dd0c2c892c21cec5e081c9149722c16
7
- data.tar.gz: 83dff8d60ef1a583e1c1a92db5d91c348b6bbb9034c3f3f86be8ca35f97f3e618d920586af1762715909b8efbcd15742d049dcb2f351f34bcb5b36089ae50d54
6
+ metadata.gz: b42954a51f5607972833980833fc45d7a5e4eb512b91c91aba116fa53af3cd9eed7a89b179d2a42ac01642ad17a20cc368b107c854359ae6da97a0fcc82cab4a
7
+ data.tar.gz: 0e1c06e2284e48fa72f7f3452c133e450cbdd6aebb020cdd05c5afffeb26d48f40f77808bd92b60340d2f863d440edb0b9c653100e320ec1c9331e75edbf5fae
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'graphql-relay-walker'
3
- s.version = '0.2.0'
3
+ s.version = '0.3.0'
4
4
  s.licenses = ['MIT']
5
5
  s.summary = 'A tool for traversing your GraphQL schema to proactively detect potential data access vulnerabilities.'
6
6
  s.authors = ['Ben Toews']
@@ -9,9 +9,9 @@ Gem::Specification.new do |s|
9
9
  s.files += Dir.glob('lib/**/*.rb')
10
10
  s.homepage = 'https://github.com/github/graphql-relay-walker'
11
11
 
12
- s.add_dependency 'graphql', '>= 1.5.6'
12
+ s.add_dependency 'graphql', '~> 1.8'
13
13
 
14
- s.add_development_dependency 'graphql-client', '~> 0.2'
14
+ s.add_development_dependency 'graphql-client', '~> 0.15'
15
15
  s.add_development_dependency 'rake', '~> 11.3'
16
16
  s.add_development_dependency 'rspec', '~> 3.5'
17
17
  end
@@ -70,7 +70,10 @@ module GraphQL::Relay::Walker
70
70
  def inline_fragment_ast(type, with_children: true)
71
71
  selections = []
72
72
  if with_children
73
- type.all_fields.each do |field|
73
+ # Class-based types return all fields in `.fields`
74
+ all_fields = type.respond_to?(:all_fields) ? type.all_fields : type.fields.values
75
+ all_fields = all_fields.sort_by(&:graphql_name)
76
+ all_fields.each do |field|
74
77
  field_type = field.type.unwrap
75
78
  if node_field?(field) && include?(field_type)
76
79
  selections << node_field_ast(field)
@@ -88,7 +91,7 @@ module GraphQL::Relay::Walker
88
91
  nil
89
92
  else
90
93
  GraphQL::Language::Nodes::InlineFragment.new(
91
- type: make_type_name_node(type.name),
94
+ type: make_type_name_node(type.graphql_name),
92
95
  selections: selections,
93
96
  )
94
97
  end
@@ -114,12 +117,12 @@ module GraphQL::Relay::Walker
114
117
  if !required_args_are_present
115
118
  nil
116
119
  else
117
- f_alias = field.name == 'id' ? nil : random_alias
120
+ f_alias = field.graphql_name == 'id' ? nil : random_alias
118
121
  f_args = arguments.map do |name, value|
119
122
  GraphQL::Language::Nodes::Argument.new(name: name, value: value)
120
123
  end
121
124
 
122
- GraphQL::Language::Nodes::Field.new(name: field.name, alias: f_alias, arguments: f_args)
125
+ GraphQL::Language::Nodes::Field.new(name: field.graphql_name, alias: f_alias, arguments: f_args)
123
126
  end
124
127
  end
125
128
 
@@ -213,11 +216,12 @@ module GraphQL::Relay::Walker
213
216
  # `node` field that is a relay node. Returns false otherwise.
214
217
  def connection_field?(field)
215
218
  type = field.type.unwrap
216
-
217
- if edges_field = type.get_field('edges')
218
- edges = edges_field.type.unwrap
219
- if node_field = edges.get_field('node')
220
- return node_field?(node_field)
219
+ if type.kind.fields?
220
+ if edges_field = type.get_field('edges')
221
+ edges = edges_field.type.unwrap
222
+ if node_field = edges.get_field('node')
223
+ return node_field?(node_field)
224
+ end
221
225
  end
222
226
  end
223
227
 
@@ -268,7 +272,7 @@ module GraphQL::Relay::Walker
268
272
  end
269
273
 
270
274
  def valid_input?(type, input)
271
- type.valid_isolated_input?(input)
275
+ type.valid_input?(input, GraphQL::Query::NullContext)
272
276
  end
273
277
 
274
278
  def make_type_name_node(type_name)
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphql-relay-walker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Toews
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-10 00:00:00.000000000 Z
11
+ date: 2019-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: graphql
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.5.6
19
+ version: '1.8'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.5.6
26
+ version: '1.8'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: graphql-client
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.2'
33
+ version: '0.15'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.2'
40
+ version: '0.15'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement