contentstack 0.8.1 → 0.8.3

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: 9e8661a014dc2bdfc647108d4f28b52735e7a4676b8ace13459ab2d0e7a86763
4
- data.tar.gz: dc461c0e7ee499b02adc8aeb2b6af12681e18b1702b8eaeb5d8bab971dd63a3d
3
+ metadata.gz: 88426b0abac8a7569724d6e382a2c2d602fded747c52f6e9464fa69517fc52b8
4
+ data.tar.gz: 36f5e31ca7ecfb36746c58c04c3ed570eee40472bae9ab441d92e1eab57f395a
5
5
  SHA512:
6
- metadata.gz: 98e41cf1ecd666cb12fed8890283bba0e267e2261162284e3b0bcd2693d0d66ec7e37a908fd9351479ae9ac90d65b0bf1d87fd29cc96a43db977cb594071cc5f
7
- data.tar.gz: 426549e776c6308ab1cb1e79ee9a8e7eed0e23b2fee88f30c5efca95332038f4f033d5590e529a6990a75ea371b521691af5e00b188718a674dd6f282db183f5
6
+ metadata.gz: 444aa9aa0fa377b1ecd7f0387b8c3a9d739e22fa8d94c3021aa10c32caefa7900660b716c4fe55cceff18c1d472ed27d0fb8ed49b9a9ee609b4b2219433c63ae
7
+ data.tar.gz: 603f45c2edea5b7106449beb2873ff5916ebc343c470926682cfdf85eb1fa4ddbfd1befd5e0bb49c11cf458535b0359f319b27630e9dd47c58ba5b3815105380
@@ -13,3 +13,6 @@ jobs:
13
13
  SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
14
14
  with:
15
15
  args: --fail-on=all
16
+ json: true
17
+ continue-on-error: true
18
+ - uses: contentstack/sca-policy@main
data/CHANGELOG.md CHANGED
@@ -1,6 +1,22 @@
1
1
  ## CHANGELOG
2
2
 
3
- ## Version 0.8.0
3
+ ## Version 0.8.3
4
+ ### Date: 27th-March-2026
5
+ ### Security and Compatibility
6
+ - Updated `nokogiri` dependency to `>= 1.19.1` to address the reported vulnerability.
7
+ - Added `.ruby-version` for Ruby 3.3.11 and aligned gem requirements for modern Ruby/macOS environments.
8
+ - Added `script/bundle_safe` helper to avoid Bundler OpenSSL MD5 probe crashes on affected Ruby/OpenSSL setups.
9
+
10
+ ------------------------------------------------
11
+
12
+ ## Version 0.8.2
13
+ ### Date: 12th-January-2026
14
+ ### Improved error messages
15
+ -
16
+
17
+ ------------------------------------------------
18
+
19
+ ## Version 0.8.1
4
20
  ### Date: 05th-January-2026
5
21
  ### Security Bug
6
22
  - Fixed snyk security issues and updated license year
data/Gemfile CHANGED
@@ -1,3 +1,9 @@
1
1
  # Gemfile
2
2
  source "https://rubygems.org"
3
+
4
+ # Transitive via contentstack_utils; pin until upstream requires >= 1.19.1 (SNYK-RUBY-NOKOGIRI-15315717).
5
+ gem "nokogiri", ">= 1.19.1"
6
+
7
+ # Ruby 4.0.x on recent macOS often segfaults in OpenSSL during `bundle` (not fixable in-app). Use Ruby 3.3+ (see .ruby-version).
8
+
3
9
  gemspec
data/Gemfile.lock CHANGED
@@ -1,33 +1,33 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- contentstack (0.8.1)
4
+ contentstack (0.8.3)
5
5
  activesupport (>= 3.2)
6
- contentstack_utils (~> 1.0)
6
+ contentstack_utils (~> 1.2)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- activesupport (7.2.3)
11
+ activesupport (8.1.3)
12
12
  base64
13
- benchmark (>= 0.3)
14
13
  bigdecimal
15
14
  concurrent-ruby (~> 1.0, >= 1.3.1)
16
15
  connection_pool (>= 2.2.5)
17
16
  drb
18
17
  i18n (>= 1.6, < 2)
18
+ json
19
19
  logger (>= 1.4.2)
20
20
  minitest (>= 5.1)
21
21
  securerandom (>= 0.3)
