spikard 0.15.6.pre.rc.21 → 0.16.0.pre.rc.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 +4 -4
- data/ext/spikard_rb/native/Cargo.lock +51 -51
- data/ext/spikard_rb/native/Cargo.toml +9 -5
- data/ext/spikard_rb/src/lib.rs +7 -12
- data/lib/spikard/errors.rb +73 -0
- data/lib/spikard/native.rb +1 -1
- data/lib/spikard/service.rb +0 -1
- data/lib/spikard/service_http_additions.rb +35 -0
- data/lib/spikard/version.rb +2 -2
- data/lib/spikard.rb +1 -1
- data/lib/spikard_rb.so +0 -0
- data/sig/types.rbs +6 -1
- metadata +6 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9f3ae988335cf6e0736d458487cd59591cdd323f570b0422292bb0e618536812
|
|
4
|
+
data.tar.gz: 3b3ecc8938f95baa81f5fa5d28dd3ae084f744375622750c0dea5f73cfa66abc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 184fb1d807ed4f38236c2321aacf187230512e115248610b8bcec31ca8a704adf4405d7417e301a13072443f0a761813a4dde9189b4761a961ac3ca4f72fb0ac
|
|
7
|
+
data.tar.gz: 4f90ffbffcf6a9ae1ce71de1477d5dd4d0fa09a0017e0bcedc679ea0aa2cb69bd2123667dc6045a6a276deb2143121bb355086729a9644d82475b75f5c636111
|
|
@@ -45,9 +45,9 @@ checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
|
|
|
45
45
|
|
|
46
46
|
[[package]]
|
|
47
47
|
name = "alloc-stdlib"
|
|
48
|
-
version = "0.2.
|
|
48
|
+
version = "0.2.4"
|
|
49
49
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
50
|
-
checksum = "
|
|
50
|
+
checksum = "0e76a019e91224d279006ff972f1e984179a6e9feb050adba6ce8274aef23195"
|
|
51
51
|
dependencies = [
|
|
52
52
|
"alloc-no-stdlib",
|
|
53
53
|
]
|
|
@@ -398,9 +398,9 @@ checksum = "dc0b364ead1874514c8c2855ab558056ebfeb775653e7ae45ff72f28f8f3166c"
|
|
|
398
398
|
|
|
399
399
|
[[package]]
|
|
400
400
|
name = "brotli"
|
|
401
|
-
version = "8.0.
|
|
401
|
+
version = "8.0.4"
|
|
402
402
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
403
|
-
checksum = "
|
|
403
|
+
checksum = "5cc91aac060a7a1e25823bdccbfb6af1875b88f17c6daac97894eed8207166b3"
|
|
404
404
|
dependencies = [
|
|
405
405
|
"alloc-no-stdlib",
|
|
406
406
|
"alloc-stdlib",
|
|
@@ -409,9 +409,9 @@ dependencies = [
|
|
|
409
409
|
|
|
410
410
|
[[package]]
|
|
411
411
|
name = "brotli-decompressor"
|
|
412
|
-
version = "5.0.
|
|
412
|
+
version = "5.0.3"
|
|
413
413
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
414
|
-
checksum = "
|
|
414
|
+
checksum = "3a32acac15fe1967bc3986b2a6347dffc965602354ea6f450ad07e8bfd253583"
|
|
415
415
|
dependencies = [
|
|
416
416
|
"alloc-no-stdlib",
|
|
417
417
|
"alloc-stdlib",
|
|
@@ -446,9 +446,9 @@ checksum = "6bd91ee7b2422bcb158d90ef4d14f75ef67f340943fc4149891dcce8f8b972a3"
|
|
|
446
446
|
|
|
447
447
|
[[package]]
|
|
448
448
|
name = "cc"
|
|
449
|
-
version = "1.2.
|
|
449
|
+
version = "1.2.64"
|
|
450
450
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
451
|
-
checksum = "
|
|
451
|
+
checksum = "dad887fd958be91b5098c0248def011f4523ab786cd411be668777e55063501f"
|
|
452
452
|
dependencies = [
|
|
453
453
|
"find-msvc-tools",
|
|
454
454
|
"shlex 2.0.1",
|
|
@@ -1708,9 +1708,9 @@ dependencies = [
|
|
|
1708
1708
|
|
|
1709
1709
|
[[package]]
|
|
1710
1710
|
name = "js-sys"
|
|
1711
|
-
version = "0.3.
|
|
1711
|
+
version = "0.3.102"
|
|
1712
1712
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1713
|
-
checksum = "
|
|
1713
|
+
checksum = "03d04c30968dffe80775bd4d7fb676131cd04a1fb46d2686dbffbaec2d9dfd31"
|
|
1714
1714
|
dependencies = [
|
|
1715
1715
|
"cfg-if",
|
|
1716
1716
|
"futures-util",
|
|
@@ -1881,9 +1881,9 @@ checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3"
|
|
|
1881
1881
|
|
|
1882
1882
|
[[package]]
|
|
1883
1883
|
name = "memchr"
|
|
1884
|
-
version = "2.8.
|
|
1884
|
+
version = "2.8.2"
|
|
1885
1885
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1886
|
-
checksum = "
|
|
1886
|
+
checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4"
|
|
1887
1887
|
|
|
1888
1888
|
[[package]]
|
|
1889
1889
|
name = "micromap"
|
|
@@ -2065,9 +2065,9 @@ dependencies = [
|
|
|
2065
2065
|
|
|
2066
2066
|
[[package]]
|
|
2067
2067
|
name = "num-modular"
|
|
2068
|
-
version = "0.6.
|
|
2068
|
+
version = "0.6.3"
|
|
2069
2069
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2070
|
-
checksum = "
|
|
2070
|
+
checksum = "b8d1aedba5cebbd8d4e97e7e71409b00c11e277e754d1a6701695e23ef6775d7"
|
|
2071
2071
|
|
|
2072
2072
|
[[package]]
|
|
2073
2073
|
name = "num-order"
|
|
@@ -2610,9 +2610,9 @@ dependencies = [
|
|
|
2610
2610
|
|
|
2611
2611
|
[[package]]
|
|
2612
2612
|
name = "regex"
|
|
2613
|
-
version = "1.12.
|
|
2613
|
+
version = "1.12.4"
|
|
2614
2614
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2615
|
-
checksum = "
|
|
2615
|
+
checksum = "f1292b7759ae1cb9ec195452d1390a074f0cd8541ab7a5a8c31cd6db45d4a6ba"
|
|
2616
2616
|
dependencies = [
|
|
2617
2617
|
"aho-corasick",
|
|
2618
2618
|
"memchr",
|
|
@@ -2633,9 +2633,9 @@ dependencies = [
|
|
|
2633
2633
|
|
|
2634
2634
|
[[package]]
|
|
2635
2635
|
name = "regex-syntax"
|
|
2636
|
-
version = "0.8.
|
|
2636
|
+
version = "0.8.11"
|
|
2637
2637
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2638
|
-
checksum = "
|
|
2638
|
+
checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4"
|
|
2639
2639
|
|
|
2640
2640
|
[[package]]
|
|
2641
2641
|
name = "reserve-port"
|
|
@@ -3015,9 +3015,9 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
|
|
|
3015
3015
|
|
|
3016
3016
|
[[package]]
|
|
3017
3017
|
name = "smallvec"
|
|
3018
|
-
version = "1.15.
|
|
3018
|
+
version = "1.15.2"
|
|
3019
3019
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3020
|
-
checksum = "
|
|
3020
|
+
checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90"
|
|
3021
3021
|
|
|
3022
3022
|
[[package]]
|
|
3023
3023
|
name = "socket2"
|
|
@@ -3031,9 +3031,9 @@ dependencies = [
|
|
|
3031
3031
|
|
|
3032
3032
|
[[package]]
|
|
3033
3033
|
name = "spikard"
|
|
3034
|
-
version = "0.
|
|
3034
|
+
version = "0.16.0-rc.1"
|
|
3035
3035
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3036
|
-
checksum = "
|
|
3036
|
+
checksum = "fe2add8e4238b28e6ba040c1e33cd65cc7ddc7f02939a49bbdadad45732ea380"
|
|
3037
3037
|
dependencies = [
|
|
3038
3038
|
"anyhow",
|
|
3039
3039
|
"axum",
|
|
@@ -3051,9 +3051,9 @@ dependencies = [
|
|
|
3051
3051
|
|
|
3052
3052
|
[[package]]
|
|
3053
3053
|
name = "spikard-core"
|
|
3054
|
-
version = "0.
|
|
3054
|
+
version = "0.16.0-rc.1"
|
|
3055
3055
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3056
|
-
checksum = "
|
|
3056
|
+
checksum = "4ff23e8bc754a81e606aed0fcb8eac3696c95c2b909996745a5bc080c3d28dc3"
|
|
3057
3057
|
dependencies = [
|
|
3058
3058
|
"anyhow",
|
|
3059
3059
|
"base64",
|
|
@@ -3077,9 +3077,9 @@ dependencies = [
|
|
|
3077
3077
|
|
|
3078
3078
|
[[package]]
|
|
3079
3079
|
name = "spikard-graphql"
|
|
3080
|
-
version = "0.
|
|
3080
|
+
version = "0.16.0-rc.1"
|
|
3081
3081
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3082
|
-
checksum = "
|
|
3082
|
+
checksum = "03fd3346fb1ae41953b764bc17fba7224c5b3c5ecec4151fb4f4ca3598c04ccd"
|
|
3083
3083
|
dependencies = [
|
|
3084
3084
|
"async-graphql",
|
|
3085
3085
|
"axum",
|
|
@@ -3098,9 +3098,9 @@ dependencies = [
|
|
|
3098
3098
|
|
|
3099
3099
|
[[package]]
|
|
3100
3100
|
name = "spikard-http"
|
|
3101
|
-
version = "0.
|
|
3101
|
+
version = "0.16.0-rc.1"
|
|
3102
3102
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3103
|
-
checksum = "
|
|
3103
|
+
checksum = "699167bfdceaae80a2938639b4662732f2de1af5717694ac28a08098a0d1a624"
|
|
3104
3104
|
dependencies = [
|
|
3105
3105
|
"ahash",
|
|
3106
3106
|
"anyhow",
|
|
@@ -3153,7 +3153,7 @@ dependencies = [
|
|
|
3153
3153
|
|
|
3154
3154
|
[[package]]
|
|
3155
3155
|
name = "spikard-rb"
|
|
3156
|
-
version = "0.
|
|
3156
|
+
version = "0.16.0-rc.1"
|
|
3157
3157
|
dependencies = [
|
|
3158
3158
|
"magnus",
|
|
3159
3159
|
"rb-sys",
|
|
@@ -3512,9 +3512,9 @@ dependencies = [
|
|
|
3512
3512
|
|
|
3513
3513
|
[[package]]
|
|
3514
3514
|
name = "tower-http"
|
|
3515
|
-
version = "0.
|
|
3515
|
+
version = "0.7.0"
|
|
3516
3516
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3517
|
-
checksum = "
|
|
3517
|
+
checksum = "b11f75e912b0c2be01b63d8cf8057b8c3f97cf34abb3d431a3a4c8675498e233"
|
|
3518
3518
|
dependencies = [
|
|
3519
3519
|
"async-compression",
|
|
3520
3520
|
"bitflags",
|
|
@@ -3870,9 +3870,9 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
|
|
|
3870
3870
|
|
|
3871
3871
|
[[package]]
|
|
3872
3872
|
name = "wasip2"
|
|
3873
|
-
version = "1.0.
|
|
3873
|
+
version = "1.0.4+wasi-0.2.12"
|
|
3874
3874
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3875
|
-
checksum = "
|
|
3875
|
+
checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487"
|
|
3876
3876
|
dependencies = [
|
|
3877
3877
|
"wit-bindgen 0.57.1",
|
|
3878
3878
|
]
|
|
@@ -3888,9 +3888,9 @@ dependencies = [
|
|
|
3888
3888
|
|
|
3889
3889
|
[[package]]
|
|
3890
3890
|
name = "wasm-bindgen"
|
|
3891
|
-
version = "0.2.
|
|
3891
|
+
version = "0.2.125"
|
|
3892
3892
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3893
|
-
checksum = "
|
|
3893
|
+
checksum = "8ddb3f79143bced6de84270411622a2699cee572fc0875aeaf1e7867cf9fca1a"
|
|
3894
3894
|
dependencies = [
|
|
3895
3895
|
"cfg-if",
|
|
3896
3896
|
"once_cell",
|
|
@@ -3901,9 +3901,9 @@ dependencies = [
|
|
|
3901
3901
|
|
|
3902
3902
|
[[package]]
|
|
3903
3903
|
name = "wasm-bindgen-macro"
|
|
3904
|
-
version = "0.2.
|
|
3904
|
+
version = "0.2.125"
|
|
3905
3905
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3906
|
-
checksum = "
|
|
3906
|
+
checksum = "4e21a184b13fb19e157296e2c46056aec9092264fab83e4ba59e68c61b323c3d"
|
|
3907
3907
|
dependencies = [
|
|
3908
3908
|
"quote",
|
|
3909
3909
|
"wasm-bindgen-macro-support",
|
|
@@ -3911,9 +3911,9 @@ dependencies = [
|
|
|
3911
3911
|
|
|
3912
3912
|
[[package]]
|
|
3913
3913
|
name = "wasm-bindgen-macro-support"
|
|
3914
|
-
version = "0.2.
|
|
3914
|
+
version = "0.2.125"
|
|
3915
3915
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3916
|
-
checksum = "
|
|
3916
|
+
checksum = "fecefd9c35bd935a20fc3fc344b5f29138961e4f47fb03297d88f2587afb5ebd"
|
|
3917
3917
|
dependencies = [
|
|
3918
3918
|
"bumpalo",
|
|
3919
3919
|
"proc-macro2",
|
|
@@ -3924,9 +3924,9 @@ dependencies = [
|
|
|
3924
3924
|
|
|
3925
3925
|
[[package]]
|
|
3926
3926
|
name = "wasm-bindgen-shared"
|
|
3927
|
-
version = "0.2.
|
|
3927
|
+
version = "0.2.125"
|
|
3928
3928
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3929
|
-
checksum = "
|
|
3929
|
+
checksum = "23939e44bb9a5d7576fa2b563dc2e136628f1224e88a8deed09e04858b77871f"
|
|
3930
3930
|
dependencies = [
|
|
3931
3931
|
"unicode-ident",
|
|
3932
3932
|
]
|
|
@@ -3967,9 +3967,9 @@ dependencies = [
|
|
|
3967
3967
|
|
|
3968
3968
|
[[package]]
|
|
3969
3969
|
name = "web-sys"
|
|
3970
|
-
version = "0.3.
|
|
3970
|
+
version = "0.3.102"
|
|
3971
3971
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3972
|
-
checksum = "
|
|
3972
|
+
checksum = "a6430a72df5eb332242960fe84b3002a241163998241eb596d4f739b9757061d"
|
|
3973
3973
|
dependencies = [
|
|
3974
3974
|
"js-sys",
|
|
3975
3975
|
"wasm-bindgen",
|
|
@@ -4224,18 +4224,18 @@ dependencies = [
|
|
|
4224
4224
|
|
|
4225
4225
|
[[package]]
|
|
4226
4226
|
name = "zerocopy"
|
|
4227
|
-
version = "0.8.
|
|
4227
|
+
version = "0.8.52"
|
|
4228
4228
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4229
|
-
checksum = "
|
|
4229
|
+
checksum = "ce1022995ff5ff5d841ad7d994facc23098cd40152f2c1d11cd607c6f530653f"
|
|
4230
4230
|
dependencies = [
|
|
4231
4231
|
"zerocopy-derive",
|
|
4232
4232
|
]
|
|
4233
4233
|
|
|
4234
4234
|
[[package]]
|
|
4235
4235
|
name = "zerocopy-derive"
|
|
4236
|
-
version = "0.8.
|
|
4236
|
+
version = "0.8.52"
|
|
4237
4237
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4238
|
-
checksum = "
|
|
4238
|
+
checksum = "1ae7f38b72ec2a254e2b87ef277cf2cd4fb97cbebf944faa6f33354da0867930"
|
|
4239
4239
|
dependencies = [
|
|
4240
4240
|
"proc-macro2",
|
|
4241
4241
|
"quote",
|
|
@@ -4265,18 +4265,18 @@ dependencies = [
|
|
|
4265
4265
|
|
|
4266
4266
|
[[package]]
|
|
4267
4267
|
name = "zeroize"
|
|
4268
|
-
version = "1.
|
|
4268
|
+
version = "1.9.0"
|
|
4269
4269
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4270
|
-
checksum = "
|
|
4270
|
+
checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e"
|
|
4271
4271
|
dependencies = [
|
|
4272
4272
|
"zeroize_derive",
|
|
4273
4273
|
]
|
|
4274
4274
|
|
|
4275
4275
|
[[package]]
|
|
4276
4276
|
name = "zeroize_derive"
|
|
4277
|
-
version = "1.
|
|
4277
|
+
version = "1.5.0"
|
|
4278
4278
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4279
|
-
checksum = "
|
|
4279
|
+
checksum = "3c50655cbb0fe3fc43170059e702f1ce5e19b84cec58dc87b037a09935c2f328"
|
|
4280
4280
|
dependencies = [
|
|
4281
4281
|
"proc-macro2",
|
|
4282
4282
|
"quote",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "spikard-rb"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.16.0-rc.1"
|
|
4
4
|
edition = "2024"
|
|
5
5
|
license = "MIT"
|
|
6
6
|
description = "Rust-centric multi-language HTTP framework with polyglot bindings"
|
|
@@ -16,13 +16,17 @@ name = "spikard_rb"
|
|
|
16
16
|
path = "../src/lib.rs"
|
|
17
17
|
crate-type = ["cdylib"]
|
|
18
18
|
|
|
19
|
+
[features]
|
|
20
|
+
default = ["di"]
|
|
21
|
+
di = ["spikard/di"]
|
|
22
|
+
|
|
19
23
|
[dependencies]
|
|
20
24
|
magnus = "0.8"
|
|
21
25
|
rb-sys = ">=0.9, <0.9.128"
|
|
22
26
|
serde = { version = "1", features = ["derive"] }
|
|
23
27
|
serde_json = "1"
|
|
24
|
-
spikard = { version = "0.
|
|
25
|
-
spikard-core = { version = "0.
|
|
26
|
-
spikard-graphql = { version = "0.
|
|
27
|
-
spikard-http = { version = "0.
|
|
28
|
+
spikard = { version = "0.16.0-rc.1", features = ["di"] }
|
|
29
|
+
spikard-core = { version = "0.16.0-rc.1" }
|
|
30
|
+
spikard-graphql = { version = "0.16.0-rc.1" }
|
|
31
|
+
spikard-http = { version = "0.16.0-rc.1" }
|
|
28
32
|
tokio = { version = "1", features = ["rt-multi-thread"] }
|
data/ext/spikard_rb/src/lib.rs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// This file is auto-generated by alef. DO NOT EDIT.
|
|
2
|
-
// alef:hash:
|
|
2
|
+
// alef:hash:cf857583778b9d5bbe16fefe79335d73e515a83164b74450a664caec59e9f7e6
|
|
3
3
|
// Re-generate with: alef generate
|
|
4
4
|
#![allow(dead_code, unused_imports, unused_variables)]
|
|
5
5
|
#![allow(
|
|
@@ -831,8 +831,7 @@ impl CorsConfig {
|
|
|
831
831
|
|
|
832
832
|
allow_credentials: self.allow_credentials,
|
|
833
833
|
|
|
834
|
-
|
|
835
|
-
headers_joined_cache: Default::default(),
|
|
834
|
+
..Default::default()
|
|
836
835
|
};
|
|
837
836
|
core_self.allowed_methods_joined().into()
|
|
838
837
|
}
|
|
@@ -851,8 +850,7 @@ impl CorsConfig {
|
|
|
851
850
|
|
|
852
851
|
allow_credentials: self.allow_credentials,
|
|
853
852
|
|
|
854
|
-
|
|
855
|
-
headers_joined_cache: Default::default(),
|
|
853
|
+
..Default::default()
|
|
856
854
|
};
|
|
857
855
|
core_self.allowed_headers_joined().into()
|
|
858
856
|
}
|
|
@@ -871,8 +869,7 @@ impl CorsConfig {
|
|
|
871
869
|
|
|
872
870
|
allow_credentials: self.allow_credentials,
|
|
873
871
|
|
|
874
|
-
|
|
875
|
-
headers_joined_cache: Default::default(),
|
|
872
|
+
..Default::default()
|
|
876
873
|
};
|
|
877
874
|
core_self.is_origin_allowed(&origin)
|
|
878
875
|
}
|
|
@@ -891,8 +888,7 @@ impl CorsConfig {
|
|
|
891
888
|
|
|
892
889
|
allow_credentials: self.allow_credentials,
|
|
893
890
|
|
|
894
|
-
|
|
895
|
-
headers_joined_cache: Default::default(),
|
|
891
|
+
..Default::default()
|
|
896
892
|
};
|
|
897
893
|
core_self.is_method_allowed(&method)
|
|
898
894
|
}
|
|
@@ -4114,6 +4110,7 @@ impl From<spikard::BackgroundJobMetadata> for BackgroundJobMetadata {
|
|
|
4114
4110
|
}
|
|
4115
4111
|
}
|
|
4116
4112
|
|
|
4113
|
+
#[allow(clippy::needless_update)]
|
|
4117
4114
|
#[allow(clippy::redundant_closure, clippy::useless_conversion)]
|
|
4118
4115
|
impl From<CorsConfig> for spikard::CorsConfig {
|
|
4119
4116
|
fn from(val: CorsConfig) -> Self {
|
|
@@ -4124,8 +4121,7 @@ impl From<CorsConfig> for spikard::CorsConfig {
|
|
|
4124
4121
|
expose_headers: val.expose_headers.map(|v| v.into_iter().collect()),
|
|
4125
4122
|
max_age: val.max_age,
|
|
4126
4123
|
allow_credentials: val.allow_credentials,
|
|
4127
|
-
|
|
4128
|
-
headers_joined_cache: Default::default(),
|
|
4124
|
+
..Default::default()
|
|
4129
4125
|
}
|
|
4130
4126
|
}
|
|
4131
4127
|
}
|
|
@@ -4428,7 +4424,6 @@ impl From<ServerConfig> for spikard::ServerConfig {
|
|
|
4428
4424
|
openapi: val.openapi.map(Into::into),
|
|
4429
4425
|
jsonrpc: val.jsonrpc.map(Into::into),
|
|
4430
4426
|
grpc: val.grpc.map(Into::into),
|
|
4431
|
-
lifecycle_hooks: Default::default(),
|
|
4432
4427
|
background_tasks: val.background_tasks.into(),
|
|
4433
4428
|
enable_http_trace: val.enable_http_trace,
|
|
4434
4429
|
..Default::default()
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Spikard
|
|
4
|
+
module Errors
|
|
5
|
+
class Error < StandardError
|
|
6
|
+
attr_reader :status_code, :problem_details_type
|
|
7
|
+
|
|
8
|
+
def initialize(message = nil, status_code: nil, problem_details_type: nil)
|
|
9
|
+
super(message)
|
|
10
|
+
@status_code = status_code
|
|
11
|
+
@problem_details_type = problem_details_type
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def to_problem_details
|
|
15
|
+
{
|
|
16
|
+
type: @problem_details_type || "about:blank",
|
|
17
|
+
title: self.class.name.split("::").last,
|
|
18
|
+
status: @status_code || 500,
|
|
19
|
+
detail: message
|
|
20
|
+
}
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
class NotFoundError < Error
|
|
25
|
+
# Raised when the requested resource does not exist.
|
|
26
|
+
def initialize(message = nil)
|
|
27
|
+
super(message, status_code: 404, problem_details_type: nil)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
class ValidationError < Error
|
|
32
|
+
# Raised when input validation fails. Carries a list of field errors per RFC 9457.
|
|
33
|
+
def initialize(message = nil)
|
|
34
|
+
super(message, status_code: 422, problem_details_type: nil)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
class UnauthorizedError < Error
|
|
39
|
+
# Raised when the request lacks valid authentication credentials.
|
|
40
|
+
def initialize(message = nil)
|
|
41
|
+
super(message, status_code: 401, problem_details_type: nil)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
class ForbiddenError < Error
|
|
46
|
+
# Raised when the authenticated user lacks permission for the requested action.
|
|
47
|
+
def initialize(message = nil)
|
|
48
|
+
super(message, status_code: 403, problem_details_type: nil)
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
class RateLimitedError < Error
|
|
53
|
+
# Raised when the client exceeds the configured request rate limit.
|
|
54
|
+
def initialize(message = nil)
|
|
55
|
+
super(message, status_code: 429, problem_details_type: nil)
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
class ConflictError < Error
|
|
60
|
+
# Raised when the request conflicts with the current state of the resource.
|
|
61
|
+
def initialize(message = nil)
|
|
62
|
+
super(message, status_code: 409, problem_details_type: nil)
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
class InternalError < Error
|
|
67
|
+
# Raised when the server encounters an unexpected failure.
|
|
68
|
+
def initialize(message = nil)
|
|
69
|
+
super(message, status_code: 500, problem_details_type: nil)
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
data/lib/spikard/native.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# This file is auto-generated by alef — DO NOT EDIT.
|
|
2
|
-
# alef:hash:
|
|
2
|
+
# alef:hash:cf857583778b9d5bbe16fefe79335d73e515a83164b74450a664caec59e9f7e6
|
|
3
3
|
# To regenerate: alef generate
|
|
4
4
|
# To verify freshness: alef verify --exit-code
|
|
5
5
|
# frozen_string_literal: true
|
data/lib/spikard/service.rb
CHANGED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
def on_request(&block)
|
|
2
|
+
# Called before any other processing for each inbound request.
|
|
3
|
+
@lifecycle_hooks.push(["on_request", block])
|
|
4
|
+
self
|
|
5
|
+
end
|
|
6
|
+
def pre_validation(&block)
|
|
7
|
+
# Called after parsing but before parameter validation.
|
|
8
|
+
@lifecycle_hooks.push(["pre_validation", block])
|
|
9
|
+
self
|
|
10
|
+
end
|
|
11
|
+
def pre_handler(&block)
|
|
12
|
+
# Called after validation but before invoking the route handler.
|
|
13
|
+
@lifecycle_hooks.push(["pre_handler", block])
|
|
14
|
+
self
|
|
15
|
+
end
|
|
16
|
+
def on_response(&block)
|
|
17
|
+
# Called after the handler returns but before the response is serialized.
|
|
18
|
+
@lifecycle_hooks.push(["on_response", block])
|
|
19
|
+
self
|
|
20
|
+
end
|
|
21
|
+
def on_error(&block)
|
|
22
|
+
# Called when a handler returns an error.
|
|
23
|
+
@lifecycle_hooks.push(["on_error", block])
|
|
24
|
+
self
|
|
25
|
+
end
|
|
26
|
+
def websocket(path, &block)
|
|
27
|
+
# Register a WebSocket upgrade handler at the given path.
|
|
28
|
+
@registrations.push(["websocket", [path], block])
|
|
29
|
+
self
|
|
30
|
+
end
|
|
31
|
+
def sse(path, &block)
|
|
32
|
+
# Register an SSE event producer at the given path.
|
|
33
|
+
@registrations.push(["sse", [path], block])
|
|
34
|
+
self
|
|
35
|
+
end
|
data/lib/spikard/version.rb
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# This file is auto-generated by alef — DO NOT EDIT.
|
|
2
|
-
# alef:hash:
|
|
2
|
+
# alef:hash:cf857583778b9d5bbe16fefe79335d73e515a83164b74450a664caec59e9f7e6
|
|
3
3
|
# To regenerate: alef generate
|
|
4
4
|
# To verify freshness: alef verify --exit-code
|
|
5
5
|
# frozen_string_literal: true
|
|
6
6
|
|
|
7
7
|
module Spikard
|
|
8
8
|
## The version string for this package.
|
|
9
|
-
VERSION = "0.
|
|
9
|
+
VERSION = "0.16.0.pre.rc.1"
|
|
10
10
|
end
|
data/lib/spikard.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# This file is auto-generated by alef — DO NOT EDIT.
|
|
2
|
-
# alef:hash:
|
|
2
|
+
# alef:hash:cf857583778b9d5bbe16fefe79335d73e515a83164b74450a664caec59e9f7e6
|
|
3
3
|
# To regenerate: alef generate
|
|
4
4
|
# To verify freshness: alef verify --exit-code
|
|
5
5
|
# frozen_string_literal: true
|
data/lib/spikard_rb.so
CHANGED
|
Binary file
|
data/sig/types.rbs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# This file is auto-generated by alef — DO NOT EDIT.
|
|
2
|
-
# alef:hash:
|
|
2
|
+
# alef:hash:cf857583778b9d5bbe16fefe79335d73e515a83164b74450a664caec59e9f7e6
|
|
3
3
|
# To regenerate: alef generate
|
|
4
4
|
# To verify freshness: alef verify --exit-code
|
|
5
5
|
|
|
@@ -239,6 +239,11 @@ module Spikard
|
|
|
239
239
|
end
|
|
240
240
|
|
|
241
241
|
class App
|
|
242
|
+
def on_request: (String hook) -> App
|
|
243
|
+
def pre_validation: (String hook) -> App
|
|
244
|
+
def pre_handler: (String hook) -> App
|
|
245
|
+
def on_response: (String hook) -> App
|
|
246
|
+
def on_error: (String hook) -> App
|
|
242
247
|
def merge_axum_router: (String router) -> App
|
|
243
248
|
def attach_axum_router: (String router) -> App
|
|
244
249
|
def into_router: () -> String
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: spikard
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.16.0.pre.rc.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Na'aman Hirschfeld <nhirschfeld@gmail.com>
|
|
@@ -59,8 +59,10 @@ files:
|
|
|
59
59
|
- ext/spikard_rb/src/lib.rs
|
|
60
60
|
- ext/spikard_rb/src/service.rs
|
|
61
61
|
- lib/spikard.rb
|
|
62
|
+
- lib/spikard/errors.rb
|
|
62
63
|
- lib/spikard/native.rb
|
|
63
64
|
- lib/spikard/service.rb
|
|
65
|
+
- lib/spikard/service_http_additions.rb
|
|
64
66
|
- lib/spikard/version.rb
|
|
65
67
|
- lib/spikard_rb.so
|
|
66
68
|
- sig/service.rb
|
|
@@ -79,6 +81,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
79
81
|
- - ">="
|
|
80
82
|
- !ruby/object:Gem::Version
|
|
81
83
|
version: 3.2.0
|
|
84
|
+
- - "<"
|
|
85
|
+
- !ruby/object:Gem::Version
|
|
86
|
+
version: '4.0'
|
|
82
87
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
83
88
|
requirements:
|
|
84
89
|
- - ">="
|