svix 0.15.0 → 0.32.0

Sign up to get free protection for your applications and to get access to all the features.
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"