svix 0.15.0 → 0.32.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.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +9 -3
  3. data/README.md +16 -3
  4. data/lib/svix/api/application_api.rb +386 -0
  5. data/lib/svix/api/authentication_api.rb +155 -0
  6. data/lib/svix/api/endpoint_api.rb +774 -0
  7. data/lib/svix/api/event_type_api.rb +377 -0
  8. data/lib/svix/api/health_api.rb +77 -0
  9. data/lib/svix/api/message_api.rb +289 -0
  10. data/lib/svix/api/message_attempt_api.rb +678 -0
  11. data/lib/svix/api_client.rb +399 -0
  12. data/lib/svix/api_error.rb +57 -0
  13. data/lib/svix/application_api.rb +29 -0
  14. data/lib/svix/authentication_api.rb +17 -0
  15. data/lib/svix/configuration.rb +277 -0
  16. data/lib/svix/endpoint_api.rb +34 -0
  17. data/{src → lib}/svix/errors.rb +4 -1
  18. data/lib/svix/event_type_api.rb +25 -0
  19. data/lib/svix/internal.rb +16 -0
  20. data/lib/svix/message_api.rb +21 -0
  21. data/lib/svix/message_attempt_api.rb +33 -0
  22. data/lib/svix/models/application_in.rb +277 -0
  23. data/lib/svix/models/application_out.rb +305 -0
  24. data/lib/svix/models/dashboard_access_out.rb +265 -0
  25. data/lib/svix/models/endpoint_created_event.rb +269 -0
  26. data/lib/svix/models/endpoint_created_event_data.rb +246 -0
  27. data/lib/svix/models/endpoint_deleted_event.rb +269 -0
  28. data/lib/svix/models/endpoint_deleted_event_data.rb +246 -0
  29. data/lib/svix/models/endpoint_disabled_event.rb +269 -0
  30. data/lib/svix/models/endpoint_disabled_event_data.rb +260 -0
  31. data/lib/svix/models/endpoint_in.rb +368 -0
  32. data/lib/svix/models/endpoint_message_out.rb +363 -0
  33. data/lib/svix/models/endpoint_out.rb +386 -0
  34. data/lib/svix/models/endpoint_secret_out.rb +224 -0
  35. data/lib/svix/models/endpoint_stats.rb +265 -0
  36. data/lib/svix/models/endpoint_update.rb +358 -0
  37. data/lib/svix/models/endpoint_updated_event_data.rb +246 -0
  38. data/lib/svix/models/endpointd_updated_event.rb +269 -0
  39. data/lib/svix/models/event_example_in.rb +253 -0
  40. data/lib/svix/models/event_type_in.rb +279 -0
  41. data/lib/svix/models/event_type_out.rb +279 -0
  42. data/lib/svix/models/event_type_update.rb +235 -0
  43. data/lib/svix/models/http_error_out.rb +237 -0
  44. data/lib/svix/models/http_validation_error.rb +220 -0
  45. data/lib/svix/models/list_response_application_out.rb +248 -0
  46. data/lib/svix/models/list_response_endpoint_message_out.rb +248 -0
  47. data/lib/svix/models/list_response_endpoint_out.rb +248 -0
  48. data/lib/svix/models/list_response_event_type_out.rb +248 -0
  49. data/lib/svix/models/list_response_message_attempt_endpoint_out.rb +248 -0
  50. data/lib/svix/models/list_response_message_attempt_out.rb +248 -0
  51. data/lib/svix/models/list_response_message_endpoint_out.rb +248 -0
  52. data/lib/svix/models/list_response_message_out.rb +248 -0
  53. data/lib/svix/models/message_attempt_endpoint_out.rb +293 -0
  54. data/lib/svix/models/message_attempt_exhausted_event.rb +269 -0
  55. data/lib/svix/models/message_attempt_exhausted_event_data.rb +274 -0
  56. data/lib/svix/models/message_attempt_failed_event.rb +251 -0
  57. data/lib/svix/models/message_attempt_out.rb +307 -0
  58. data/lib/svix/models/message_attempt_trigger_type.rb +37 -0
  59. data/lib/svix/models/message_endpoint_out.rb +409 -0
  60. data/lib/svix/models/message_in.rb +312 -0
  61. data/lib/svix/models/message_out.rb +340 -0
  62. data/lib/svix/models/message_status.rb +39 -0
  63. data/lib/svix/models/validation_error.rb +253 -0
  64. data/lib/svix/models/webhook_types.rb +280 -0
  65. data/lib/svix/svix.rb +43 -0
  66. data/{src → lib}/svix/util.rb +1 -1
  67. data/lib/svix/version.rb +5 -0
  68. data/lib/svix/webhook.rb +75 -0
  69. data/lib/svix.rb +76 -0
  70. data/svix.gemspec +19 -9
  71. metadata +93 -13
  72. data/.gitignore +0 -9
  73. data/src/svix/version.rb +0 -3
  74. data/src/svix/webhook.rb +0 -33
  75. data/src/svix.rb +0 -8
