diff options
Diffstat (limited to 'makefu')
-rw-r--r-- | makefu/2configs/home/ham/automation/fenster_auf.nix | 15 | ||||
-rw-r--r-- | makefu/2configs/home/ham/automation/ladestecker_timer.nix | 24 | ||||
-rw-r--r-- | makefu/2configs/home/ham/automation/light_buttons.nix | 88 | ||||
-rw-r--r-- | makefu/2configs/home/ham/default.nix | 2 | ||||
-rw-r--r-- | makefu/2configs/home/ham/lib/default.nix | 76 | ||||
-rw-r--r-- | makefu/5pkgs/beef/Gemfile | 66 | ||||
-rw-r--r-- | makefu/5pkgs/beef/Gemfile.lock | 333 | ||||
-rw-r--r-- | makefu/5pkgs/beef/gemset.nix | 1000 | ||||
-rwxr-xr-x | makefu/5pkgs/beef/update.sh | 28 |
9 files changed, 1242 insertions, 390 deletions
diff --git a/makefu/2configs/home/ham/automation/fenster_auf.nix b/makefu/2configs/home/ham/automation/fenster_auf.nix index b24f6445d..fa2052be8 100644 --- a/makefu/2configs/home/ham/automation/fenster_auf.nix +++ b/makefu/2configs/home/ham/automation/fenster_auf.nix @@ -15,6 +15,12 @@ let for.minutes = min; } ]; + condition = [ + { condition = "state"; + entity_id = "input_boolean.ist_sommer"; + state = "off"; + } + ]; action = [ { @@ -61,10 +67,19 @@ let }; in { services.home-assistant.config = { + sensor = [ + { platform = "season"; type = "meteorological";} + ]; + input_boolean = { badezimmerfenster_lang_offen.name = "Badezimmer lange offen"; duschfenster_lang_offen.name = "Duschfenster lange offen"; + ist_sommer = { + name = "Es ist Sommer"; + initial = true; # TODO + }; }; + automation = [ (fenster_geschlossen_lang "Badezimmerfenster" "binary_sensor.badezimmer_fenster_contact") (fenster_geschlossen_lang "Duschfenster" "binary_sensor.dusche_fenster_contact") diff --git a/makefu/2configs/home/ham/automation/ladestecker_timer.nix b/makefu/2configs/home/ham/automation/ladestecker_timer.nix new file mode 100644 index 000000000..8e877129c --- /dev/null +++ b/makefu/2configs/home/ham/automation/ladestecker_timer.nix @@ -0,0 +1,24 @@ +let + relay = "switch.terrasse_plug_relay"; + timeout = "300"; +in { + services.home-assistant.config.automation = [ + { alias = "Always turn off Charging station after ${toString (timeout)}m"; + trigger = [ + { + platform = "state"; + entity_id = relay; + to = "on"; + for.minutes = timeout; + } + ]; + action = + [ + { + service = "homeassistant.turn_off"; + entity_id = [ relay ]; + } + ]; + } + ]; +} diff --git a/makefu/2configs/home/ham/automation/light_buttons.nix b/makefu/2configs/home/ham/automation/light_buttons.nix index 89caf1a41..62fc87bb4 100644 --- a/makefu/2configs/home/ham/automation/light_buttons.nix +++ b/makefu/2configs/home/ham/automation/light_buttons.nix @@ -1,80 +1,7 @@ let - btn_state = light: btn: halfbright: - let - maxbright = 255; - transition = 0.2; # seconds - in - # this function implements a simple state machine based on the state and brightness of the light (light must support brightness - { - alias = "Cycle through states of ${light} via button ${btn}"; - trigger = { - platform = "state"; - entity_id = "sensor.${btn}_click"; - to = "single"; - }; - action = { - choose = [ - { - # state 0: off to half - conditions = { - condition = "template"; - value_template = ''{{ states("${light}") == "off" }}''; - }; - sequence = [ - { - service = "light.turn_on"; - data = { - entity_id = light; - brightness = halfbright; - }; - } - ]; - } - { - # state 1: half to full - conditions = { - condition = "template"; - value_template = ''{{ states('${light}') == 'on' and ( ${toString (halfbright - 1)} <= state_attr("${light}","brightness") <= ${toString (halfbright + 1)})}}''; - }; - sequence = [ - { - service = "light.turn_on"; - data = { - entity_id = light; - brightness = maxbright; - }; - } - ]; - } - { - # state 2: full to off - conditions = { - condition = "template"; - # TODO: it seems like the devices respond with brightness-1 , maybe off-by-one somewhere? - value_template = ''{{ states("${light}") == "on" and state_attr("${light}","brightness") >= ${toString (maxbright - 1)}}}''; - }; - sequence = [ - { - service = "light.turn_off"; - data = { - entity_id = light; - }; - } - ]; - } - ]; - # default: on to off - # this works because state 0 checks for "state == off" - default = [{ - service = "light.turn_off"; - data = { - entity_id = light; - }; - }]; - }; - }; - turn_off_all = btn: + inherit (import ../lib) btn_cycle_light; + turn_off_all = btn: #lights: { alias = "Turn of all lights via ${btn} double click"; trigger = { @@ -84,14 +11,17 @@ let }; action = { service = "light.turn_off"; + #entity_id = lights; entity_id = "all"; }; }; in { services.home-assistant.config.automation = [ - # (btn_state "light.arbeitszimmerbeleuchtung" "arbeitszimmer_btn1") - (btn_state "light.schlafzimmer_komode_osram" "schlafzimmer_btn2" 128) - # (btn_state "light.wohnzimmerbeleuchtung" "wohnzimmer_btn3") - (turn_off_all "schlafzimmer_btn2") + # (btn_cycle_light "light.arbeitszimmerbeleuchtung" "arbeitszimmer_btn1") + (btn_cycle_light "light.schlafzimmer_komode_osram" "schlafzimmer_btn2" 128) + + (btn_cycle_light "light.keller_osram" "keller_btn1" 128) + # (btn_cycle_light "light.wohnzimmerbeleuchtung" "wohnzimmer_btn3") + (turn_off_all "schlafzimmer_btn2" ) ]; } diff --git a/makefu/2configs/home/ham/default.nix b/makefu/2configs/home/ham/default.nix index 79f26a053..cb42f32aa 100644 --- a/makefu/2configs/home/ham/default.nix +++ b/makefu/2configs/home/ham/default.nix @@ -1,5 +1,4 @@ { pkgs, lib, config, ... }: - # Ideas: ## wake-on-lan server ## @@ -33,6 +32,7 @@ in { ./automation/firetv_restart.nix ./automation/light_buttons.nix ./automation/wohnzimmer_rf_fernbedienung.nix + ./automation/ladestecker_timer.nix #./automation/giesskanne.nix ./automation/pflanzen_giessen_erinnerung.nix #./automation/urlaub.nix diff --git a/makefu/2configs/home/ham/lib/default.nix b/makefu/2configs/home/ham/lib/default.nix index 45c86138b..75be52737 100644 --- a/makefu/2configs/home/ham/lib/default.nix +++ b/makefu/2configs/home/ham/lib/default.nix @@ -40,5 +40,81 @@ in entity = "firetv"; }; }; + zigbee.prefix = "/ham/zigbee"; + + btn_cycle_light = light: btn: halfbright: + let + maxbright = 255; + transition = 0.2; # seconds + in + # this function implements a simple state machine based on the state and brightness of the light (light must support brightness + { + alias = "Cycle through states of ${light} via button ${btn}"; + trigger = { + platform = "state"; + entity_id = "sensor.${btn}_click"; + to = "single"; + }; + action = { + choose = [ + { + # state 0: off to half + conditions = { + condition = "template"; + value_template = ''{{ states("${light}") == "off" }}''; + }; + sequence = [ + { + service = "light.turn_on"; + data = { + entity_id = light; + brightness = halfbright; + }; + } + ]; + } + { + # state 1: half to full + conditions = { + condition = "template"; + value_template = ''{{ states('${light}') == 'on' and ( ${toString (halfbright - 1)} <= state_attr("${light}","brightness") <= ${toString (halfbright + 1)})}}''; + }; + sequence = [ + { + service = "light.turn_on"; + data = { + entity_id = light; + brightness = maxbright; + }; + } + ]; + } + { + # state 2: full to off + conditions = { + condition = "template"; + # TODO: it seems like the devices respond with brightness-1 , maybe off-by-one somewhere? + value_template = ''{{ states("${light}") == "on" and state_attr("${light}","brightness") >= ${toString (maxbright - 1)}}}''; + }; + sequence = [ + { + service = "light.turn_off"; + data = { + entity_id = light; + }; + } + ]; + } + ]; + # default: on to off + # this works because state 0 checks for "state == off" + default = [{ + service = "light.turn_off"; + data = { + entity_id = light; + }; + }]; + }; + }; } diff --git a/makefu/5pkgs/beef/Gemfile b/makefu/5pkgs/beef/Gemfile index da13e1fb8..759ba2d23 100644 --- a/makefu/5pkgs/beef/Gemfile +++ b/makefu/5pkgs/beef/Gemfile @@ -1,53 +1,38 @@ # BeEF's Gemfile # -# Copyright (c) 2006-2018 Wade Alcorn - wade@bindshell.net +# Copyright (c) 2006-2021 Wade Alcorn - wade@bindshell.net # Browser Exploitation Framework (BeEF) - http://beefproject.com # See the file 'doc/COPYING' for copying permission # - +#gem 'simplecov', require: false, group: :test gem 'eventmachine' gem 'thin' -gem 'sinatra', '~> 2.0' -gem 'rack', '~> 2.0' -gem 'rack-protection', '~> 2.0' +gem 'sinatra', '>= 2.0.2' +gem 'rack', '>= 2.2.3' +gem 'rack-protection', '>= 2.0.0' gem 'em-websocket' # WebSocket support -gem 'uglifier' +gem 'uglifier', '>= 2.7.2' gem 'mime-types' gem 'execjs' gem 'ansi' gem 'term-ansicolor', :require => 'term/ansicolor' -gem 'dm-core' gem 'json' -gem 'data_objects' -gem 'rubyzip', '>= 1.2.1' +gem 'rubyzip', '>= 1.2.2' gem 'espeak-ruby', '>= 1.0.4' # Text-to-Voice -gem 'nokogiri', '>= 1.7' -gem 'rake' - -# SQLite support -group :sqlite do - gem 'dm-sqlite-adapter' -end - -# PostgreSQL support -group :postgres do - #gem dm-postgres-adapter -end - -# MySQL support -group :mysql do - #gem dm-mysql-adapter -end +gem 'nokogiri', '>= 1.11.1' +gem 'rake', '>= 12.3.3' +gem 'otr-activerecord', '>= 1.4.2' +gem 'sqlite3' +gem 'rubocop', '~> 0.92.0', require: false # Geolocation support group :geoip do - gem 'geoip' + gem 'maxmind-db' end gem 'parseconfig' gem 'erubis' -gem 'dm-migrations' # Metasploit Integration extension group :ext_msf do @@ -67,12 +52,7 @@ end # DNS extension group :ext_dns do - gem 'rubydns', '~> 0.7.3' -end - -# network extension -group :ext_network do - gem 'dm-serializer' + gem 'async-dns' end # QRcode extension @@ -82,24 +62,32 @@ end # For running unit tests group :test do - if ENV['BEEF_TEST'] gem 'test-unit' gem 'test-unit-full' gem 'rspec' + gem 'rdoc' # curb gem requires curl libraries # sudo apt-get install libcurl4-openssl-dev gem 'curb' # selenium-webdriver 3.x is incompatible with Firefox version 48 and prior - gem 'selenium' - gem 'selenium-webdriver', '~> 2.53.4' + # gem 'selenium' # Requires old version of selenium which is no longer available + gem 'geckodriver-helper' + gem 'selenium-webdriver' # nokogirl is needed by capybara which may require one of the below commands # sudo apt-get install libxslt-dev libxml2-dev # sudo port install libxml2 libxslt gem 'capybara' # RESTful API tests/generic command module tests gem 'rest-client', '>= 2.0.1' - gem 'byebug' - end + gem 'irb' + gem 'pry-byebug' + gem "websocket-client-simple", "~> 0.3.0" + gem "browserstack-local", "~> 1.3" end source 'https://rubygems.org' + + + + + diff --git a/makefu/5pkgs/beef/Gemfile.lock b/makefu/5pkgs/beef/Gemfile.lock index 8f18bf220..fa6f32335 100644 --- a/makefu/5pkgs/beef/Gemfile.lock +++ b/makefu/5pkgs/beef/Gemfile.lock @@ -1,182 +1,297 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.5.2) - public_suffix (>= 2.0.2, < 4.0) + activemodel (6.1.4) + activesupport (= 6.1.4) + activerecord (6.1.4) + activemodel (= 6.1.4) + activesupport (= 6.1.4) + activesupport (6.1.4) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + zeitwerk (~> 2.3) + addressable (2.8.0) + public_suffix (>= 2.0.2, < 5.0) ansi (1.5.0) + archive-zip (0.12.0) + io-like (~> 0.3.0) + ast (2.4.2) + async (1.30.1) + console (~> 1.10) + nio4r (~> 2.3) + timers (~> 4.1) + async-dns (1.2.6) + async-io (~> 1.15) + async-io (1.32.2) + async + browserstack-local (1.3.0) buftok (0.2.0) - chunky_png (1.3.10) - daemons (1.2.6) - data_objects (0.10.17) - addressable (~> 2.1) - dm-core (1.2.1) - addressable (~> 2.3) - dm-do-adapter (1.2.0) - data_objects (~> 0.10.6) - dm-core (~> 1.2.0) - dm-migrations (1.2.0) - dm-core (~> 1.2.0) - dm-serializer (1.2.2) - dm-core (~> 1.2.0) - fastercsv (~> 1.5) - json (~> 1.6) - json_pure (~> 1.6) - multi_json (~> 1.0) - dm-sqlite-adapter (1.2.0) - dm-do-adapter (~> 1.2.0) - do_sqlite3 (~> 0.10.6) - do_sqlite3 (0.10.17) - data_objects (= 0.10.17) - domain_name (0.5.20180417) + byebug (11.1.3) + capybara (3.35.3) + addressable + mini_mime (>= 0.1.3) + nokogiri (~> 1.8) + rack (>= 1.6.0) + rack-test (>= 0.6.3) + regexp_parser (>= 1.5, < 3.0) + xpath (~> 3.2) + childprocess (3.0.0) + coderay (1.1.3) + concurrent-ruby (1.1.9) + console (1.13.1) + fiber-local + curb (0.9.11) + daemons (1.4.0) + diff-lcs (1.4.4) + domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) - em-websocket (0.5.1) + em-websocket (0.5.2) eventmachine (>= 0.12.9) http_parser.rb (~> 0.6.0) equalizer (0.0.11) erubis (2.7.0) espeak-ruby (1.0.4) - eventmachine (1.0.9.1) - execjs (2.7.0) - fastercsv (1.5.5) - filesize (0.1.1) - geoip (1.6.4) - http (3.3.0) + event_emitter (0.2.6) + eventmachine (1.2.7) + execjs (2.8.1) + ffi (1.15.3) + ffi-compiler (1.0.1) + ffi (>= 1.0.0) + rake + fiber-local (1.0.0) + geckodriver-helper (0.24.0) + archive-zip (~> 0.7) + hashie (4.1.0) + hashie-forbidden_attributes (0.1.1) + hashie (>= 3.0) + http (4.4.1) addressable (~> 2.3) http-cookie (~> 1.0) - http-form_data (~> 2.0) - http_parser.rb (~> 0.6.0) - http-cookie (1.0.3) + http-form_data (~> 2.2) + http-parser (~> 1.2.0) + http-accept (1.7.0) + http-cookie (1.0.4) domain_name (~> 0.5) - http-form_data (2.1.1) + http-form_data (2.3.0) + http-parser (1.2.3) + ffi-compiler (>= 1.0, < 2.0) http_parser.rb (0.6.0) - jsobfu (0.4.2) - rkelly-remix - json (1.8.6) - json_pure (1.8.6) + i18n (1.8.10) + concurrent-ruby (~> 1.0) + io-console (0.5.9) + io-like (0.3.1) + irb (1.3.6) + reline (>= 0.2.5) + json (2.5.1) + maxmind-db (1.1.1) memoizable (0.4.2) thread_safe (~> 0.3, >= 0.3.1) - metasm (1.0.3) - mime-types (3.2.2) + method_source (1.0.0) + mime-types (3.3.1) mime-types-data (~> 3.2015) - mime-types-data (3.2018.0812) - mini_portile2 (2.3.0) - mojo_magick (0.5.6) - msfrpc-client (1.1.1) + mime-types-data (3.2021.0704) + mini_mime (1.1.0) + mini_portile2 (2.6.1) + minitest (5.14.4) + mojo_magick (0.6.6) + msfrpc-client (1.1.2) msgpack (~> 1) - rex (~> 2) - msgpack (1.2.4) - multi_json (1.13.1) - multipart-post (2.0.0) - mustermann (1.0.2) + msgpack (1.4.2) + multipart-post (2.1.1) + mustermann (1.1.1) + ruby2_keywords (~> 0.0.1) naught (1.1.0) netrc (0.11.0) - nokogiri (1.8.4) - mini_portile2 (~> 2.3.0) - parseconfig (1.0.8) - public_suffix (3.0.3) - qr4r (0.4.1) - mojo_magick - rqrcode - rack (2.0.5) - rack-protection (2.0.3) + nio4r (2.5.8) + nokogiri (1.12.2) + mini_portile2 (~> 2.6.1) + racc (~> 1.4) + otr-activerecord (2.0.1) + activerecord (>= 4.0, < 6.3) + hashie-forbidden_attributes (~> 0.1) + parallel (1.20.1) + parseconfig (1.1.0) + parser (3.0.2.0) + ast (~> 2.4.1) + power_assert (2.0.0) + pry (0.13.1) + coderay (~> 1.1) + method_source (~> 1.0) + pry-byebug (3.9.0) + byebug (~> 11.0) + pry (~> 0.13.0) + public_suffix (4.0.6) + qr4r (0.6.1) + mojo_magick (~> 0.6.5) + rqrcode_core (~> 0.1) + racc (1.5.2) + rack (2.2.3) + rack-protection (2.1.0) rack + rack-test (1.1.0) + rack (>= 1.0, < 3) rainbow (3.0.0) - rake (12.3.1) - rb-readline (0.5.5) - rest-client (2.0.2) + rake (13.0.6) + rdoc (6.3.2) + regexp_parser (2.1.1) + reline (0.2.6) + io-console (~> 0.5) + rest-client (2.1.0) + http-accept (>= 1.7.0, < 2.0) http-cookie (>= 1.0.2, < 2.0) mime-types (>= 1.16, < 4.0) netrc (~> 0.8) - rex (2.0.11) - filesize - jsobfu (~> 0.4.1) - json - metasm (~> 1.0.2) - nokogiri - rb-readline - robots - rexec (1.6.3) - rainbow - rkelly-remix (0.0.7) - robots (0.10.1) - rqrcode (0.10.1) - chunky_png (~> 1.0) - rubydns (0.7.3) - eventmachine (~> 1.0.0) - rexec (~> 1.6.2) - rubyzip (1.2.1) + rexml (3.2.5) + rqrcode_core (0.2.0) + rr (3.0.5) + rspec (3.10.0) + rspec-core (~> 3.10.0) + rspec-expectations (~> 3.10.0) + rspec-mocks (~> 3.10.0) + rspec-core (3.10.1) + rspec-support (~> 3.10.0) + rspec-expectations (3.10.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.10.0) + rspec-mocks (3.10.2) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.10.0) + rspec-support (3.10.2) + rubocop (0.92.0) + parallel (~> 1.10) + parser (>= 2.7.1.5) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.7) + rexml + rubocop-ast (>= 0.5.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 1.4.0, < 2.0) + rubocop-ast (1.8.0) + parser (>= 3.0.1.1) + ruby-progressbar (1.11.0) + ruby2_keywords (0.0.5) + rubyzip (2.3.2) rushover (0.3.0) json rest-client + selenium-webdriver (3.142.7) + childprocess (>= 0.5, < 4.0) + rubyzip (>= 1.2.2) simple_oauth (0.3.1) - sinatra (2.0.3) + sinatra (2.1.0) mustermann (~> 1.0) - rack (~> 2.0) - rack-protection (= 2.0.3) + rack (~> 2.2) + rack-protection (= 2.1.0) tilt (~> 2.0) - slack-notifier (2.3.2) - term-ansicolor (1.6.0) + slack-notifier (2.4.0) + sqlite3 (1.4.2) + sync (0.5.0) + term-ansicolor (1.7.1) tins (~> 1.0) - thin (1.7.2) + test-unit (3.4.4) + power_assert + test-unit-context (0.5.1) + test-unit (>= 2.4.0) + test-unit-full (0.0.5) + test-unit + test-unit-context + test-unit-notify + test-unit-rr + test-unit-runner-tap + test-unit-notify (1.0.4) + test-unit (>= 2.4.9) + test-unit-rr (1.0.5) + rr (>= 1.1.1) + test-unit (>= 2.5.2) + test-unit-runner-tap (1.1.2) + test-unit + thin (1.8.1) daemons (~> 1.0, >= 1.0.9) eventmachine (~> 1.0, >= 1.0.4) rack (>= 1, < 3) thread_safe (0.3.6) - tilt (2.0.8) - tins (1.16.3) - twitter (6.2.0) + tilt (2.0.10) + timers (4.3.3) + tins (1.29.1) + sync + twitter (7.0.0) addressable (~> 2.3) buftok (~> 0.2.0) equalizer (~> 0.0.11) - http (~> 3.0) + http (~> 4.0) http-form_data (~> 2.0) http_parser.rb (~> 0.6.0) memoizable (~> 0.4.0) multipart-post (~> 2.0) naught (~> 1.0) simple_oauth (~> 0.3.0) - uglifier (4.1.18) + tzinfo (2.0.4) + concurrent-ruby (~> 1.0) + uglifier (4.2.0) execjs (>= 0.3.0, < 3) unf (0.1.4) unf_ext - unf_ext (0.0.7.5) - xmlrpc (0.3.0) + unf_ext (0.0.7.7) + unicode-display_width (1.7.0) + webrick (1.7.0) + websocket (1.2.9) + websocket-client-simple (0.3.0) + event_emitter + websocket + xmlrpc (0.3.2) + webrick + xpath (3.2.0) + nokogiri (~> 1.8) + zeitwerk (2.4.2) PLATFORMS ruby DEPENDENCIES ansi - data_objects - dm-core - dm-migrations - dm-serializer - dm-sqlite-adapter + async-dns + browserstack-local (~> 1.3) + capybara + curb em-websocket erubis espeak-ruby (>= 1.0.4) eventmachine execjs - geoip + geckodriver-helper + irb json + maxmind-db mime-types msfrpc-client - nokogiri (>= 1.7) + nokogiri (>= 1.11.1) + otr-activerecord (>= 1.4.2) parseconfig + pry-byebug qr4r - rack (~> 2.0) - rack-protection (~> 2.0) - rake - rubydns (~> 0.7.3) - rubyzip (>= 1.2.1) + rack (>= 2.2.3) + rack-protection (>= 2.0.0) + rake (>= 12.3.3) + rdoc + rest-client (>= 2.0.1) + rspec + rubocop (~> 0.92.0) + rubyzip (>= 1.2.2) rushover - sinatra (~> 2.0) + selenium-webdriver + sinatra (>= 2.0.2) slack-notifier + sqlite3 term-ansicolor + test-unit + test-unit-full thin twitter (>= 5.0.0) - uglifier + uglifier (>= 2.7.2) + websocket-client-simple (~> 0.3.0) xmlrpc BUNDLED WITH - 1.14.6 + 2.1.4 diff --git a/makefu/5pkgs/beef/gemset.nix b/makefu/5pkgs/beef/gemset.nix index 3ccd7340b..507ef9a27 100644 --- a/makefu/5pkgs/beef/gemset.nix +++ b/makefu/5pkgs/beef/gemset.nix @@ -1,12 +1,47 @@ { + activemodel = { + dependencies = ["activesupport"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xjy8fg7n5wwv29ngvvdf5r6815s5f0knzyswxh8w6z8f8qj5wr7"; + type = "gem"; + }; + version = "6.1.4"; + }; + activerecord = { + dependencies = ["activemodel" "activesupport"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "18897s9h9kha8vgky1yfq4x91m3p81k6rkrb1fgjlnqnvarh9vg0"; + type = "gem"; + }; + version = "6.1.4"; + }; + activesupport = { + dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kqgywy4cj3h5142dh7pl0xx5nybp25jn0ykk0znziivzks68xdk"; + type = "gem"; + }; + version = "6.1.4"; + }; addressable = { dependencies = ["public_suffix"]; + groups = ["default" "ext_notifications" "test"]; + platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk"; + sha256 = "022r3m9wdxljpbya69y2i3h9g3dhhfaqzidf95m6qjzms792jvgp"; type = "gem"; }; - version = "2.5.2"; + version = "2.8.0"; }; ansi = { source = { @@ -16,6 +51,70 @@ }; version = "1.5.0"; }; + archive-zip = { + dependencies = ["io-like"]; + groups = ["default" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0ywpxgmhazmqcsjf3qhim3rdnbyjjl9nkj91kqgmrjq5q8j0r386"; + type = "gem"; + }; + version = "0.12.0"; + }; + ast = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y"; + type = "gem"; + }; + version = "2.4.2"; + }; + async = { + dependencies = ["console" "nio4r" "timers"]; + groups = ["default" "ext_dns"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mdv66xn5xjyaidyrp66mfnx7d4habkbfmx9y57k75h5q6fd2b65"; + type = "gem"; + }; + version = "1.30.1"; + }; + async-dns = { + dependencies = ["async-io"]; + groups = ["ext_dns"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1jwgzdp0qi31c8wlflhqvjj5w1vfwyai9j2yzxrpsqjzcmwhiv90"; + type = "gem"; + }; + version = "1.2.6"; + }; + async-io = { + dependencies = ["async"]; + groups = ["default" "ext_dns"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10l9m0x2ffvsaaxc4mfalrljjx13njkyir9w6yfif8wpszc291h8"; + type = "gem"; + }; + version = "1.32.2"; + }; + browserstack-local = { + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wch4m064szfkk9fyp7f1yvkpbc3ajqdql0k4pjmqj2z38spsz9i"; + type = "gem"; + }; + version = "1.3.0"; + }; buftok = { source = { remotes = ["https://rubygems.org"]; @@ -24,102 +123,119 @@ }; version = "0.2.0"; }; - chunky_png = { + byebug = { + groups = ["default" "test"]; + platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "05g2xli9wbjylkmblln3bhvjalziwb92q452q8ibjagmb853424w"; + sha256 = "0nx3yjf4xzdgb8jkmk2344081gqr22pgjqnmjg2q64mj5d6r9194"; type = "gem"; }; - version = "1.3.10"; + version = "11.1.3"; }; - daemons = { + capybara = { + dependencies = ["addressable" "mini_mime" "nokogiri" "rack" "rack-test" "regexp_parser" "xpath"]; + groups = ["test"]; + platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0lxqq6dgb8xhliywar2lvkwqy2ssraf9dk4b501pb4ixc2mvxbp2"; + sha256 = "1viqcpsngy9fqjd68932m43ad6xj656d1x33nx9565q57chgi29k"; type = "gem"; }; - version = "1.2.6"; + version = "3.35.3"; }; - data_objects = { - dependencies = ["addressable"]; + childprocess = { + groups = ["default" "test"]; + platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "19fw1ckqc5f1wc4r72qrymy2k6cmd8azbxpn61ksbsjqhzc2bgqd"; + sha256 = "1ic028k8xgm2dds9mqnvwwx3ibaz32j8455zxr9f4bcnviyahya5"; type = "gem"; }; - version = "0.10.17"; + version = "3.0.0"; }; - dm-core = { - dependencies = ["addressable"]; + coderay = { + groups = ["default" "test"]; + platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "09x67ka6f1lxh4iwrg87iama0haq0d0z35gavvnvzpx9kn9pfbnw"; + sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw"; type = "gem"; }; - version = "1.2.1"; + version = "1.1.3"; }; - dm-do-adapter = { - dependencies = ["data_objects" "dm-core"]; + concurrent-ruby = { + groups = ["default"]; + platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1v84lsmsq8kawl8k4qz2h87xqc1sr10c08wwasrxbcgrkvp7qk4q"; + sha256 = "0nwad3211p7yv9sda31jmbyw6sdafzmdi2i2niaz6f0wk5nq9h0f"; type = "gem"; }; - version = "1.2.0"; + version = "1.1.9"; }; - dm-migrations = { - dependencies = ["dm-core"]; + console = { + dependencies = ["fiber-local"]; + groups = ["default" "ext_dns"]; + platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "04hr8qgm4j1z5fg0cfpr8r6apvk5xykad0d0xqfg48rjv5rdwc0i"; + sha256 = "04vhg3vnj2ky00fld4v6qywx32z4pjsa7l8i7sl1bl213s8334l9"; type = "gem"; }; - version = "1.2.0"; + version = "1.13.1"; }; - dm-serializer = { - dependencies = ["dm-core" "fastercsv" "json" "json_pure" "multi_json"]; + curb = { + groups = ["test"]; + platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0mvpb2d4cniysw45d3c9xidjpdb3wmfl7x5lgvnsfm69wq24v5y4"; + sha256 = "1q7kqswm780vx1fannnrprbfbsp166smgyszgip5q7b859mk89wp"; type = "gem"; }; - version = "1.2.2"; + version = "0.9.11"; }; - dm-sqlite-adapter = { - dependencies = ["dm-do-adapter" "do_sqlite3"]; + daemons = { + groups = ["default"]; + platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0mq9xrw4jwb753sy8902rq9sfv62mzss2n3875g51i9acqy475hc"; + sha256 = "1fki1aipqafqlg8xy25ykk0ql1dciy9kk6lcp5gzgkh9ccmaxzf3"; type = "gem"; }; - version = "1.2.0"; + version = "1.4.0"; }; - do_sqlite3 = { - dependencies = ["data_objects"]; + diff-lcs = { + groups = ["default" "test"]; + platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0gxz54qjgwg6a2mkqpai28m0i5swbyxpr4qmh9x1nwf20lysrgcf"; + sha256 = "0m925b8xc6kbpnif9dldna24q1szg4mk0fvszrki837pfn46afmz"; type = "gem"; }; - version = "0.10.17"; + version = "1.4.4"; }; domain_name = { dependencies = ["unf"]; + groups = ["default" "ext_notifications" "test"]; + platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0abdlwb64ns7ssmiqhdwgl27ly40x2l27l8hs8hn0z4kb3zd2x3v"; + sha256 = "0lcqjsmixjp52bnlgzh4lg9ppsk52x9hpwdjd53k8jnbah2602h0"; type = "gem"; }; - version = "0.5.20180417"; + version = "0.5.20190701"; }; em-websocket = { |