22
22
  tzinfo (~> 2.0, >= 2.0.5)
23
- addressable (2.8.8)
23
+ uri (>= 0.13.1)
24
+ addressable (2.8.9)
24
25
  public_suffix (>= 2.0.2, < 8.0)
25
26
  base64 (0.3.0)
26
- benchmark (0.5.0)
27
27
  bigdecimal (4.0.1)
28
28
  concurrent-ruby (1.3.6)
29
- connection_pool (2.5.5)
30
- contentstack_utils (1.2.1)
29
+ connection_pool (3.0.2)
30
+ contentstack_utils (1.2.2)
31
31
  activesupport (>= 7.0)
32
32
  nokogiri (>= 1.11)
33
33
  crack (1.0.1)
@@ -39,28 +39,32 @@ GEM
39
39
  hashdiff (1.2.1)
40
40
  i18n (1.14.8)
41
41
  concurrent-ruby (~> 1.0)
42
+ json (2.19.3)
42
43
  logger (1.7.0)
43
- minitest (5.27.0)
44
- nokogiri (1.18.10-arm64-darwin)
44
+ minitest (6.0.2)
45
+ drb (~> 2.0)
46
+ prism (~> 1.5)
47
+ nokogiri (1.19.2-arm64-darwin)
45
48
  racc (~> 1.4)
46
- public_suffix (6.0.2)
49
+ prism (1.9.0)
50
+ public_suffix (7.0.5)
47
51
  racc (1.8.1)
48
52
  rexml (3.4.4)
49
- rspec (3.10.0)
50
- rspec-core (~> 3.10.0)
51
- rspec-expectations (~> 3.10.0)
52
- rspec-mocks (~> 3.10.0)
53
- rspec-core (3.10.2)
54
- rspec-support (~> 3.10.0)
55
- rspec-expectations (3.10.2)
53
+ rspec (3.13.2)
54
+ rspec-core (~> 3.13.0)
55
+ rspec-expectations (~> 3.13.0)
56
+ rspec-mocks (~> 3.13.0)
57
+ rspec-core (3.13.6)
58
+ rspec-support (~> 3.13.0)
59
+ rspec-expectations (3.13.5)
56
60
  diff-lcs (>= 1.2.0, < 2.0)
57
- rspec-support (~> 3.10.0)
58
- rspec-mocks (3.10.3)
61
+ rspec-support (~> 3.13.0)
62
+ rspec-mocks (3.13.8)
59
63
  diff-lcs (>= 1.2.0, < 2.0)
60
- rspec-support (~> 3.10.0)
61
- rspec-support (3.10.3)
64
+ rspec-support (~> 3.13.0)
65
+ rspec-support (3.13.7)
62
66
  securerandom (0.4.1)
63
- simplecov (0.21.2)
67
+ simplecov (0.22.0)
64
68
  docile (~> 1.1)
65
69
  simplecov-html (~> 0.11)
66
70
  simplecov_json_formatter (~> 0.1)
@@ -68,21 +72,25 @@ GEM
68
72
  simplecov_json_formatter (0.1.4)
69
73
  tzinfo (2.0.6)
70
74
  concurrent-ruby (~> 1.0)
71
- webmock (3.11.3)
72
- addressable (>= 2.3.6)
75
+ uri (1.1.1)
76
+ webmock (3.26.2)
77
+ addressable (>= 2.8.0)
73
78
  crack (>= 0.3.2)
74
79
  hashdiff (>= 0.4.0, < 2.0.0)
75
80
  yard (0.9.38)
76
81
 
77
82
  PLATFORMS
78
83
  arm64-darwin-22
84
+ arm64-darwin-24
85
+ arm64-darwin-25
79
86
 
80
87
  DEPENDENCIES
81
88
  contentstack!
82
- rspec (~> 3.10.0)
83
- simplecov (~> 0.21.1)
84
- webmock (~> 3.11.0)
85
- yard (~> 0.9.26)
89
+ nokogiri (>= 1.19.1)
90
+ rspec (~> 3.13.0)
91
+ simplecov (~> 0.22.0)
92
+ webmock (~> 3.26.0)
93
+ yard (~> 0.9.38)
86
94
 
87
95
  BUNDLED WITH
88
96
  2.3.13
