nonnative 1.107.0 → 1.108.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 (43) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +8 -6
  3. data/.rubocop.yml +3 -0
  4. data/AGENTS.md +248 -0
  5. data/CHANGELOG.md +104 -0
  6. data/Gemfile.lock +53 -51
  7. data/README.md +51 -32
  8. data/lib/nonnative/close_all_socket_pair.rb +14 -0
  9. data/lib/nonnative/configuration.rb +67 -0
  10. data/lib/nonnative/configuration_process.rb +14 -0
  11. data/lib/nonnative/configuration_proxy.rb +28 -0
  12. data/lib/nonnative/configuration_runner.rb +44 -0
  13. data/lib/nonnative/configuration_server.rb +12 -0
  14. data/lib/nonnative/configuration_service.rb +9 -0
  15. data/lib/nonnative/delay_socket_pair.rb +15 -0
  16. data/lib/nonnative/error.rb +7 -0
  17. data/lib/nonnative/fault_injection_proxy.rb +63 -0
  18. data/lib/nonnative/go_command.rb +34 -0
  19. data/lib/nonnative/grpc_server.rb +30 -0
  20. data/lib/nonnative/header.rb +44 -0
  21. data/lib/nonnative/http_client.rb +45 -0
  22. data/lib/nonnative/http_proxy_server.rb +62 -1
  23. data/lib/nonnative/http_server.rb +40 -0
  24. data/lib/nonnative/invalid_data_socket_pair.rb +15 -0
  25. data/lib/nonnative/no_proxy.rb +35 -0
  26. data/lib/nonnative/not_found_error.rb +7 -0
  27. data/lib/nonnative/observability.rb +44 -0
  28. data/lib/nonnative/pool.rb +50 -0
  29. data/lib/nonnative/port.rb +26 -0
  30. data/lib/nonnative/process.rb +29 -0
  31. data/lib/nonnative/proxy.rb +24 -0
  32. data/lib/nonnative/proxy_factory.rb +16 -0
  33. data/lib/nonnative/runner.rb +30 -0
  34. data/lib/nonnative/server.rb +28 -0
  35. data/lib/nonnative/service.rb +16 -0
  36. data/lib/nonnative/socket_pair.rb +46 -0
  37. data/lib/nonnative/socket_pair_factory.rb +21 -0
  38. data/lib/nonnative/start_error.rb +5 -0
  39. data/lib/nonnative/stop_error.rb +5 -0
  40. data/lib/nonnative/timeout.rb +20 -0
  41. data/lib/nonnative/version.rb +4 -1
  42. data/lib/nonnative.rb +128 -0
  43. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a906e384075c90b1e86c9d6e3b89ab5cea13d50a06e403e7a2646eb1689ac64b
4
- data.tar.gz: d617213ea910eeedf18f76a8172554f78058d16073d17a3d374592a5117d3864
3
+ metadata.gz: 7dd608f805b2ce754e5623129d9d9bceedf3ead952aa400ccd71a282ee95f4de
4
+ data.tar.gz: '004538a71769b03f99f1411dac35b209e464148905c026b8bc01c1a7433fbce8'
5
5
  SHA512:
6
- metadata.gz: c5f765bd48e2fa81d93eced56cc04dd6147f7ec26e96a1a7a587417ce9815690c6e73db121735a356f5d9e09f17fd371f0469436ea40e5a6f8cf039babad7fd3
7
- data.tar.gz: b799c7f1e3fc4d69d22c4d12d68777b545dfec17532e98fb31d7dba883eb3210c805d401dfbcc72368ab07021f5ca898a8adc43228edf6a79224749b300b0632
6
+ metadata.gz: 9656abc7f1d6c4bbbffefb09e28cc7d5e3b6a555ff2bd20d2a7cee1eeab4dd4c37dbdb92dc4b7f15ecafafbc021844a51d7c9cbbbe3d835382fefa06407396a5
7
+ data.tar.gz: b1ff6b2f942abd304b0fe0b8985f2b7b84ff232c5733aa3f89e83ce6d0d6f4965f88db051f080f3e91a88fb0931e8e0373df1e03bfaae405143c365365b6b4b4
data/.circleci/config.yml CHANGED
@@ -3,10 +3,11 @@ version: 2.1
3
3
  jobs:
4
4
  build:
5
5
  docker:
6
- - image: alexfalkowski/ruby:1.52
6
+ - image: alexfalkowski/ruby:1.90
7
7
  working_directory: ~/nonnative
8
8
  steps:
9
- - checkout
9
+ - checkout:
10
+ method: blobless
10
11
  - run: git submodule sync
11
12
  - run: git submodule update --init
12
13
  - run: make source-key
@@ -29,17 +30,18 @@ jobs:
29
30
  - store_artifacts:
30
31
  path: test/reports
31
32
  - run: make codecov-upload
32
- resource_class: large
33
+ resource_class: arm.large
33
34
  version:
34
35
  docker:
35
- - image: alexfalkowski/release:5.11
36
+ - image: alexfalkowski/release:5.46
36
37
  working_directory: ~/nonnative
37
38
  steps:
38
- - checkout
39
+ - checkout:
40
+ method: blobless
39
41
  - run: git submodule sync
40
42
  - run: git submodule update --init
41
43
  - run: version
42
- resource_class: large
44
+ resource_class: arm.large
43
45
 
44
46
  workflows:
45
47
  nonnative:
data/.rubocop.yml CHANGED
@@ -19,6 +19,9 @@ Metrics/BlockLength:
19
19
  Metrics/AbcSize:
20
20
  Max: 25
21
21
 
22
+ Metrics/ClassLength:
23
+ Max: 150
24
+
22
25
  Style/Documentation:
23
26
  Enabled: false
24
27
 