data/lib/svix.rb ADDED
@@ -0,0 +1,76 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require "openssl"
5
+ require "Base64"
6
+
7
+ # API
8
+ require "svix/api/application_api"
9
+ require "svix/api/authentication_api"
10
+ require "svix/api/endpoint_api"
11
+ require "svix/api/event_type_api"
12
+ require "svix/api/health_api"
13
+ require "svix/api/message_api"
14
+ require "svix/api/message_attempt_api"
15
+
16
+ # Models
17
+ require "svix/models/application_in"
18
+ require "svix/models/application_out"
19
+ require "svix/models/dashboard_access_out"
20
+ require "svix/models/endpoint_created_event_data"
21
+ require "svix/models/endpoint_created_event"
22
+ require "svix/models/endpoint_deleted_event_data"
23
+ require "svix/models/endpoint_deleted_event"
24
+ require "svix/models/endpoint_disabled_event_data"
25
+ require "svix/models/endpoint_disabled_event"
26
+ require "svix/models/endpoint_in"
27
+ require "svix/models/endpoint_message_out"
28
+ require "svix/models/endpoint_out"
29
+ require "svix/models/endpoint_secret_out"
30
+ require "svix/models/endpoint_stats"
31
+ require "svix/models/endpoint_update"
32
+ require "svix/models/endpoint_updated_event_data"
33
+ require "svix/models/endpointd_updated_event"
34
+ require "svix/models/event_example_in"
35
+ require "svix/models/event_type_in"
36
+ require "svix/models/event_type_out"
37
+ require "svix/models/event_type_update"
38
+ require "svix/models/http_error_out"
39
+ require "svix/models/http_validation_error"
40
+ require "svix/models/list_response_application_out"
41
+ require "svix/models/list_response_endpoint_message_out"
42
+ require "svix/models/list_response_endpoint_out"
43
+ require "svix/models/list_response_event_type_out"
44
+ require "svix/models/list_response_message_attempt_endpoint_out"
45
+ require "svix/models/list_response_message_attempt_out"
46
+ require "svix/models/list_response_message_endpoint_out"
47
+ require "svix/models/list_response_message_out"
48
+ require "svix/models/message_attempt_endpoint_out"
49
+ require "svix/models/message_attempt_exhausted_event_data"
50
+ require "svix/models/message_attempt_exhausted_event"
51
+ require "svix/models/message_attempt_failed_event"
52
+ require "svix/models/message_attempt_out"
53
+ require "svix/models/message_attempt_trigger_type"
54
+ require "svix/models/message_endpoint_out"
55
+ require "svix/models/message_in"
56
+ require "svix/models/message_out"
57
+ require "svix/models/message_status"
58
+ require "svix/models/validation_error"
59
+ require "svix/models/webhook_types"
60
+
61
+ # Core
62
+ require "svix/api_client"
63
+ require "svix/api_error"
64
+ require "svix/application_api"
65
+ require "svix/authentication_api"
66
+ require "svix/configuration"
67
+ require "svix/endpoint_api"
68
+ require "svix/errors"
69
+ require "svix/event_type_api"
70
+ require "svix/message_api"
71
+ require "svix/message_attempt_api"
72
+ require "svix/svix"
73
+ require "svix/util"
74
+ require "svix/version"
75
+ require "svix/webhook"
76
+ require "svix/internal"
data/svix.gemspec CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
- lib = File.expand_path("../src", __FILE__)
2
+ lib = File.expand_path("../lib", __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require "svix/version"
5
5
 
@@ -21,23 +21,33 @@ Gem::Specification.new do |spec|
21
21
  spec.metadata["allowed_push_host"] = "https://rubygems.org"
22
22
 
23
23
  spec.metadata["homepage_uri"] = spec.homepage
24
- spec.metadata["source_code_uri"] = "https://github.com/svixhq/svix-libs"
25
- spec.metadata["changelog_uri"] = "https://github.com/svixhq/svix-libs/blob/main/ChangeLog.md"
24
+ spec.metadata["source_code_uri"] = "https://github.com/svix/svix-libs"
25
+ spec.metadata["changelog_uri"] = "https://github.com/svix/svix-libs/blob/main/ChangeLog.md"
26
26
  else
27
27
  raise "RubyGems 2.0 or newer is required to protect against " \
28
28
  "public gem pushes."
29
29
  end
30
30
 
31
31
  # Specify which files should be added to the gem when it is released.
32
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
33
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
34
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
35
- end
32
+ ignored = Regexp.union(
33
+ /\A\.openapi-generator/,
34
+ /\Aspec/,
35
+ /\Apkg/,
36
+ /\Atemplates/,
37
+ /\A.gitignore/,
38
+ /\A.openapi-generator-ignore/,
39
+ /\Aopenapi-generator-config.json/,
40
+ /.gem\z/
41
+ )
42
+ spec.files = Dir['**/*'].reject {|f| !File.file?(f) || ignored.match(f) }
43
+
36
44
  spec.bindir = "exe"
37
45
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
38
- spec.require_paths = ["src"]
46
+ spec.require_paths = ["lib"]
47
+
48
+ spec.add_runtime_dependency 'typhoeus', '~> 1.0', '>= 1.0.1'
39
49
 
40
50
  spec.add_development_dependency "bundler", "~> 1.17"
41
- spec.add_development_dependency "rake", "~> 10.0"
51
+ spec.add_development_dependency "rake", "~> 13.0"
42
52
  spec.add_development_dependency "rspec", "~> 3.2"
43
53
  end
metadata CHANGED
@@ -1,15 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: svix
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.0
4
+ version: 0.32.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Svix
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-06-04 00:00:00.000000000 Z
11
+ date: 2021-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: typhoeus
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.0.1
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '1.0'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.0.1
13
33
  - !ruby/object:Gem::Dependency
14
34
  name: bundler
15
35
  requirement: !ruby/object:Gem::Requirement
@@ -30,14 +50,14 @@ dependencies:
30
50
  requirements:
31
51
  - - "~>"
32
52
  - !ruby/object:Gem::Version
33
- version: '10.0'
53
+ version: '13.0'
34
54
  type: :development
35
55
  prerelease: false
36
56
  version_requirements: !ruby/object:Gem::Requirement
37
57
  requirements:
38
58
  - - "~>"
39
59
  - !ruby/object:Gem::Version
40
- version: '10.0'
60
+ version: '13.0'
41
61
  - !ruby/object:Gem::Dependency
42
62
  name: rspec
43
63
  requirement: !ruby/object:Gem::Requirement
@@ -59,16 +79,76 @@ executables: []
59
79
  extensions: []
60
80
  extra_rdoc_files: []
61
81
  files:
62
- - ".gitignore"
63
82
  - Gemfile
64
83
  - Gemfile.lock
65
84
  - README.md
66
85
  - Rakefile
67
- - src/svix.rb
68
- - src/svix/errors.rb
69
- - src/svix/util.rb
70
- - src/svix/version.rb
71
- - src/svix/webhook.rb
86
+ - lib/svix.rb
87
+ - lib/svix/api/application_api.rb
88
+ - lib/svix/api/authentication_api.rb
89
+ - lib/svix/api/endpoint_api.rb
90
+ - lib/svix/api/event_type_api.rb
91
+ - lib/svix/api/health_api.rb
92
+ - lib/svix/api/message_api.rb
93
+ - lib/svix/api/message_attempt_api.rb
94
+ - lib/svix/api_client.rb
95
+ - lib/svix/api_error.rb
96
+ - lib/svix/application_api.rb
97
+ - lib/svix/authentication_api.rb
98
+ - lib/svix/configuration.rb
99
+ - lib/svix/endpoint_api.rb
100
+ - lib/svix/errors.rb
101
+ - lib/svix/event_type_api.rb
102
+ - lib/svix/internal.rb
103
+ - lib/svix/message_api.rb
104
+ - lib/svix/message_attempt_api.rb
105
+ - lib/svix/models/application_in.rb
106
+ - lib/svix/models/application_out.rb
107
+ - lib/svix/models/dashboard_access_out.rb
108
+ - lib/svix/models/endpoint_created_event.rb
109
+ - lib/svix/models/endpoint_created_event_data.rb
110
+ - lib/svix/models/endpoint_deleted_event.rb
111
+ - lib/svix/models/endpoint_deleted_event_data.rb
112
+ - lib/svix/models/endpoint_disabled_event.rb
113
+ - lib/svix/models/endpoint_disabled_event_data.rb
114
+ - lib/svix/models/endpoint_in.rb
115
+ - lib/svix/models/endpoint_message_out.rb
116
+ - lib/svix/models/endpoint_out.rb
117
+ - lib/svix/models/endpoint_secret_out.rb
118
+ - lib/svix/models/endpoint_stats.rb
119
+ - lib/svix/models/endpoint_update.rb
120
+ - lib/svix/models/endpoint_updated_event_data.rb
121
+ - lib/svix/models/endpointd_updated_event.rb
122
+ - lib/svix/models/event_example_in.rb
123
+ - lib/svix/models/event_type_in.rb
124
+ - lib/svix/models/event_type_out.rb
125
+ - lib/svix/models/event_type_update.rb
126
+ - lib/svix/models/http_error_out.rb
127
+ - lib/svix/models/http_validation_error.rb
128
+ - lib/svix/models/list_response_application_out.rb
129
+ - lib/svix/models/list_response_endpoint_message_out.rb
130
+ - lib/svix/models/list_response_endpoint_out.rb
131
+ - lib/svix/models/list_response_event_type_out.rb
132
+ - lib/svix/models/list_response_message_attempt_endpoint_out.rb
133
+ - lib/svix/models/list_response_message_attempt_out.rb
134
+ - lib/svix/models/list_response_message_endpoint_out.rb
135
+ - lib/svix/models/list_response_message_out.rb
136
+ - lib/svix/models/message_attempt_endpoint_out.rb
137
+ - lib/svix/models/message_attempt_exhausted_event.rb
138
+ - lib/svix/models/message_attempt_exhausted_event_data.rb
139
+ - lib/svix/models/message_attempt_failed_event.rb
140
+ - lib/svix/models/message_attempt_out.rb
141
+ - lib/svix/models/message_attempt_trigger_type.rb
142
+ - lib/svix/models/message_endpoint_out.rb
143
+ - lib/svix/models/message_in.rb
144
+ - lib/svix/models/message_out.rb
145
+ - lib/svix/models/message_status.rb
146
+ - lib/svix/models/validation_error.rb
147
+ - lib/svix/models/webhook_types.rb
148
+ - lib/svix/svix.rb
149
+ - lib/svix/util.rb
150
+ - lib/svix/version.rb
151
+ - lib/svix/webhook.rb
72
152
  - svix.gemspec
73
153
  homepage: https://www.svix.com
74
154
  licenses:
@@ -76,12 +156,12 @@ licenses:
76
156
  metadata:
77
157
  allowed_push_host: https://rubygems.org
78
158
  homepage_uri: https://www.svix.com
79
- source_code_uri: https://github.com/svixhq/svix-libs
80
- changelog_uri: https://github.com/svixhq/svix-libs/blob/main/ChangeLog.md
159
+ source_code_uri: https://github.com/svix/svix-libs
160
+ changelog_uri: https://github.com/svix/svix-libs/blob/main/ChangeLog.md
81
161
  post_install_message:
82
162
  rdoc_options: []
83
163
  require_paths:
84
- - src
164
+ - lib
85
165
  required_ruby_version: !ruby/object:Gem::Requirement
86
166
  requirements:
87
167
  - - ">="
data/.gitignore DELETED
@@ -1,9 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /_yardoc/
4
- /coverage/
5
- /doc/
6
- /pkg/
7
- /spec/reports/
8
- /tmp/
9
- *.gem
data/src/svix/version.rb DELETED
@@ -1,3 +0,0 @@
1
- module Svix
2
- VERSION = "0.15.0"
3
- end
data/src/svix/webhook.rb DELETED
@@ -1,33 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Svix
4
- class Webhook
5
- def initialize(secret)
6
- @secret = Base64.decode64(secret)
7
- end
8
-
9
- def verify(payload, headers)
10
- msgId = headers["svix-id"]
11
- msgSignature = headers["svix-signature"]
12
- msgTimestamp = headers["svix-timestamp"]
13
- if !msgSignature || !msgId || !msgTimestamp
14
- raise WebhookVerificationError, "Missing required headers"
15
- end
16
-
17
- toSign = "#{msgId}.#{msgTimestamp}.#{payload}"
18
- signature = Base64.encode64(OpenSSL::HMAC.digest(OpenSSL::Digest.new('sha256'), @secret, toSign)).strip()
19
-
20
- passedSignatures = msgSignature.split(" ")
21
- passedSignatures.each do |versionedSignature|
22
- version, expectedSignature = versionedSignature.split(',', 2)
23
- if version != "v1"
24
- next
25
- end
26
- if Svix.secure_compare(signature, expectedSignature)
27
- return JSON.parse(payload, symbolize_names: true)
28
- end
29
- end
30
- raise WebhookVerificationError, "No matching signature found"
31
- end
32
- end
33
- end
data/src/svix.rb DELETED
@@ -1,8 +0,0 @@
1
- require "json"
2
- require "openssl"
3
- require 'Base64'
4
-
5
- require "svix/version"
6
- require "svix/errors"
7
- require "svix/webhook"
8
- require "svix/util"