data/contentstack.gemspec CHANGED
@@ -9,7 +9,8 @@ Gem::Specification.new do |s|
9
9
  s.authors = [%q{Contentstack}]
10
10
  s.email = ["support@contentstack.com"]
11
11
 
12
- s.required_ruby_version = '>= 2.0'
12
+ # Aligns with nokogiri >= 1.19.x (transitive via contentstack_utils), which requires Ruby >= 3.2.
13
+ s.required_ruby_version = '>= 3.3'
13
14
 
14
15
  s.license = "MIT"
15
16
  s.homepage = "https://github.com/contentstack/contentstack-ruby"
@@ -21,10 +22,10 @@ Gem::Specification.new do |s|
21
22
  s.require_paths = ["lib"]
22
23
 
23
24
  s.add_dependency 'activesupport', '>= 3.2'
24
- s.add_dependency 'contentstack_utils' , '~> 1.0'
25
+ s.add_dependency 'contentstack_utils' , '~> 1.2'
25
26
 
26
- s.add_development_dependency 'rspec', '~> 3.10.0'
27
- s.add_development_dependency 'webmock', '~> 3.11.0'
28
- s.add_development_dependency 'simplecov', '~> 0.21.1'
29
- s.add_development_dependency 'yard', '~> 0.9.26'
27
+ s.add_development_dependency 'rspec', '~> 3.13.0'
28
+ s.add_development_dependency 'webmock', '~> 3.26.0'
29
+ s.add_development_dependency 'simplecov', '~> 0.22.0'
30
+ s.add_development_dependency 'yard', '~> 0.9.38'
30
31
  end
@@ -82,7 +82,7 @@ module Contentstack
82
82
  sleep(retryDelay_in_seconds.to_i) #sleep method requires time in seconds as parameter
83
83
  response = fetch_retry(path, query, (count + 1))
84
84
  else
85
- raise Contentstack::Error.new(response) #Retry Limit exceeded
85
+ raise Contentstack::Error.new(Contentstack::ErrorMessages.request_failed(response)) #Retry Limit exceeded
86
86
  end
87
87
  else
88
88
  to_render_content(response)
@@ -125,7 +125,7 @@ module Contentstack
125
125
  error_response = JSON.parse(response.string)
126
126
  error_status = {"status_code" => response.status[0], "status_message" => response.status[1]}
127
127
  error = error_response.merge(error_status)
128
- raise Contentstack::Error.new(error.to_s)
128
+ raise Contentstack::Error.new(Contentstack::ErrorMessages.request_error(error))
129
129
  end
130
130
  end
131
131
 
@@ -165,7 +165,7 @@ module Contentstack
165
165
  error_response = JSON.parse(response.string)
166
166
  error_status = {"status_code" => response.status[0], "status_message" => response.status[1]}
167
167
  error = error_response.merge(error_status)
168
- raise Contentstack::Error.new(error.to_s)
168
+ raise Contentstack::Error.new(Contentstack::ErrorMessages.request_error(error))
169
169
  end
170
170
  end
171
171
 
@@ -10,12 +10,12 @@ module Contentstack
10
10
  attr_reader :region, :host
11
11
  # Initialize "Contentstack" Client instance
12
12
  def initialize(api_key, delivery_token, environment, options={})
13
- raise Contentstack::Error.new("Api Key is not valid") if api_key.class != String
14
- raise Contentstack::Error.new("Api Key Field Should not be Empty") if api_key.empty?
15
- raise Contentstack::Error.new("Delivery Token is not valid") if delivery_token.class != String
16
- raise Contentstack::Error.new("Delivery Token Field Should not be Empty") if delivery_token.empty?
17
- raise Contentstack::Error.new("Envirnoment Field is not valid") if environment.class != String
18
- raise Contentstack::Error.new("Envirnoment Field Should not be Empty") if environment.empty?
13
+ raise Contentstack::Error.new(Contentstack::ErrorMessages::API_KEY_INVALID) if api_key.class != String
14
+ raise Contentstack::Error.new(Contentstack::ErrorMessages::API_KEY_REQUIRED) if api_key.empty?
15
+ raise Contentstack::Error.new(Contentstack::ErrorMessages::DELIVERY_TOKEN_INVALID) if delivery_token.class != String
16
+ raise Contentstack::Error.new(Contentstack::ErrorMessages::DELIVERY_TOKEN_REQUIRED) if delivery_token.empty?
17
+ raise Contentstack::Error.new(Contentstack::ErrorMessages::ENVIRONMENT_INVALID) if environment.class != String
18
+ raise Contentstack::Error.new(Contentstack::ErrorMessages::ENVIRONMENT_REQUIRED) if environment.empty?
19
19
  @region = options[:region].nil? ? Contentstack::Region::US : options[:region]
