graphql-relay-walker 0.2.0 → 0.3.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
  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