radioactive 0.1.1
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 +7 -0
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +85 -0
- data/CLAUDE.md +52 -0
- data/README.md +530 -0
- data/Rakefile +11 -0
- data/Steepfile +24 -0
- data/lib/radioactive/address_check.rb +59 -0
- data/lib/radioactive/errors.rb +28 -0
- data/lib/radioactive/fetcher.rb +355 -0
- data/lib/radioactive/monotonic_clock.rb +9 -0
- data/lib/radioactive/result.rb +5 -0
- data/lib/radioactive/version.rb +5 -0
- data/lib/radioactive.rb +19 -0
- data/lib/tasks/gem.rake +5 -0
- data/lib/tasks/lint/all.rake +11 -0
- data/lib/tasks/lint/rubocop.rake +15 -0
- data/lib/tasks/security.rake +11 -0
- data/lib/tasks/types.rake +16 -0
- data/sig/radioactive.rbs +234 -0
- data/sig/zeitwerk.rbs +13 -0
- data.tar.gz.sig +0 -0
- metadata +112 -0
- metadata.gz.sig +0 -0
data/sig/zeitwerk.rbs
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Minimal type stubs for Zeitwerk. We only use a tiny slice of its API in the
|
|
2
|
+
# gem entry point — `Zeitwerk::Loader.for_gem` plus `#ignore` and `#setup` on
|
|
3
|
+
# the returned loader. The community gem_rbs_collection has fuller sigs; this
|
|
4
|
+
# stub avoids pulling that in for one bootstrap call.
|
|
5
|
+
module Zeitwerk
|
|
6
|
+
class Loader
|
|
7
|
+
def self.for_gem: () -> Loader
|
|
8
|
+
|
|
9
|
+
def ignore: (*String paths) -> void
|
|
10
|
+
|
|
11
|
+
def setup: () -> void
|
|
12
|
+
end
|
|
13
|
+
end
|
data.tar.gz.sig
ADDED
|
Binary file
|
metadata
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: radioactive
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.1
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Pawel Osiczko
|
|
8
|
+
bindir: exe
|
|
9
|
+
cert_chain:
|
|
10
|
+
- |
|
|
11
|
+
-----BEGIN CERTIFICATE-----
|
|
12
|
+
MIIERjCCAq6gAwIBAgIBBDANBgkqhkiG9w0BAQsFADBJMRIwEAYDVQQDDAlwLm9z
|
|
13
|
+
aWN6a28xHjAcBgoJkiaJk/IsZAEZFg50ZXRyYXB5bG9jdG9teTETMBEGCgmSJomT
|
|
14
|
+
8ixkARkWA29yZzAeFw0yNjAxMTYxNTQ3MjBaFw0yNzAxMTYxNTQ3MjBaMEkxEjAQ
|
|
15
|
+
BgNVBAMMCXAub3NpY3prbzEeMBwGCgmSJomT8ixkARkWDnRldHJhcHlsb2N0b215
|
|
16
|
+
MRMwEQYKCZImiZPyLGQBGRYDb3JnMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIB
|
|
17
|
+
igKCAYEAuXxyU+vZ1FWNw5AxCae2wxEBW/DrJoO4VomlTDgHV1fwQ81F2m+FhB+v
|
|
18
|
+
yadtyuwkpfLo6aJsLb3j0/DhoE/hl0s/kZVJgRlomU/fVIqLflBA3DkKgG9CG9H3
|
|
19
|
+
ipsPjVaJNTxgCTbEDghYDsQbIg/h9udxqJud4Xy7XyqElq8cle2j4unOd1AcFqa7
|
|
20
|
+
JRM/CDLk/rxYlguUzdOL4D+EFCHbtOa9SuOhbjLep49ibsPMLhr5Vp5wzOb5L9Ez
|
|
21
|
+
zr2dM8A0u3V9FAF7OxeKvsTCwZpHSL05WNqVCl4V3LLqtu4Gso9YXwrLV0yQIfJr
|
|
22
|
+
DnAb5SnEVzwNDnPFuCFx9y+OJ6RJxe8k4dTIEca7N8rKSHKm8wO2kMe/xrib2knu
|
|
23
|
+
NOCGmVC6JaxY2rwrCwuZkT/fdUS43d4OSiMYzJ3MvOrbblCqlBgF7Uab6wBSV9Hz
|
|
24
|
+
HrikpdU3LfHhkuw0i+u6DY6wo2ig8TmBElYcGVBvHLC4zE+SauB3twUA3KS+L28s
|
|
25
|
+
ZLkdQKSHAgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
|
|
26
|
+
BBQYc3LuAKPW1hVGU4v2+Heo9njxkzANBgkqhkiG9w0BAQsFAAOCAYEAbBHLTL6R
|
|
27
|
+
1qTMfAN3QDkKR1LY1ZwVmIOewbYb2ZR8Wh7YVrMsPjxhtyKPSHQcKjUfHJWu/x0v
|
|
28
|
+
R4REqmqtQVAYIS+wE+eU0m6amJhIaUBPpe9VUGAATQFGcZfkvZSSo2iypKvUviCR
|
|
29
|
+
QEnvdwdikjj8UWPq+BY5XwzPwDalktwNIbKOGpA6Vi/QvNsPgT60gVlfSK00r+xD
|
|
30
|
+
2K2IW+cbg7n5tMk12TPe6sGYZ/Etv8HbAIhfmvqeojRoQRxu9TkuRK5RoooPNb6I
|
|
31
|
+
gQ+tY0DZWiRb8ZA16J2H7xByPGMG05Wh35RFK0nHHBJIKGtUFoo9IKLX2CTcYCV3
|
|
32
|
+
CDn4zKpaoNCrvzrb33CN1/WLOHyd0MwcaUlZXbPPIJwba22bKxJwcZak+ito48+o
|
|
33
|
+
eOOM3Ey1zRgRMJ796ATHV0nD9PJ55WJtOf8mDlfEo3OzQEr9eOUDKroboS67Rx6Z
|
|
34
|
+
2mrF2gBJQHxM1jOVHd7xTUWPJaUaSXrQYrxuu7BEP1cSFUsn4TI0Q7RK
|
|
35
|
+
-----END CERTIFICATE-----
|
|
36
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
37
|
+
dependencies:
|
|
38
|
+
- !ruby/object:Gem::Dependency
|
|
39
|
+
name: zeitwerk
|
|
40
|
+
requirement: !ruby/object:Gem::Requirement
|
|
41
|
+
requirements:
|
|
42
|
+
- - ">="
|
|
43
|
+
- !ruby/object:Gem::Version
|
|
44
|
+
version: '0'
|
|
45
|
+
type: :runtime
|
|
46
|
+
prerelease: false
|
|
47
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
48
|
+
requirements:
|
|
49
|
+
- - ">="
|
|
50
|
+
- !ruby/object:Gem::Version
|
|
51
|
+
version: '0'
|
|
52
|
+
description: |
|
|
53
|
+
Radioactive wraps Net::HTTP with defenses against SSRF, DNS rebinding,
|
|
54
|
+
slowloris, response and decompression bombs, redirect chains into private
|
|
55
|
+
addresses, and disallowed schemes. Safe-by-default for use cases like link
|
|
56
|
+
previews, image proxies, webhook delivery, and metadata extraction from
|
|
57
|
+
user-supplied URLs.
|
|
58
|
+
email:
|
|
59
|
+
- p.osiczko@tetrapyloctomy.org
|
|
60
|
+
executables: []
|
|
61
|
+
extensions: []
|
|
62
|
+
extra_rdoc_files: []
|
|
63
|
+
files:
|
|
64
|
+
- CHANGELOG.md
|
|
65
|
+
- CLAUDE.md
|
|
66
|
+
- README.md
|
|
67
|
+
- Rakefile
|
|
68
|
+
- Steepfile
|
|
69
|
+
- lib/radioactive.rb
|
|
70
|
+
- lib/radioactive/address_check.rb
|
|
71
|
+
- lib/radioactive/errors.rb
|
|
72
|
+
- lib/radioactive/fetcher.rb
|
|
73
|
+
- lib/radioactive/monotonic_clock.rb
|
|
74
|
+
- lib/radioactive/result.rb
|
|
75
|
+
- lib/radioactive/version.rb
|
|
76
|
+
- lib/tasks/gem.rake
|
|
77
|
+
- lib/tasks/lint/all.rake
|
|
78
|
+
- lib/tasks/lint/rubocop.rake
|
|
79
|
+
- lib/tasks/security.rake
|
|
80
|
+
- lib/tasks/types.rake
|
|
81
|
+
- sig/radioactive.rbs
|
|
82
|
+
- sig/zeitwerk.rbs
|
|
83
|
+
homepage: https://github.com/posiczko/radioactive
|
|
84
|
+
licenses:
|
|
85
|
+
- MIT
|
|
86
|
+
metadata:
|
|
87
|
+
allowed_push_host: https://rubygems.org
|
|
88
|
+
homepage_uri: https://github.com/posiczko/radioactive
|
|
89
|
+
source_code_uri: https://github.com/posiczko/radioactive
|
|
90
|
+
changelog_uri: https://github.com/posiczko/radioactive/blob/main/CHANGELOG.md
|
|
91
|
+
bug_tracker_uri: https://github.com/posiczko/radioactive/issues
|
|
92
|
+
documentation_uri: https://github.com/posiczko/radioactive#readme
|
|
93
|
+
rubygems_mfa_required: 'true'
|
|
94
|
+
rdoc_options: []
|
|
95
|
+
require_paths:
|
|
96
|
+
- lib
|
|
97
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
98
|
+
requirements:
|
|
99
|
+
- - ">="
|
|
100
|
+
- !ruby/object:Gem::Version
|
|
101
|
+
version: 3.2.0
|
|
102
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
103
|
+
requirements:
|
|
104
|
+
- - ">="
|
|
105
|
+
- !ruby/object:Gem::Version
|
|
106
|
+
version: '0'
|
|
107
|
+
requirements: []
|
|
108
|
+
rubygems_version: 4.0.11
|
|
109
|
+
specification_version: 4
|
|
110
|
+
summary: Hardened HTTP fetcher for Ruby. Safe to point at URLs supplied by untrusted
|
|
111
|
+
users.
|
|
112
|
+
test_files: []
|
metadata.gz.sig
ADDED
|
Binary file
|