data/AGENTS.md ADDED
@@ -0,0 +1,248 @@
1
+ # AGENTS.md
2
+
3
+ This repository is the **`nonnative` Ruby gem**. It provides a Ruby-first harness for end-to-end testing of services implemented in other languages by **starting processes/servers/services**, waiting for readiness (port checks), and optionally running **fault-injection proxies**.
4
+
5
+ Everything below is based on the files currently in this repo (no assumptions).
6
+
7
+ ## Recent documentation updates (important for future sessions)
8
+
9
+ - **Public API RDoc pass started**:
10
+ - Added/expanded RDoc for the module entry point (`Nonnative`) and core configuration/error types.
11
+ - Goal: document *public APIs only* (gem consumers), not internal/private helpers.
12
+ - **README accuracy pass started**:
13
+ - Fixed incorrect examples around **services**:
14
+ - Programmatic example incorrectly used `p.port` inside a `config.service do |s| ... end` block; corrected to `s.host`/`s.port`.
15
+ - YAML example incorrectly used `processes:` for services; corrected to `services:`.
16
+ - Removed/avoided implying non-existent config fields (e.g. there is no top-level `config.wait`; `wait` is per-runner).
17
+
18
+ These changes were made to align docs/examples with the actual runtime/config objects under `lib/nonnative/**/*.rb`.
19
+
20
+ ## Quick orientation
21
+
22
+ - **Library code**: `lib/nonnative/**/*.rb`
23
+ - **Acceptance tests**: `features/**/*.feature` + `features/support/**/*.rb` + `features/step_definitions/**/*.rb` (Cucumber)
24
+ - **Generated gRPC Ruby stubs for tests**: `test/grpc/**/*` (excluded from RuboCop)
25
+ - **Proto definitions for test fixtures**: `test/nonnative/v1/*.proto`
26
+ - **Build system**: `Makefile` includes make fragments from the `bin/` submodule (`bin/build/make/*.mak`).
27
+
28
+ ## Important repo dependency: `bin/` submodule
29
+
30
+ This repo uses a git submodule at `bin/`:
31
+
32
+ - `.gitmodules` points to `git@github.com:alexfalkowski/bin.git`.
33
+ - CI runs `git submodule sync && git submodule update --init` before running `make` targets (`.circleci/config.yml`).
34
+
35
+ If you don’t have SSH access to that repo, `make` targets that include `bin/build/make/*.mak` will fail.
36
+
37
+ ### Submodule commands
38
+
39
+ ```sh
40
+ git submodule sync
41
+ git submodule update --init
42
+ ```
43
+
44
+ ## Essential commands (from Makefiles)
45
+
46
+ ### Ruby version
47
+
48
+ - `nonnative.gemspec` requires Ruby `>= 3.4.0` and `< 4.0.0`.
49
+
50
+ ### Install deps
51
+
52
+ Ruby deps are managed by Bundler and installed into `vendor/bundle`:
53
+
54
+ ```sh
55
+ make dep
56
+ ```
57
+
58
+ Implementation lives in `bin/build/make/ruby.mak` (included by root `Makefile`).
59
+
60
+ ### Lint
61
+
62
+ ```sh
63
+ make lint
64
+ ```
65
+
66
+ Runs RuboCop:
67
+
68
+ - `bundler exec rubocop` (`bin/build/make/ruby.mak:4-5`)
69
+ - Config: `.rubocop.yml` (TargetRubyVersion 3.4; max line length 150)
70
+
71
+ Auto-fix:
72
+
73
+ ```sh
74
+ make fix-lint
75
+ # or
76
+ make format
77
+ ```
78
+
79
+ ### Run acceptance tests (Cucumber)
80
+
81
+ ```sh
82
+ make features
83
+ ```
84
+
85
+ This calls `bin/quality/ruby/feature`, which runs:
86
+
87
+ - `bundler exec cucumber --profile report ... --tags "not @benchmark" ...`
88
+ - Cucumber profile `report` is defined in `.config/cucumber.yml` and writes:
89
+ - JUnit XML to `test/reports`
90
+ - HTML report to `test/reports/index.html`
91
+
92
+ Run only benchmarks:
93
+
94
+ ```sh
95
+ make benchmarks
96
+ ```
97
+
98
+ ### Coverage
99
+
100
+ Cucumber loads SimpleCov via `features/support/env.rb` and writes coverage output under `test/reports/`.
101
+
102
+ Codecov config exists in `.codecov.yml` and CI uploads coverage in `.circleci/config.yml`.
103
+
104
+ Local upload target:
105
+
106
+ ```sh
107
+ make codecov-upload
108
+ ```
109
+
110
+ ### Clean deps / reports
111
+
112
+ ```sh
113
+ make clean-dep
114
+ make clean-reports
115
+ ```
116
+
117
+ ## Testing patterns and hooks
118
+
119
+ ### Cucumber hooks and tags
120
+
121
+ Cucumber integration lives in `lib/nonnative/cucumber.rb`:
122
+
123
+ - `@startup`: starts and stops Nonnative around each scenario.
124
+ - `@manual`: only stops after scenario (start is expected to be triggered manually in steps).
125
+ - `@clear`: calls `Nonnative.clear` before scenario.
126
+ - `@reset`: resets proxies after scenario.
127
+
128
+ The “start once per test run” strategy is implemented by requiring `nonnative/startup`:
129
+
130
+ - `lib/nonnative/startup.rb` calls `Nonnative.start` and registers an `at_exit` stop.
131
+
132
+ ### README gotchas that matter in practice
133
+
134
+ - **Service vs process YAML keys**:
135
+ - Services must be declared under `services:` in YAML (not `processes:`). Code reads `cfg.services` and maps them to `Nonnative::ConfigurationService`.
136
+ - **No top-level `wait`**:
137
+ - `wait` is defined on runner configurations (`ConfigurationRunner#wait`) and is per process/server/service.
138
+ - **Proxy wiring is easy to misunderstand**:
139
+ - When a proxy kind like `fault_injection` is enabled, the proxy binds to `service.proxy.host`/`service.proxy.port`.
140
+ - Readiness checks and traffic should typically target the **proxy host/port**, not the underlying service host/port.
141
+
142
+ ### Feature support code
143
+
144
+ `features/support/` contains small servers/clients used by cucumber scenarios (HTTP/TCP/gRPC). Example:
145
+
146
+ - `features/support/http_server.rb` defines a Sinatra app for `/hello` and health endpoints.
147
+
148
+ ### Process fixture
149
+
150
+ Scenarios start a local process via `features/support/bin/start` (referenced in step definitions and YAML configs like `features/configs/processes.yml`).
151
+
152
+ ## Library architecture (high level)
153
+
154
+ ### Entry point and global state
155
+
156
+ - `lib/nonnative.rb` defines the `Nonnative` module singleton API:
157
+ - `configure { |config| ... }`
158
+ - `start` / `stop`
159
+ - `clear`, `reset`
160
+ - `pool` is created on `start` (`Nonnative::Pool.new(configuration)`).
161
+
162
+ ### Configuration objects
163
+
164
+ - `Nonnative::Configuration` (`lib/nonnative/configuration.rb`) holds arrays of:
165
+ - `processes` (`Nonnative::ConfigurationProcess`)
166
+ - `servers` (`Nonnative::ConfigurationServer`)
167
+ - `services` (`Nonnative::ConfigurationService`)
168
+
169
+ It can be populated either:
170
+
171
+ - programmatically via `config.process { ... }`, `config.server { ... }`, `config.service { ... }`
172
+ - via YAML using `config.load_file(path)` which calls `Config.load_files(...)` (the `config` gem)
173
+
174
+ Proxies are configured via `ConfigurationProxy` (`lib/nonnative/configuration_proxy.rb`) and attached to runners as a hash.
175
+
176
+ ### Runners and lifecycle
177
+
178
+ There are three runtime “runner” types, all subclassing `Runner` (`lib/nonnative/runner.rb`):
179
+
180
+ - `Nonnative::Process` (`lib/nonnative/process.rb`): `spawn(...)` + `Process.kill` / `waitpid2`.
181
+ - `Nonnative::Server` (`lib/nonnative/server.rb`): `Thread.new { perform_start }` + `perform_stop`.
182
+ - `Nonnative::Service` (`lib/nonnative/service.rb`): no process management; proxy only.
183
+
184
+ `Nonnative::Pool` (`lib/nonnative/pool.rb`) owns collections of runners and orchestrates start/stop:
185
+
186
+ - starts **services first**, then servers/processes
187
+ - stops **processes/servers first**, then services
188
+ - readiness is determined via `Nonnative::Port#open?` / `#closed?` (`lib/nonnative/port.rb`) which repeatedly tries `TCPSocket.new(host, port)` inside a timeout.
189
+
190
+ ### Proxies
191
+
192
+ Proxy selection is keyed by `kind`:
193
+
194
+ - mapping: `Nonnative.proxies` in `lib/nonnative.rb`
195
+ - default proxy config values: `ConfigurationProxy#initialize` sets kind `none`, host `0.0.0.0`, wait `0.1`, etc.
196
+
197
+ Implemented proxies:
198
+
199
+ - `Nonnative::NoProxy` (`lib/nonnative/no_proxy.rb`)
200
+ - `Nonnative::FaultInjectionProxy` (`lib/nonnative/fault_injection_proxy.rb`)
201
+ - states: `:none`, `:close_all`, `:delay`, `:invalid_data`
202
+ - delegates behavior to socket-pair classes via `SocketPairFactory` (`lib/nonnative/socket_pair_factory.rb`).
203
+
204
+ ### Go executable helper
205
+
206
+ There is a helper for building a Go *test binary* command line with optional profiling/trace/coverage flags:
207
+
208
+ - `Nonnative.go_executable` in `lib/nonnative.rb`
209
+ - `Nonnative::GoCommand` in `lib/nonnative/go_command.rb`
210
+
211
+ This is used when YAML process config has a `go:` section (see `Configuration#command` in `lib/nonnative/configuration.rb`).
212
+
213
+ ## Style and conventions
214
+
215
+ - Ruby style is enforced by RuboCop (`.rubocop.yml`):
216
+ - Target Ruby 3.4
217
+ - Line length 150
218
+ - `Style/Documentation` disabled
219
+ - `.editorconfig`:
220
+ - `indent_size = 2` for most files
221
+ - **Makefiles use tabs**
222
+ - Many Ruby files use `# frozen_string_literal: true`.
223
+
224
+ ## CI notes
225
+
226
+ CircleCI runs (see `.circleci/config.yml`):
227
+
228
+ - `make source-key` (defined in `bin/build/make/git.mak`) to generate `.source-key` used for caching
229
+ - `make dep`, `make clean-dep`
230
+ - `make lint`, `make features`
231
+ - uploads `test/reports` artifacts
232
+
233
+ ## Common gotchas
234
+
235
+ - **Submodule required**: root `Makefile` only includes `bin/...` make fragments; without `bin/` present/updated, `make` won’t work.
236
+ - **SSH-only submodule URL**: `.gitmodules` uses `git@github.com:...`; CI or local environments without SSH keys will fail to init the submodule.
237
+ - **Local Ruby/Bundler mismatch can break native extensions**: on macOS, `make lint`/`bundle exec ...` may fail if the Ruby used to install gems differs from the Ruby used to run them (example error seen: `prism.bundle` missing `libruby.3.4.dylib`).
238
+ - **Requiring `nonnative` loads Cucumber DSL**: `lib/nonnative.rb` requires `lib/nonnative/cucumber.rb`, which calls `World(...)`. Outside a Cucumber runtime this can raise (example error seen: `Cucumber::Glue::Dsl.build_rb_world_factory`).
239
+ - **Reports directory**: Cucumber report profile writes into `test/reports/` and the repo keeps a `test/reports/.keep` file.
240
+ - **Port checks can be flaky if ports are reused**: readiness is purely `TCPSocket`-based (`lib/nonnative/port.rb`), so ensure test fixtures bind expected ports.
241
+
242
+ ## Where to look first when changing behavior
243
+
244
+ - Lifecycle orchestration: `lib/nonnative.rb`, `lib/nonnative/pool.rb`
245
+ - Readiness / timeouts: `lib/nonnative/port.rb`, `lib/nonnative/timeout.rb`
246
+ - Process management: `lib/nonnative/process.rb`
247
+ - Proxies / fault injection: `lib/nonnative/fault_injection_proxy.rb`, `lib/nonnative/socket_pair_factory.rb`
248
+ - Cucumber integration: `lib/nonnative/cucumber.rb`, `lib/nonnative/startup.rb`, `features/support/env.rb`
data/CHANGELOG.md CHANGED
@@ -6,6 +6,110 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
 
