graphql-persisted_queries 1.8.0 → 1.8.2
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 +4 -4
- data/.github/workflows/rspec.yml +9 -7
- data/.github/workflows/rubocop.yml +2 -2
- data/CHANGELOG.md +11 -1
- data/README.md +2 -0
- data/gemfiles/{graphql_1_12_0.gemfile → graphql_2_3_11.gemfile} +1 -1
- data/graphql-persisted_queries.gemspec +2 -1
- data/lib/graphql/persisted_queries/compiled_queries/instrumentation.rb +18 -0
- data/lib/graphql/persisted_queries/compiled_queries/resolver.rb +22 -0
- data/lib/graphql/persisted_queries/schema_patch.rb +5 -15
- data/lib/graphql/persisted_queries/version.rb +1 -1
- metadata +20 -9
- data/gemfiles/graphql_1_12_4.gemfile +0 -5
- data/gemfiles/graphql_1_13_16.gemfile +0 -5
- data/gemfiles/graphql_1_13_7.gemfile +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 74e2464a2988d654dffdc3f52efc8fbd3ecb86cc11980fb3000a5dcf30577287
|
4
|
+
data.tar.gz: d65ffe6edc09ef61039e7f671aa2105f015ab3c49aa1df906a980f641b061aac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b919241a30472097a837e9a4f4ccaf60d0b6aee05e54244da678939d74845cd790c9b089535031cc178a62ecf84fffbf6a99c07dadac9f115b441d318f6281a
|
7
|
+
data.tar.gz: 6d3e37e77fc7ba9c0859af116d6e18a7bfdd4a11a6bf5326b301d320857d485a96a4acd3261fc460f0aaf935ff8069d55e071c93d5cd05afa71c3f921036a146
|
data/.github/workflows/rspec.yml
CHANGED
@@ -18,20 +18,22 @@ jobs:
|
|
18
18
|
strategy:
|
19
19
|
fail-fast: false
|
20
20
|
matrix:
|
21
|
-
ruby: [
|
21
|
+
ruby: [3.1, 3.2, 3.3, 3.4]
|
22
22
|
gemfile: [
|
23
|
-
"gemfiles/graphql_1_12_0.gemfile",
|
24
|
-
"gemfiles/graphql_1_12_4.gemfile",
|
25
|
-
"gemfiles/graphql_1_13_7.gemfile",
|
26
|
-
"gemfiles/graphql_1_13_16.gemfile",
|
27
23
|
"gemfiles/graphql_2_1_0.gemfile",
|
28
24
|
"gemfiles/graphql_2_2_5.gemfile",
|
29
|
-
"gemfiles/
|
25
|
+
"gemfiles/graphql_2_3_11.gemfile",
|
26
|
+
"gemfiles/graphql_master.gemfile",
|
30
27
|
]
|
28
|
+
exclude:
|
29
|
+
- ruby: "3.1"
|
30
|
+
gemfile: gemfiles/graphql_2_3_11.gemfile
|
31
|
+
- ruby: "3.1"
|
32
|
+
gemfile: gemfiles/graphql_master.gemfile
|
31
33
|
|
32
34
|
steps:
|
33
35
|
- uses: actions/checkout@v2
|
34
|
-
- uses: actions/cache@
|
36
|
+
- uses: actions/cache@v4
|
35
37
|
with:
|
36
38
|
path: /home/runner/bundle
|
37
39
|
key: bundle-${{ matrix.ruby }}-${{ matrix.gemfile }}-${{ hashFiles(matrix.gemfile) }}-${{ hashFiles('**/*.gemspec') }}
|
@@ -17,5 +17,5 @@ jobs:
|
|
17
17
|
ruby-version: 2.7
|
18
18
|
- name: Lint Ruby code with RuboCop
|
19
19
|
run: |
|
20
|
-
bundle install --gemfile gemfiles/
|
21
|
-
bundle exec --gemfile gemfiles/
|
20
|
+
bundle install --gemfile gemfiles/graphql_2_0_0.gemfile --jobs 4 --retry 3
|
21
|
+
bundle exec --gemfile gemfiles/graphql_2_0_0.gemfile rubocop
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,16 @@
|
|
1
1
|
# Change log
|
2
2
|
|
3
|
-
##
|
3
|
+
## 1.8.2 (2025-06-12)
|
4
|
+
|
5
|
+
- [PR#79](https://github.com/DmitryTsepelev/graphql-ruby-persisted_queries/pull/79)
|
6
|
+
Deprecate old ruby and gql versions ([@DmitryTsepelev][])
|
7
|
+
- [PR#78](https://github.com/DmitryTsepelev/graphql-ruby-persisted_queries/pull/78)
|
8
|
+
Migrate CompiledQueries instrumentation to tracer ([@DmitryTsepelev][])
|
9
|
+
|
10
|
+
## 1.8.1 (2024-06-01)
|
11
|
+
|
12
|
+
- [PR#77](https://github.com/DmitryTsepelev/graphql-ruby-persisted_queries/pull/77)
|
13
|
+
Fix serialization of Document (broken by [this change](https://github.com/rmosolgo/graphql-ruby/commit/7de7a1f98d4299abc1fb7deb5ca0ed2190867ab6)) ([@DmitryTsepelev][])
|
4
14
|
|
5
15
|
## 1.8.0 (2024-03-31)
|
6
16
|
|
data/README.md
CHANGED
@@ -12,6 +12,8 @@ Used in production by:
|
|
12
12
|
- Toptal
|
13
13
|
- _Want to be here? Let me know_ 🙂
|
14
14
|
|
15
|
+
You can support my open–source work [here](https://boosty.to/dmitry_tsepelev).
|
16
|
+
|
15
17
|
## Getting started
|
16
18
|
|
17
19
|
First of all, install and configure [apollo's persisted queries](https://www.apollographql.com/docs/react/api/link/persisted-queries/) on the front–end side:
|
@@ -22,7 +22,8 @@ Gem::Specification.new do |spec|
|
|
22
22
|
|
23
23
|
spec.required_ruby_version = ">= 2.7"
|
24
24
|
|
25
|
-
spec.add_dependency "graphql", ">=
|
25
|
+
spec.add_dependency "graphql", ">= 2.0"
|
26
|
+
spec.add_dependency "base64"
|
26
27
|
|
27
28
|
spec.add_development_dependency "rspec", "~> 3.9"
|
28
29
|
spec.add_development_dependency "rake", ">= 10.0"
|
@@ -8,6 +8,8 @@ module GraphQL
|
|
8
8
|
class << self
|
9
9
|
# Actions to perform before the query resolution
|
10
10
|
def before_query(query)
|
11
|
+
query = query.query if query.class.name == "GraphQL::Query::Partial"
|
12
|
+
|
11
13
|
return unless query.context[:extensions]
|
12
14
|
|
13
15
|
query.try_load_document!
|
@@ -19,6 +21,22 @@ module GraphQL
|
|
19
21
|
|
20
22
|
def after_query(*); end
|
21
23
|
end
|
24
|
+
|
25
|
+
# Instrumentations were deprecated in 2.2.5, this is a module to migrate to new interface
|
26
|
+
module Tracer
|
27
|
+
def execute_query(query:)
|
28
|
+
GraphQL::PersistedQueries::CompiledQueries::Instrumentation.before_query(query)
|
29
|
+
super
|
30
|
+
end
|
31
|
+
|
32
|
+
def execute_multiplex(multiplex:)
|
33
|
+
multiplex.queries.each do |query|
|
34
|
+
GraphQL::PersistedQueries::CompiledQueries::Instrumentation.before_query(query)
|
35
|
+
end
|
36
|
+
|
37
|
+
super
|
38
|
+
end
|
39
|
+
end
|
22
40
|
end
|
23
41
|
end
|
24
42
|
end
|
@@ -7,6 +7,28 @@ module GraphQL
|
|
7
7
|
class Resolver
|
8
8
|
include GraphQL::PersistedQueries::ResolverHelpers
|
9
9
|
|
10
|
+
# Patch to support custom serialization
|
11
|
+
class GraphQL::Language::Parser # rubocop:disable Style/ClassAndModuleChildren
|
12
|
+
SEP = "|"
|
13
|
+
|
14
|
+
def _dump(*)
|
15
|
+
[
|
16
|
+
@graphql_str,
|
17
|
+
JSON.generate("filename": @filename, "max_tokens": @max_tokens, "document": @document)
|
18
|
+
].join(SEP)
|
19
|
+
end
|
20
|
+
|
21
|
+
def self._load(args)
|
22
|
+
graphql_str, raw_kwargs = args.split(SEP)
|
23
|
+
|
24
|
+
new(graphql_str,
|
25
|
+
filename: raw_kwargs["filename"],
|
26
|
+
max_tokens: raw_kwargs["max_tokens"]).tap do |parser|
|
27
|
+
parser.instance_variable_set(:@document, raw_kwargs["document"])
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
10
32
|
def initialize(schema, extensions)
|
11
33
|
@schema = schema
|
12
34
|
@extensions = extensions
|
@@ -26,8 +26,7 @@ module GraphQL
|
|
26
26
|
|
27
27
|
def configure_compiled_queries(schema)
|
28
28
|
if graphql_ruby_after_2_2_5?
|
29
|
-
schema.trace_with(GraphQL::
|
30
|
-
schema.instance_exec { own_instrumenters[:query] << CompiledQueries::Instrumentation }
|
29
|
+
schema.trace_with(GraphQL::PersistedQueries::CompiledQueries::Instrumentation::Tracer)
|
31
30
|
else
|
32
31
|
schema.instrument :query, CompiledQueries::Instrumentation
|
33
32
|
end
|
@@ -78,7 +77,10 @@ module GraphQL
|
|
78
77
|
end
|
79
78
|
|
80
79
|
def verify_http_method=(verify)
|
81
|
-
|
80
|
+
return unless verify
|
81
|
+
|
82
|
+
require "graphql/persisted_queries/analyzers/http_method_ast_analyzer"
|
83
|
+
query_analyzer(Analyzers::HttpMethodAstAnalyzer)
|
82
84
|
end
|
83
85
|
|
84
86
|
def persisted_queries_tracing_enabled?
|
@@ -94,18 +96,6 @@ module GraphQL
|
|
94
96
|
persisted_query_store.tracers = tracers if persisted_queries_tracing_enabled?
|
95
97
|
end
|
96
98
|
end
|
97
|
-
|
98
|
-
private
|
99
|
-
|
100
|
-
def prepare_analyzer
|
101
|
-
if using_ast_analysis?
|
102
|
-
require "graphql/persisted_queries/analyzers/http_method_ast_analyzer"
|
103
|
-
Analyzers::HttpMethodAstAnalyzer
|
104
|
-
else
|
105
|
-
require "graphql/persisted_queries/analyzers/http_method_analyzer"
|
106
|
-
Analyzers::HttpMethodAnalyzer.new
|
107
|
-
end
|
108
|
-
end
|
109
99
|
end
|
110
100
|
end
|
111
101
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: graphql-persisted_queries
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.8.
|
4
|
+
version: 1.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- DmitryTsepelev
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-06-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: graphql
|
@@ -16,14 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.0'
|
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: '
|
26
|
+
version: '2.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: base64
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: rspec
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -137,13 +151,10 @@ files:
|
|
137
151
|
- docs/http_cache.md
|
138
152
|
- docs/skip_query_preprocessing.md
|
139
153
|
- docs/tracing.md
|
140
|
-
- gemfiles/graphql_1_12_0.gemfile
|
141
|
-
- gemfiles/graphql_1_12_4.gemfile
|
142
|
-
- gemfiles/graphql_1_13_16.gemfile
|
143
|
-
- gemfiles/graphql_1_13_7.gemfile
|
144
154
|
- gemfiles/graphql_2_0_0.gemfile
|
145
155
|
- gemfiles/graphql_2_1_0.gemfile
|
146
156
|
- gemfiles/graphql_2_2_5.gemfile
|
157
|
+
- gemfiles/graphql_2_3_11.gemfile
|
147
158
|
- gemfiles/graphql_master.gemfile
|
148
159
|
- graphql-persisted_queries.gemspec
|
149
160
|
- lib/graphql/persisted_queries.rb
|
@@ -192,7 +203,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
192
203
|
- !ruby/object:Gem::Version
|
193
204
|
version: '0'
|
194
205
|
requirements: []
|
195
|
-
rubygems_version: 3.
|
206
|
+
rubygems_version: 3.5.16
|
196
207
|
signing_key:
|
197
208
|
specification_version: 4
|
198
209
|
summary: Persisted queries for graphql-ruby
|