20
20
  # @host = options[:host].nil? ? get_default_region_hosts(@region) : options[:host] #removed for not supporting custom host with regions
21
21
  @host = get_host_by_region(@region, options) # Added new method for custom host support with different regions
@@ -32,8 +32,8 @@ module Contentstack
32
32
  "retryLimit"=> @retryLimit,
33
33
  "errorRetry" => @errorRetry
34
34
  }
35
- raise Contentstack::Error.new("Proxy URL Should not be Empty") if @proxy_details.present? && @proxy_details[:url].empty?
36
- raise Contentstack::Error.new("Proxy Port Should not be Empty") if @proxy_details.present? && @proxy_details[:port].empty?
35
+ raise Contentstack::Error.new(Contentstack::ErrorMessages::PROXY_URL_REQUIRED) if @proxy_details.present? && @proxy_details[:url].empty?
36
+ raise Contentstack::Error.new(Contentstack::ErrorMessages::PROXY_PORT_REQUIRED) if @proxy_details.present? && @proxy_details[:port].empty?
37
37
  API.init_api(api_key, delivery_token, environment, @host, @branch, @live_preview, @proxy_details, retry_options)
38
38
  end
39
39
 
@@ -1,4 +1,24 @@
1
1
  module Contentstack
2
+ # Centralized error messages for the SDK
3
+ module ErrorMessages
4
+ API_KEY_INVALID = "API Key is invalid. Provide a valid API Key and try again."
5
+ API_KEY_REQUIRED = "API Key is required. Provide a valid API Key and try again."
6
+ DELIVERY_TOKEN_INVALID = "Delivery Token is invalid. Provide a valid Delivery Token and try again."
7
+ DELIVERY_TOKEN_REQUIRED = "Delivery Token is required. Provide a valid Delivery Token and try again."
8
+ ENVIRONMENT_INVALID = "Environment is invalid. Provide a valid Environment and try again."
9
+ ENVIRONMENT_REQUIRED = "Environment is required. Provide a valid Environment and try again."
10
+ PROXY_URL_REQUIRED = "Proxy URL is required. Provide a valid Proxy URL and try again."
11
+ PROXY_PORT_REQUIRED = "Proxy Port is required. Provide a valid Proxy Port and try again."
12
+
13
+ def self.request_failed(response)
14
+ "The request could not be completed due to #{response}. Review the details and try again."
15
+ end
16
+
17
+ def self.request_error(error)
18
+ "The request encountered an issue due to #{error}. Review the details and try again."
19
+ end
20
+ end
21
+
2
22
  class Error < StandardError
3
23
  def initialize(msg="Something Went Wrong.")
4
24
  super
@@ -1,3 +1,3 @@
1
1
  module Contentstack
2
- VERSION = "0.8.1"
2
+ VERSION = "0.8.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: contentstack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.8.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Contentstack
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-01-05 00:00:00.000000000 Z
11
+ date: 2026-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -30,70 +30,70 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.0'
33
+ version: '1.2'
34
34
  type: :runtime
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: '1.0'
40
+ version: '1.2'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 3.10.0
47
+ version: 3.13.0
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 3.10.0
54
+ version: 3.13.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: webmock
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 3.11.0
61
+ version: 3.26.0
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 3.11.0
68
+ version: 3.26.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: simplecov
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.21.1
75
+ version: 0.22.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.21.1
82
+ version: 0.22.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: yard
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.9.26
89
+ version: 0.9.38
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 0.9.26
96
+ version: 0.9.38
97
97
  description: Contentstack Ruby client for the Content Delivery API
98
98
  email:
99
99
  - support@contentstack.com
@@ -165,7 +165,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
165
165
  requirements:
166
166
  - - ">="
167
167
  - !ruby/object:Gem::Version
168
- version: '2.0'
168
+ version: '3.3'
169
169
  required_rubygems_version: !ruby/object:Gem::Requirement
170
170
  requirements:
171
171
  - - ">="