7
7
  ## Unreleased
8
8
 
9
+ ## [v1.108.0](https://github.com/alexfalkowski/nonnative/releases/tag/v1.108.0) - 2026-02-13
10
+
11
+ - [`7683fb1`](https://github.com/alexfalkowski/nonnative/commit/7683fb15b8d68531dd7a309217c0ff6503f1ca51) feat(docs): update to reflect important information (#743)
12
+ - [`d765159`](https://github.com/alexfalkowski/nonnative/commit/d765159e40c9aa51c61cfe44ecd0c18c3b5c965a) test(deps): bump rubocop from 1.84.1 to 1.84.2 (#742)
13
+ - [`c55d2ca`](https://github.com/alexfalkowski/nonnative/commit/c55d2cac8a4f663f1d90b7904694a5c3573b943f) build(ci): use arm.large (#741)
14
+ - [`aedb111`](https://github.com/alexfalkowski/nonnative/commit/aedb11189392f68aefa8d494f9a0d64f98acb3e6) build(ci): use latest published images (#740)
15
+ - [`dba1db1`](https://github.com/alexfalkowski/nonnative/commit/dba1db1a4d373e6b21b41357963b284a0ac5f9f5) build(deps): bump bin from `dc92464` to `60f3a4b` (#736)
16
+ - [`e52950f`](https://github.com/alexfalkowski/nonnative/commit/e52950fa4681f46583b9f024405b415dde015a7d) build(ci): use latest published images (#735)
17
+ - [`032d9b1`](https://github.com/alexfalkowski/nonnative/commit/032d9b1347a59fba9fcb9bf06f5ffbb1f3093d33) test(deps): bump ruby-lsp from 0.26.5 to 0.26.6 (#733)
18
+ - [`d9a1068`](https://github.com/alexfalkowski/nonnative/commit/d9a1068b3cf722af12668ed34b5b13520c38abe0) test(deps): bump grpc from 1.76.0 to 1.78.0 (#732)
19
+ - [`8869a4f`](https://github.com/alexfalkowski/nonnative/commit/8869a4fe7395a51e449293c8fd1cc514ea13f8c8) build(ci): use latest published images (#731)
20
+ - [`3ceba36`](https://github.com/alexfalkowski/nonnative/commit/3ceba360706cd344cbe6f5d155d4087f4ba64ad1) build(deps): bump bin from `50ee2c1` to `dc92464` (#730)
21
+ - [`4443962`](https://github.com/alexfalkowski/nonnative/commit/4443962fb64df8ae45437c47c2c4f4c8e2c75fbf) build(ci): use latest published images (#729)
22
+ - [`cbae6a7`](https://github.com/alexfalkowski/nonnative/commit/cbae6a75762d9d89d33638919fd6f28260581563) build(ci): use latest published images (#728)
23
+ - [`1588b2e`](https://github.com/alexfalkowski/nonnative/commit/1588b2e57e0c895705e552d0a7dac35bf92af3de) test(deps): bump rubocop from 1.84.0 to 1.84.1 (#727)
24
+ - [`440ec57`](https://github.com/alexfalkowski/nonnative/commit/440ec570a8bb9ad13522238cc29dc62c53ec9467) build(ci): use latest published images (#726)
25
+ - [`0b8dc73`](https://github.com/alexfalkowski/nonnative/commit/0b8dc73566c0933476f427a59eff28ce2cbac3b0) build(ci): use latest published images (#725)
26
+ - [`3c7a2ca`](https://github.com/alexfalkowski/nonnative/commit/3c7a2ca1df34c66030066a8fffda829e03e06ec9) test(deps): bump rubocop from 1.82.1 to 1.84.0 (#724)
27
+ - [`0f476f9`](https://github.com/alexfalkowski/nonnative/commit/0f476f9a040d19e6ac60f0f15cc9824d8cac30e4) build(ci): use latest published images (#723)
28
+ - [`e9d602d`](https://github.com/alexfalkowski/nonnative/commit/e9d602d0ecbf940628a701abbad5d436184e4f1d) test(deps): bump puma from 7.1.0 to 7.2.0 (#721)
29
+ - [`7d5626a`](https://github.com/alexfalkowski/nonnative/commit/7d5626acfdd3691079adab7a0274c7107fb8dc80) test(deps): bump ruby-lsp from 0.26.4 to 0.26.5 (#722)
30
+ - [`c9846ef`](https://github.com/alexfalkowski/nonnative/commit/c9846ef060be95fd241091174bf22244310c28fe) build(ci): add AGENTS.md (#720)
31
+ - [`2e2e1e5`](https://github.com/alexfalkowski/nonnative/commit/2e2e1e56ca51da1cc527be492f79c72b0d86d50e) build(ci): use latest published images (#719)
32
+ - [`5ed97d5`](https://github.com/alexfalkowski/nonnative/commit/5ed97d579cec91dfea4b00d6d976fef380d63bfd) build(ci): use latest published images (#718)
33
+ - [`826d054`](https://github.com/alexfalkowski/nonnative/commit/826d05498aa6d2345d7da8b879990c8ecc07d5f7) build(deps): upgraded github.com/alexfalkowski/bin (#717)
34
+ - [`232c1d4`](https://github.com/alexfalkowski/nonnative/commit/232c1d4df62d57c63d5fc7f3be00663555f2305e) build(ci): use latest published images (#716)
35
+ - [`aed7269`](https://github.com/alexfalkowski/nonnative/commit/aed7269f5190ddd816e7181054e0c3fa8108cc42) build(ci): use latest published images (#715)
36
+ - [`04c091a`](https://github.com/alexfalkowski/nonnative/commit/04c091afbb2608e9a25f6b43905d43259b35a37b) build(ci): use latest published images (#714)
37
+ - [`e7c11bf`](https://github.com/alexfalkowski/nonnative/commit/e7c11bfa42060e26b7570d803b2bd74d8f75982b) build(ci): use latest published images (#713)
38
+ - [`4088109`](https://github.com/alexfalkowski/nonnative/commit/4088109f0445030b7d794b2d5b0a331fa3d97fad) build(deps): upgraded github.com/alexfalkowski/bin (#712)
39
+ - [`b5bbf83`](https://github.com/alexfalkowski/nonnative/commit/b5bbf830d02813c02681cb521dc89953b6f0a56f) build(ci): use latest published images (#711)
40
+ - [`ee6d957`](https://github.com/alexfalkowski/nonnative/commit/ee6d957a3c4bf544ee16fc0840027bdaa0d6f39b) build(deps): upgraded github.com/alexfalkowski/bin (#710)
41
+ - [`d95a8b8`](https://github.com/alexfalkowski/nonnative/commit/d95a8b883378d76840f49a406b21b014bf1a2552) build(ci): use latest published images (#709)
42
+ - [`bfe8d84`](https://github.com/alexfalkowski/nonnative/commit/bfe8d84dec0fe84e3f1e12da275ca29a7e1c155c) build(deps): bump bin from `664d367` to `302ba69` (#708)
43
+ - [`06a2f4f`](https://github.com/alexfalkowski/nonnative/commit/06a2f4fc167fe8b4af5f5192f149b272ba70715d) build(ci): use latest published images (#707)
44
+ - [`36eb73a`](https://github.com/alexfalkowski/nonnative/commit/36eb73ae477fa8ae785faf347d8cf947fbeb8788) build(ci): use latest published images (#706)
45
+ - [`55a5e9c`](https://github.com/alexfalkowski/nonnative/commit/55a5e9ca62e6756feff8783890a5688bd3a5f657) build(ci): use latest published images (#705)
46
+ - [`e8aba06`](https://github.com/alexfalkowski/nonnative/commit/e8aba067a2bba1cd7439b30384bd2f8c8748c9d8) build(deps): upgraded github.com/alexfalkowski/bin (#704)
47
+ - [`36b4e10`](https://github.com/alexfalkowski/nonnative/commit/36b4e10583d26a21fa5b01169299a1ddfe7ba681) test(deps): upgraded bundler to 4.0.3 (#703)
48
+ - [`758ed2d`](https://github.com/alexfalkowski/nonnative/commit/758ed2d5950071ff7bbcdc7eb9044303aaa04cb7) build(deps): upgraded github.com/alexfalkowski/bin (#702)
49
+ - [`e445325`](https://github.com/alexfalkowski/nonnative/commit/e445325381c5b7814e9216be8ec22485c24e4699) build(ci): use latest published images (#701)
50
+ - [`76876f9`](https://github.com/alexfalkowski/nonnative/commit/76876f97b6567593e346a268ec7c3593c11cda55) build(ci): use latest published images (#700)
51
+ - [`3fdea64`](https://github.com/alexfalkowski/nonnative/commit/3fdea64e294e035aea648dfd66717472e8447725) test(deps): bump rubocop from 1.82.0 to 1.82.1 (#699)
52
+ - [`8f423d3`](https://github.com/alexfalkowski/nonnative/commit/8f423d3fb938a9b9ced8b4fd338477ad08a2adaf) build(deps): upgraded github.com/alexfalkowski/bin (#698)
53
+ - [`31b5556`](https://github.com/alexfalkowski/nonnative/commit/31b555640fcb3c189d2078def07deffbd856d2d1) build(deps): upgraded github.com/alexfalkowski/bin (#697)
54
+ - [`0a1c10e`](https://github.com/alexfalkowski/nonnative/commit/0a1c10efc9fbc89b549fd747f7b5496b44646e63) build(ci): use latest published images (#696)
55
+ - [`24326a1`](https://github.com/alexfalkowski/nonnative/commit/24326a1a31516e53229237bf6e5a0dbc3893b0f8) test(deps): update bundler to v4.0.2 (#695)
56
+ - [`3fbae8e`](https://github.com/alexfalkowski/nonnative/commit/3fbae8eeae18c7e5a5dd62de72e3ab73f7342475) build(deps): upgraded github.com/alexfalkowski/bin (#694)
57
+ - [`28b97a0`](https://github.com/alexfalkowski/nonnative/commit/28b97a0503285e46e88fa57e59430d94bcdf9b0a) build(ci): use latest published images (#693)
58
+ - [`df8738c`](https://github.com/alexfalkowski/nonnative/commit/df8738c55b1fea9452305e6ea1e8abf9ed5fcbb8) test(deps): bump rubocop from 1.81.7 to 1.82.0 (#692)
59
+ - [`1946fc8`](https://github.com/alexfalkowski/nonnative/commit/1946fc846c42cfb732cfe5438d7457eb94abe2ec) test(deps): bump concurrent-ruby from 1.3.5 to 1.3.6 (#691)
60
+ - [`f1d3525`](https://github.com/alexfalkowski/nonnative/commit/f1d3525f832f7909c40126927d2c20cb9f5503c5) test(deps): bump cucumber from 10.1.1 to 10.2.0 (#690)
61
+ - [`70ac846`](https://github.com/alexfalkowski/nonnative/commit/70ac8464a077ad5c7e9b52da29be411ab1a19461) build(ci): use latest published images (#689)
62
+ - [`51c70a1`](https://github.com/alexfalkowski/nonnative/commit/51c70a1bd076c343c13b703675a1f3f8fca39cb7) test(deps): make update-all-dep (#688)
63
+ - [`915571d`](https://github.com/alexfalkowski/nonnative/commit/915571d4c7ee066a38db62ca069d9c5fc8a62d7d) build(ci): use latest published images (#687)
64
+ - [`5826ae6`](https://github.com/alexfalkowski/nonnative/commit/5826ae685346666683c440a149a0bf99a443e787) build(ci): use latest published images (#686)
65
+ - [`8f50291`](https://github.com/alexfalkowski/nonnative/commit/8f502910b112f3940a51a950b2f941b1bd5ab891) build(deps): bump bin from `5ed27e1` to `6174b3d` (#685)
66
+ - [`c784cc0`](https://github.com/alexfalkowski/nonnative/commit/c784cc0f2ab395a7eacf4f55d7f453e301cd60f5) build(ci): use latest published images (#684)
67
+ - [`736c1d8`](https://github.com/alexfalkowski/nonnative/commit/736c1d8271e74957abb2c758c96b29f533157158) build(ci): use latest published images (#683)
68
+ - [`28ba6aa`](https://github.com/alexfalkowski/nonnative/commit/28ba6aafd0b2d1c948a2485127d618b140a8bb08) build(ci): use latest published images (#682)
69
+ - [`9ae3129`](https://github.com/alexfalkowski/nonnative/commit/9ae31297ef036de635c5500e14dc2aa47cb7e31a) build(ci): use latest published images (#681)
70
+ - [`76ee2f2`](https://github.com/alexfalkowski/nonnative/commit/76ee2f260a480e78373f1053b6a27c76b820c06a) build(deps): upgraded github.com/alexfalkowski/bin (#680)
71
+ - [`55d6045`](https://github.com/alexfalkowski/nonnative/commit/55d60458dbdd7c7cd84dd88f98070df401b00c89) test(deps): make update-all-dep (#679)
72
+ - [`8feeb62`](https://github.com/alexfalkowski/nonnative/commit/8feeb626e10e8690e6af54ba77c07db0e4b97c80) build(ci): use latest published images (#678)
73
+ - [`c142b6a`](https://github.com/alexfalkowski/nonnative/commit/c142b6a905bad22a7090ab8950bfe1025b6fad86) test(deps): bump ruby-lsp from 0.26.3 to 0.26.4 (#677)
74
+ - [`fca4096`](https://github.com/alexfalkowski/nonnative/commit/fca40966002eaf7803290db8aa882848e663ec5a) build(ci): use latest published images (#676)
75
+ - [`6ae4f49`](https://github.com/alexfalkowski/nonnative/commit/6ae4f49d51d90567e7705079a911a9e1f1e4edd9) build(ci): use latest published images (#675)
76
+ - [`1e066b1`](https://github.com/alexfalkowski/nonnative/commit/1e066b13478106449cf31badab3bef6115b553b8) test(deps): bump ruby-lsp from 0.26.2 to 0.26.3 (#674)
77
+ - [`a3749f3`](https://github.com/alexfalkowski/nonnative/commit/a3749f3d02e01abf0eb34ee4942cc5197709a21e) build(deps): bump bin from `5563606` to `ecccdf6` (#673)
78
+ - [`ea1f0fa`](https://github.com/alexfalkowski/nonnative/commit/ea1f0facfbab8f247296ce2c75c00481520ffdd9) build(ci): use latest published images (#672)
79
+ - [`3cb7ca1`](https://github.com/alexfalkowski/nonnative/commit/3cb7ca1d364bc5268c55e944b7896adb74c1352d) build(ci): use latest published images (#671)
80
+ - [`3c35102`](https://github.com/alexfalkowski/nonnative/commit/3c3510235a4b891ce9686cc4d1f37e3e39cf754f) test(deps): bump rubocop from 1.81.6 to 1.81.7 (#670)
81
+ - [`8d5ed5a`](https://github.com/alexfalkowski/nonnative/commit/8d5ed5a3abeb8c22b73490b559e28490083fc989) build(ci): use latest published images (#669)
82
+ - [`d0d4e4e`](https://github.com/alexfalkowski/nonnative/commit/d0d4e4ee8ebebe5859432f1ef39678868e7e1307) build(ci): use latest published images (#668)
83
+ - [`7c1865d`](https://github.com/alexfalkowski/nonnative/commit/7c1865d2a6df2c26ae73a7dbace673dbdfba898e) test(deps): bump ruby-lsp from 0.26.1 to 0.26.2 (#667)
84
+ - [`86ae06d`](https://github.com/alexfalkowski/nonnative/commit/86ae06deac4a72e9e2e5586cf4dea1bd9fe2aa61) test(deps): bump grpc from 1.75.0 to 1.76.0 (#666)
85
+ - [`b10692a`](https://github.com/alexfalkowski/nonnative/commit/b10692a28c940c3eb50830de5e33351cff88461b) build(ci): use latest published images (#665)
86
+ - [`c55853d`](https://github.com/alexfalkowski/nonnative/commit/c55853d9f3f75659850aa7fdfa5bce6d375f920b) test(deps): bump rubocop from 1.81.1 to 1.81.6 (#664)
87
+ - [`df198c3`](https://github.com/alexfalkowski/nonnative/commit/df198c322808e8e6017492ca2589f162359d34ac) test(deps): bump puma from 7.0.4 to 7.1.0 (#663)
88
+ - [`087f5a3`](https://github.com/alexfalkowski/nonnative/commit/087f5a30ab85f1e6aa7a8bc85dbd6f20fbf83ce7) build(deps): bump bin from `09a61a1` to `5563606` (#662)
89
+ - [`41ab18a`](https://github.com/alexfalkowski/nonnative/commit/41ab18a4c004bf90c553105a761cee058ff691ac) build(ci): use latest published images (#661)
90
+ - [`b00bcd4`](https://github.com/alexfalkowski/nonnative/commit/b00bcd4fc78e31c61e8c5dff22fe5fbef3d39039) test(deps): bump sinatra from 4.1.1 to 4.2.0 (#656)
91
+ - [`f96fe17`](https://github.com/alexfalkowski/nonnative/commit/f96fe17ecbd94a82f44989b5ec1213c1eeb5d783) test(deps): bump cucumber from 10.1.0 to 10.1.1 (#657)
92
+ - [`9e201b1`](https://github.com/alexfalkowski/nonnative/commit/9e201b1f3ec28143cb80277a03b1abaf69fc1347) test(deps): bump rack from 3.2.2 to 3.2.3 (#660)
93
+ - [`7c37fc1`](https://github.com/alexfalkowski/nonnative/commit/7c37fc113541813d682f09f71ef2cf4d91acf560) build(ci): use latest published images (#659)
94
+ - [`96029db`](https://github.com/alexfalkowski/nonnative/commit/96029dbdc2cb200de33b4fb19a823c3ac6a31ea2) build(deps): bump bin from `6aa86c4` to `09a61a1` (#658)
95
+ - [`68a258e`](https://github.com/alexfalkowski/nonnative/commit/68a258e9234f1cfcd2f5b2e7dc395526e2afec2d) build(ci): use latest published images (#655)
96
+ - [`f8dd7b5`](https://github.com/alexfalkowski/nonnative/commit/f8dd7b530eaf776fd6ba7582c0e7025580f21833) test(deps): bump rack from 3.2.1 to 3.2.2 (#654)
97
+ - [`742a7b2`](https://github.com/alexfalkowski/nonnative/commit/742a7b28fa83e4a93c5b677606faea3c114af9c6) build(deps): bump bin from `7794421` to `6aa86c4` (#653)
98
+ - [`24186ec`](https://github.com/alexfalkowski/nonnative/commit/24186ecdf433c26c64ae46b7e616515998086c61) build(ci): use blobless (#652)
99
+ - [`9c81a2d`](https://github.com/alexfalkowski/nonnative/commit/9c81a2d82ef6749eaa08cb80b3b6ea98312be3b6) build(deps): bump bin from `d437cb4` to `7794421` (#651)
100
+ - [`bf07c46`](https://github.com/alexfalkowski/nonnative/commit/bf07c460820bf53809a76dd39c1c5773d41f49fb) build(ci): use latest published images (#650)
101
+ - [`cb7a3dd`](https://github.com/alexfalkowski/nonnative/commit/cb7a3dd551d174bc936386679d8f84f2e4431bb4) test(deps): bump rubocop from 1.81.0 to 1.81.1 (#649)
102
+ - [`6a85af9`](https://github.com/alexfalkowski/nonnative/commit/6a85af9333eee0542b37e7c4264f30621c41fab2) test(deps): bump rubocop from 1.80.2 to 1.81.0 (#648)
103
+ - [`9c25a32`](https://github.com/alexfalkowski/nonnative/commit/9c25a3284924577f2426d4e4425b08926a9824d4) build(deps): bump bin from `870aeb4` to `d437cb4` (#647)
104
+ - [`2be0fba`](https://github.com/alexfalkowski/nonnative/commit/2be0fbaa42218d980c32b3072fd440a628b4c5dd) test(deps): bump puma from 7.0.3 to 7.0.4 (#646)
105
+ - [`753046c`](https://github.com/alexfalkowski/nonnative/commit/753046c9e4641c6ceecb2d17435a276ea5b4d5d0) build(ci): use latest published images (#645)
106
+ - [`bd76798`](https://github.com/alexfalkowski/nonnative/commit/bd76798f8fe0ad31894a88b5cc75b68e27938590) build(ci): use latest published images (#644)
107
+ - [`d8eb73c`](https://github.com/alexfalkowski/nonnative/commit/d8eb73c0b84285ddc552f7075f66546136941acb) build(ci): use latest published images (#643)
108
+ - [`f477c8a`](https://github.com/alexfalkowski/nonnative/commit/f477c8a949e46b7d7d10864a5bd97bd8a2da5843) test(deps): bump grpc from 1.74.1 to 1.75.0 (#642)
109
+ - [`31d7c84`](https://github.com/alexfalkowski/nonnative/commit/31d7c8451a5d398aaffa3b2d99f3e5a1ee3fca29) test(deps): bump puma from 7.0.2 to 7.0.3 (#641)
110
+ - [`85b4ff6`](https://github.com/alexfalkowski/nonnative/commit/85b4ff6783154e09a386fa1a8c453138917cec3f) test(deps): bump puma from 7.0.1 to 7.0.2 (#640)
111
+ - [`32bff37`](https://github.com/alexfalkowski/nonnative/commit/32bff37f77f2c1ebb6169b516fc17a3d8e7b98da) test(deps): bump puma from 7.0.0 to 7.0.1 (#639)
112
+
9
113
  ## [v1.107.0](https://github.com/alexfalkowski/nonnative/releases/tag/v1.107.0) - 2025-09-05
10
114
 
11
115
  - [`8aab337`](https://github.com/alexfalkowski/nonnative/commit/8aab337296fd94859bfed52962531f56b5269120) feat(deps): update puma to v7.0.0 (#638)
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nonnative (1.107.0)
4
+ nonnative (1.108.0)
5
5
  concurrent-ruby (>= 1, < 2)
6
6
  config (>= 5, < 6)
7
7
  cucumber (>= 7, < 11)
@@ -23,37 +23,37 @@ GEM
23
23
  benchmark-malloc (0.2.0)
24
24
  benchmark-perf (0.6.0)
25
25
  benchmark-trend (0.4.0)
26
- bigdecimal (3.2.3)
26
+ bigdecimal (4.0.1)
27
27
  builder (3.3.0)
28
- concurrent-ruby (1.3.5)
28
+ concurrent-ruby (1.3.6)
29
29
  config (5.6.1)
30
30
  deep_merge (~> 1.2, >= 1.2.1)
31
31
  ostruct
32
- cucumber (10.1.0)
32
+ cucumber (10.2.0)
33
33
  base64 (~> 0.2)
34
34
  builder (~> 3.2)
35
- cucumber-ci-environment (> 9, < 11)
35
+ cucumber-ci-environment (> 9, < 12)
36
36
  cucumber-core (> 15, < 17)
37
- cucumber-cucumber-expressions (> 17, < 19)
38
- cucumber-html-formatter (> 20.3, < 22)
37
+ cucumber-cucumber-expressions (> 17, < 20)
38
+ cucumber-html-formatter (> 21, < 23)
39
39
  diff-lcs (~> 1.5)
40
40
  logger (~> 1.6)
41
41
  mini_mime (~> 1.1)
42
42
  multi_test (~> 1.1)
43
43
  sys-uname (~> 1.3)
44
- cucumber-ci-environment (10.0.1)
45
- cucumber-core (15.2.1)
46
- cucumber-gherkin (> 27, < 33)
47
- cucumber-messages (> 26, < 30)
48
- cucumber-tag-expressions (> 5, < 7)
44
+ cucumber-ci-environment (11.0.0)
45
+ cucumber-core (16.0.0)
46
+ cucumber-gherkin (> 33, < 40)
47
+ cucumber-messages (> 28, < 33)
48
+ cucumber-tag-expressions (> 6, < 9)
49
49
  cucumber-cucumber-expressions (18.0.1)
50
50
  bigdecimal
51
- cucumber-gherkin (32.2.0)
52
- cucumber-messages (> 25, < 28)
53
- cucumber-html-formatter (21.14.0)
54
- cucumber-messages (> 19, < 28)
55
- cucumber-messages (27.2.0)
56
- cucumber-tag-expressions (6.1.2)
51
+ cucumber-gherkin (36.1.0)
52
+ cucumber-messages (> 25, < 30)
53
+ cucumber-html-formatter (22.2.0)
54
+ cucumber-messages (> 19, < 31)
55
+ cucumber-messages (29.0.1)
56
+ cucumber-tag-expressions (8.1.0)
57
57
  deep_merge (1.2.2)
58
58
  diff-lcs (1.6.2)
59
59
  docile (1.4.1)
@@ -63,24 +63,24 @@ GEM
63
63
  get_process_mem (1.0.0)
64
64
  bigdecimal (>= 2.0)
65
65
  ffi (~> 1.0)
66
- google-protobuf (4.32.0-x86_64-darwin)
66
+ google-protobuf (4.33.5-x86_64-darwin)
67
67
  bigdecimal
68
68
  rake (>= 13)
69
- google-protobuf (4.32.0-x86_64-linux-gnu)
69
+ google-protobuf (4.33.5-x86_64-linux-gnu)
70
70
  bigdecimal
71
71
  rake (>= 13)
72
- googleapis-common-protos-types (1.21.0)
72
+ googleapis-common-protos-types (1.22.0)
73
73
  google-protobuf (~> 4.26)
74
- grpc (1.74.1-x86_64-darwin)
74
+ grpc (1.78.0-x86_64-darwin)
75
75
  google-protobuf (>= 3.25, < 5.0)
76
76
  googleapis-common-protos-types (~> 1.0)
77
- grpc (1.74.1-x86_64-linux-gnu)
77
+ grpc (1.78.0-x86_64-linux-gnu)
78
78
  google-protobuf (>= 3.25, < 5.0)
79
79
  googleapis-common-protos-types (~> 1.0)
80
80
  http-accept (1.7.0)
81
- http-cookie (1.0.8)
81
+ http-cookie (1.1.0)
82
82
  domain_name (~> 0.5)
83
- json (2.13.2)
83
+ json (2.18.1)
84
84
  language_server-protocol (3.17.0.5)
85
85
  lint_roller (1.1.0)
86
86
  logger (1.7.0)
@@ -88,24 +88,24 @@ GEM
88
88
  mime-types (3.7.0)
89
89
  logger
90
90
  mime-types-data (~> 3.2025, >= 3.2025.0507)
91
- mime-types-data (3.2025.0902)
91
+ mime-types-data (3.2025.0924)
92
92
  mini_mime (1.1.5)
93
93
  multi_test (1.1.0)
94
94
  mustermann (3.0.4)
95
95
  ruby2_keywords (~> 0.0.1)
96
96
  netrc (0.11.0)
97
- nio4r (2.7.4)
97
+ nio4r (2.7.5)
98
98
  ostruct (0.6.3)
99
99
  parallel (1.27.0)
100
- parser (3.3.9.0)
100
+ parser (3.3.10.1)
101
101
  ast (~> 2.4.1)
102
102
  racc
103
- prism (1.4.0)
104
- puma (7.0.0)
103
+ prism (1.9.0)
104
+ puma (7.2.0)
105
105
  nio4r (~> 2.0)
106
106
  racc (1.8.1)
107
- rack (3.2.1)
108
- rack-protection (4.1.1)
107
+ rack (3.2.4)
108
+ rack-protection (4.2.1)
109
109
  base64 (>= 0.1.0)
110
110
  logger (>= 1.6.0)
111
111
  rack (>= 3.0.0, < 4)
@@ -113,18 +113,19 @@ GEM
113
113
  base64 (>= 0.1.0)
114
114
  rack (>= 3.0.0)
115
115
  rainbow (3.1.1)
116
- rake (13.3.0)
117
- rbs (3.9.4)
116
+ rake (13.3.1)
117
+ rbs (3.10.3)
118
118
  logger
119
- regexp_parser (2.11.2)
119
+ tsort
120
+ regexp_parser (2.11.3)
120
121
  rest-client (2.1.0)
121
122
  http-accept (>= 1.7.0, < 2.0)
122
123
  http-cookie (>= 1.0.2, < 2.0)
123
124
  mime-types (>= 1.16, < 4.0)
124
125
  netrc (~> 0.8)
125
126
  retriable (3.1.2)
126
- rexml (3.4.2)
127
- rspec (3.13.1)
127
+ rexml (3.4.4)
128
+ rspec (3.13.2)
128
129
  rspec-core (~> 3.13.0)
129
130
  rspec-expectations (~> 3.13.0)
130
131
  rspec-mocks (~> 3.13.0)
@@ -133,18 +134,18 @@ GEM
133
134
  benchmark-perf (~> 0.6)
134
135
  benchmark-trend (~> 0.4)
135
136
  rspec (>= 3.0)
136
- rspec-core (3.13.5)
137
+ rspec-core (3.13.6)
137
138
  rspec-support (~> 3.13.0)
138
139
  rspec-expectations (3.13.5)
139
140
  diff-lcs (>= 1.2.0, < 2.0)
140
141
  rspec-support (~> 3.13.0)
141
- rspec-mocks (3.13.5)
142
+ rspec-mocks (3.13.7)
142
143
  diff-lcs (>= 1.2.0, < 2.0)
143
144
  rspec-support (~> 3.13.0)
144
- rspec-support (3.13.5)
145
+ rspec-support (3.13.6)
145
146
  rspec-wait (1.0.2)
146
147
  rspec (>= 3.4)
147
- rubocop (1.80.2)
148
+ rubocop (1.84.2)
148
149
  json (~> 2.3)
149
150
  language_server-protocol (~> 3.17.0.2)
150
151
  lint_roller (~> 1.1.0)
@@ -152,13 +153,13 @@ GEM
152
153
  parser (>= 3.3.0.2)
153
154
  rainbow (>= 2.2.2, < 4.0)
154
155
  regexp_parser (>= 2.9.3, < 3.0)
155
- rubocop-ast (>= 1.46.0, < 2.0)
156
+ rubocop-ast (>= 1.49.0, < 2.0)
156
157
  ruby-progressbar (~> 1.7)
157
158
  unicode-display_width (>= 2.4.0, < 4.0)
158
- rubocop-ast (1.46.0)
159
+ rubocop-ast (1.49.0)
159
160
  parser (>= 3.3.7.2)
160
- prism (~> 1.4)
161
- ruby-lsp (0.26.1)
161
+ prism (~> 1.7)
162
+ ruby-lsp (0.26.6)
162
163
  language_server-protocol (~> 3.17.0)
163
164
  prism (>= 1.2, < 2.0)
164
165
  rbs (>= 3, < 5)
@@ -173,20 +174,21 @@ GEM
173
174
  simplecov (~> 0.19)
174
175
  simplecov-html (0.13.2)
175
176
  simplecov_json_formatter (0.1.4)
176
- sinatra (4.1.1)
177
+ sinatra (4.2.1)
177
178
  logger (>= 1.6.0)
178
179
  mustermann (~> 3.0)
179
180
  rack (>= 3.0.0, < 4)
180
- rack-protection (= 4.1.1)
181
+ rack-protection (= 4.2.1)
181
182
  rack-session (>= 2.0.0, < 3)
182
183
  tilt (~> 2.0)
183
184
  sys-uname (1.4.1)
184
185
  ffi (~> 1.1)
185
186
  memoist3 (~> 1.0.0)
186
187
  tilt (2.6.1)
187
- unicode-display_width (3.1.5)
188
- unicode-emoji (~> 4.0, >= 4.0.4)
189
- unicode-emoji (4.0.4)
188
+ tsort (0.2.0)
189
+ unicode-display_width (3.2.0)
190
+ unicode-emoji (~> 4.1)
191
+ unicode-emoji (4.2.0)
190
192
 
191
193
  PLATFORMS
192
194
  x86_64-darwin-21
@@ -202,4 +204,4 @@ DEPENDENCIES
202
204
  simplecov-cobertura
203
205
 
204
206
  BUNDLED WITH
205
- 2.6.9
207
+ 4.0.3