From 5f2e034f106bf89dc687af118fe366fb7eb7a7d9 Mon Sep 17 00:00:00 2001 From: netali Date: Thu, 23 Nov 2023 16:56:02 +0100 Subject: [PATCH 1/4] zammad: remove yarn steps from update script --- pkgs/applications/networking/misc/zammad/update.sh | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pkgs/applications/networking/misc/zammad/update.sh b/pkgs/applications/networking/misc/zammad/update.sh index dd030f10f0e6..b97e75e4bd59 100755 --- a/pkgs/applications/networking/misc/zammad/update.sh +++ b/pkgs/applications/networking/misc/zammad/update.sh @@ -55,11 +55,6 @@ pushd $SOURCE_DIR echo ":: Creating gemset.nix" bundix --lockfile=./Gemfile.lock --gemfile=./Gemfile --gemset=$TARGET_DIR/gemset.nix -echo ":: Creating yarn.nix" -yarn install -cp yarn.lock $TARGET_DIR -yarn2nix > $TARGET_DIR/yarn.nix - # needed to avoid import from derivation jq --arg VERSION "$VERSION" '. += {name: "Zammad", version: $VERSION}' package.json > $TARGET_DIR/package.json From d3fff8b08cb017669607abd3f29be816af8d8852 Mon Sep 17 00:00:00 2001 From: netali Date: Thu, 23 Nov 2023 16:56:39 +0100 Subject: [PATCH 2/4] zammad: 5.4.1 -> 6.1.0 --- .../networking/misc/zammad/0001-nulldb.patch | 2 +- .../networking/misc/zammad/default.nix | 20 +- .../networking/misc/zammad/gemset.nix | 649 +++++++++++------- .../networking/misc/zammad/package.json | 195 +++--- .../networking/misc/zammad/source.json | 4 +- 5 files changed, 509 insertions(+), 361 deletions(-) diff --git a/pkgs/applications/networking/misc/zammad/0001-nulldb.patch b/pkgs/applications/networking/misc/zammad/0001-nulldb.patch index 61971525b99d..cf024c998b6c 100644 --- a/pkgs/applications/networking/misc/zammad/0001-nulldb.patch +++ b/pkgs/applications/networking/misc/zammad/0001-nulldb.patch @@ -7,7 +7,7 @@ index d85a17491..90ea5e387 100644 require 'rails/all' +require 'nulldb' - require_relative 'issue_2656_workaround_for_rails_issue_33600' + require_relative '../lib/zammad/safe_mode' # DO NOT REMOVE THIS LINE - see issue #2037 diff --git a/db/schema.rb b/db/schema.rb diff --git a/pkgs/applications/networking/misc/zammad/default.nix b/pkgs/applications/networking/misc/zammad/default.nix index b69f90d321a4..4b8a397afa8f 100644 --- a/pkgs/applications/networking/misc/zammad/default.nix +++ b/pkgs/applications/networking/misc/zammad/default.nix @@ -19,11 +19,12 @@ , yarn2nix-moretea , v8 , cacert +, redis }: let pname = "zammad"; - version = "5.4.1"; + version = "6.1.0"; src = applyPatches { @@ -100,7 +101,7 @@ let offlineCache = fetchYarnDeps { yarnLock = "${src}/yarn.lock"; - hash = "sha256-HI4RR4/ll/zNBNtDCb8OvEsG/BMVYacM0CcYqbkNHEY="; + hash = "sha256-PVQ2L+Io6Ct9UHvfoQmxV01ECG8fj0+xKwpMfAvD7q0="; }; yarnPreBuild = '' @@ -124,13 +125,26 @@ stdenv.mkDerivation { cacert ]; + nativeBuildInputs = [ + redis + ]; + RAILS_ENV = "production"; buildPhase = '' node_modules=${yarnEnv}/libexec/Zammad/node_modules ${yarn2nix-moretea.linkNodeModulesHook} + mkdir redis-work + pushd redis-work + redis-server & + REDIS_PID=$! + popd + rake DATABASE_URL="nulldb://user:pass@127.0.0.1/dbname" assets:precompile + + kill $REDIS_PID + rm -r redis-work ''; installPhase = '' @@ -151,6 +165,6 @@ stdenv.mkDerivation { homepage = "https://zammad.org"; license = licenses.agpl3Plus; platforms = [ "x86_64-linux" "aarch64-linux" ]; - maintainers = with maintainers; [ n0emis garbas taeer ]; + maintainers = with maintainers; [ n0emis taeer netali ]; }; } diff --git a/pkgs/applications/networking/misc/zammad/gemset.nix b/pkgs/applications/networking/misc/zammad/gemset.nix index bf33453ca6f8..3c96ab18ef8c 100644 --- a/pkgs/applications/networking/misc/zammad/gemset.nix +++ b/pkgs/applications/networking/misc/zammad/gemset.nix @@ -16,10 +16,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0bndmmby5qxq8rs42fbb2ax3hhbjj2ds8wja08s0iadkbrn7shvf"; + sha256 = "1fdbks9byqqlkd6glj6lkz5f1z6948hh8fhv9x5pzqciralmz142"; type = "gem"; }; - version = "6.1.7.3"; + version = "6.1.7.6"; }; actionmailbox = { dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail"]; @@ -27,10 +27,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0cx00kf0syq5gdhlrmw0q9v92ki55drbsk4gzy86ls2q8xkd792s"; + sha256 = "1rfya6qgsl14cm9l2w7h7lg4znsyg3gqiskhqr8wn76sh0x2hln0"; type = "gem"; }; - version = "6.1.7.3"; + version = "6.1.7.6"; }; actionmailer = { dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "rails-dom-testing"]; @@ -38,10 +38,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0vbif021cyndq3v3m61dkmgdbbirqk9zcsszb9nisq24m3gx1aai"; + sha256 = "0jr9jpf542svzqz8x68s08jnf30shxrrh7rq1a0s7jia5a5zx3qd"; type = "gem"; }; - version = "6.1.7.3"; + version = "6.1.7.6"; }; actionpack = { dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"]; @@ -49,10 +49,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0k6hc7klvn8m88b88vykl83jrpqhn4zz67l2zx9v266xga6fhala"; + sha256 = "0vf6ncs647psa9p23d2108zgmlf0pr7gcjr080yg5yf68gyhs53k"; type = "gem"; }; - version = "6.1.7.3"; + version = "6.1.7.6"; }; actiontext = { dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "nokogiri"]; @@ -60,10 +60,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "16ldxyxlxl9scggpmkww2fxzim7sl2b4js610pvddcsr74z9fjs7"; + sha256 = "1i8s3v6m8q3y17c40l6d3k2vs1mdqr0y1lfm7i6dfbj2y673lk9r"; type = "gem"; }; - version = "6.1.7.3"; + version = "6.1.7.6"; }; actionview = { dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"]; @@ -71,10 +71,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0ck02cfc17s6g05qn0k7khwvvazwbf2rxbjcma8px2nw2j1ngvcn"; + sha256 = "1s4c1n5lv31sc7w4w74xz8gzyq3sann00bm4l7lxgy3vgi2wqkid"; type = "gem"; }; - version = "6.1.7.3"; + version = "6.1.7.6"; }; activejob = { dependencies = ["activesupport" "globalid"]; @@ -82,10 +82,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "05bkw9qgjgj2nxzjj2fh6jp1fcvgff0aa4r77k0gcfmnzc1g8wdl"; + sha256 = "1641003plszig5ybhrqy90fv43l1vcai5h35qmhh9j12byk5hp26"; type = "gem"; }; - version = "6.1.7.3"; + version = "6.1.7.6"; }; activemodel = { dependencies = ["activesupport"]; @@ -93,10 +93,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "03hy5bwghdklcxbdylmsq70y0qzslck5slb2zkvp7g6mmvk86kwd"; + sha256 = "148szdj5jlnfpv3nmy8cby8rxgpdvs43f3rzqby1f7a0l2knd3va"; type = "gem"; }; - version = "6.1.7.3"; + version = "6.1.7.6"; }; activerecord = { dependencies = ["activemodel" "activesupport"]; @@ -104,10 +104,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1alshkgbcxp9s4vqb2b0yrrnyg15kxhlp1slsb03a61w7h42pspw"; + sha256 = "0n7hg582ajdncilfk1kkw8qfdchymp2gqgkad1znlhlmclihsafr"; type = "gem"; }; - version = "6.1.7.3"; + version = "6.1.7.6"; }; activerecord-import = { dependencies = ["activerecord"]; @@ -115,10 +115,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1cwm95795c6j5hk76csdkfg7ad228cmp086shkcmhnad4mycbh4m"; + sha256 = "12prkcp68jqpbl06lv46n7cgbvgsxmjwkn88q36wh9rz9bvlpbhg"; type = "gem"; }; - version = "1.4.1"; + version = "1.5.0"; }; activerecord-nulldb-adapter = { dependencies = ["activerecord"]; @@ -126,10 +126,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1c0f7fn06fzc7pn0dydchnq6xgcaga9rbzhmin5z5xvg5nkv783c"; + sha256 = "07lx5l6dgippsywwfq1c9ykf5iza75520gam465kz9hsifp6xp7i"; type = "gem"; }; - version = "0.8.0"; + version = "0.9.0"; }; activerecord-session_store = { dependencies = ["actionpack" "activerecord" "multi_json" "rack" "railties"]; @@ -148,10 +148,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "06w4wlabqqr9bwdig44r5vdwkcbbivwgwn2fl775w7h05vrccgp8"; + sha256 = "16pylwnqsbvq2wxhl7k1rnravbr3dgpjmnj0psz5gijgkydd52yc"; type = "gem"; }; - version = "6.1.7.3"; + version = "6.1.7.6"; }; activesupport = { dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"]; @@ -159,10 +159,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "06mihpy83a5xmavvn7l8vbix472dsi0vh30xj6g594k0679m0ir6"; + sha256 = "1nhrdih0rk46i0s6x7nqhbypmj1hf23zl5gfl9xasb6k4r2a1dxk"; type = "gem"; }; - version = "6.1.7.3"; + version = "6.1.7.6"; }; acts_as_list = { dependencies = ["activerecord"]; @@ -181,10 +181,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1ypdmpdn20hxp5vwxz3zc04r5xcwqc25qszdlg41h8ghdqbllwmw"; + sha256 = "05r1fwy487klqkya7vzia8hnklcxy4vr92m9dmni3prfwk6zpw33"; type = "gem"; }; - version = "2.8.1"; + version = "2.8.5"; + }; + android_key_attestation = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "02spc1sh7zsljl02v9d5rdb717b628vw2k7jkkplifyjk4db0zj6"; + type = "gem"; + }; + version = "0.3.0"; }; argon2 = { dependencies = ["ffi" "ffi-compiler"]; @@ -226,10 +236,40 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "020v30xd1v2yvyfshbii497c83n4kafc6967pwmgl54sxkx04xwq"; + sha256 = "0hax4yd41f61ypfs7f0snjzbcgpp19s9d2i0bv4hyjv21kkdz736"; type = "gem"; }; - version = "10.4.7.0"; + version = "10.4.13.0"; + }; + awrence = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gj8f8c54r9cabkm41s59sa1ca5wpbipw7gq3sfl87x9296227fx"; + type = "gem"; + }; + version = "1.2.1"; + }; + base64 = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0cydk9p2cv25qysm0sn2pb97fcpz1isa7n3c8xm1gd99li8x6x8c"; + type = "gem"; + }; + version = "0.1.1"; + }; + bindata = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04y4zgh4bbcb8wmkxwfqg4saky1d1f3xw8z6yk543q13h8ky8rz5"; + type = "gem"; + }; + version = "2.4.15"; }; binding_of_caller = { dependencies = ["debug_inspector"]; @@ -269,10 +309,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0lcxxlrzgpi9z2mr2v19xda6fdysmn5psa9bsp2rksa915v91fds"; + sha256 = "1gliwnyma9f1mpr928c79i36q51yl68dwjd3jgwvsyr4piiiqr1r"; type = "gem"; }; - version = "5.4.0"; + version = "6.0.1"; }; browser = { groups = ["default"]; @@ -330,10 +370,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "123198zk2ak8mziwa5jc3ckgpmsg08zn064n3aywnqm9s1bwjv3v"; + sha256 = "114qm5f5vhwaaw9rj1h2lcamh46zl13v1m18jiw68zl961gwmw6n"; type = "gem"; }; - version = "3.38.0"; + version = "3.39.2"; + }; + cbor = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0511idr8xps9625nh3kxr68sdy6l3xy2kcz7r57g47fxb1v18jj3"; + type = "gem"; + }; + version = "0.5.9.6"; }; childprocess = { groups = ["default" "development" "test"]; @@ -434,10 +484,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1qnsflsbjj38im8xq35g0vihlz96h09wjn2dad5g543l3vvrkrx5"; + sha256 = "0krcwb6mn0iklajwngwsg850nk8k9b35dhmc2qkbdqvmifdi2y9q"; type = "gem"; }; - version = "1.2.0"; + version = "1.2.2"; + }; + cose = { + dependencies = ["cbor" "openssl-signature_algorithm"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00c6x4ha7qiaaf88qdbyf240mk146zz78rbm4qwyaxmwlmk7q933"; + type = "gem"; + }; + version = "1.3.0"; }; crack = { dependencies = ["rexml"]; @@ -465,10 +526,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0l5f5cq8ki3h4djh7pb8yqdkywqd08vjy3vd64yqh7qd6pdwky6w"; + sha256 = "0r20iryb3ls3ly2c8k675ixz1zsifrkcj0h2i0326pgb3dwkicxa"; type = "gem"; }; - version = "3.2.6"; + version = "3.2.7"; }; daemons = { groups = ["default"]; @@ -485,10 +546,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0xyza6gjci6qp83srcvsg3i225x17n27bwci4wqzpmn9bykjac2n"; + sha256 = "11ig4scb2h93j4z6rikfjd00wk2y4bhkikhia86a65gs4gl44kja"; type = "gem"; }; - version = "3.2.3"; + version = "3.2.5"; }; date = { groups = ["default"]; @@ -580,10 +641,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0fxrvqv3l5w9p20s129rg41zc6agf1n4yrmganancnvykbkygki2"; + sha256 = "1q2pywgyn6cbnm0fh3dln5z1qgd1g8hvb4x8rppjc1bpfxnfhi13"; type = "gem"; }; - version = "5.6.4"; + version = "5.6.6"; }; dotenv = { groups = ["development" "test"]; @@ -600,10 +661,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1ffdpd18n1h1fxsl4yz7wpjlxb0nw8s0wxzwypi9vcyzij0d993s"; + sha256 = "1w39jms4bsggxvl23cxanhccv1ngb6nqxsqhi784v5bjz1lx3si8"; type = "gem"; }; - version = "0.7.0"; + version = "1.0.0"; }; dry-core = { dependencies = ["concurrent-ruby" "zeitwerk"]; @@ -611,10 +672,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "01gks2hrp7nl3pzb487azvd25dlbrc40d5cpk4n0szwnf2c0k4ks"; + sha256 = "03a5qn74c4lk2rpy6wlhv66synjlyzc4wn086xzphkpmw12l4bzk"; type = "gem"; }; - version = "1.0.0"; + version = "1.0.1"; }; dry-inflector = { groups = ["default"]; @@ -654,10 +715,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1s5cqx3i7bigfhy8pniswdhinc9k2xxvkk05ikqy0kmwiy4bc991"; + sha256 = "1f6dz0hm67rhybh6xq2s3vvr700cp43kf50z2lids62s2i0mh5hj"; type = "gem"; }; - version = "1.7.0"; + version = "1.7.1"; }; eco = { dependencies = ["coffee-script" "eco-source" "execjs"]; @@ -717,10 +778,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "11bz1v1cxabm8672gabrw542zyg51dizlcvdck6vvwzagxbjv9zx"; + sha256 = "08s75vs9cxlc4r1q2bjg4br8g9wc5lc5x5vl0vv4zq5ivxsdpgi7"; type = "gem"; }; - version = "1.11.0"; + version = "1.12.0"; }; eventmachine = { groups = ["default"]; @@ -770,10 +831,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1b8772jybi0vxzbcs5zw17k40z661c8adn2rd6vqqr7ay71bzl09"; + sha256 = "0ysiqlvyy1351bzx7h92r93a35s32l8giyf9bac6sgr142sh3cnn"; type = "gem"; }; - version = "3.1.1"; + version = "3.2.1"; }; faraday = { dependencies = ["faraday-net_http" "ruby2_keywords"]; @@ -781,10 +842,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1f20vjx0ywx0zdb4dfx4cpa7kd51z6vg7dw5hs35laa45dy9g9pj"; + sha256 = "187clqhp9mv5mnqmjlfdp57svhsg1bggz84ak8v333j9skrnrgh9"; type = "gem"; }; - version = "2.7.4"; + version = "2.7.10"; }; faraday-mashify = { dependencies = ["faraday" "hashie"]; @@ -844,10 +905,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0rv8dlq9nqpias29jh40qb6xzznlk6ra41nan6s5hy56402f0k29"; + sha256 = "1l38x0i0z8pjwr54lmnk8q1lxd7cqyl5m0qqqwb2iw28kncvmb3i"; type = "gem"; }; - version = "2.21.0"; + version = "2.21.1"; }; globalid = { dependencies = ["activesupport"]; @@ -855,10 +916,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "040bxzfd7mz1p6z4bc9vk5yrf762hdllvf98hmk848fq28xc5dsk"; + sha256 = "0kqm5ndzaybpnpxqiqkc41k4ksyxl41ln8qqr6kb130cdxsf2dxk"; type = "gem"; }; - version = "1.0.1"; + version = "1.1.0"; }; gmail_xoauth = { dependencies = ["oauth"]; @@ -876,10 +937,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "14knjmj2csrl9s890ikvipsbxn01xn6vdb64iwlbv6xnc20scwxf"; + sha256 = "0j5y4zgvraq5jhs2jjrblarj93nhq94m7bk8k1cqk18nq985x5ac"; type = "gem"; }; - version = "2.0.17"; + version = "2.0.26"; }; graphql-batch = { dependencies = ["graphql" "promise.rb"]; @@ -887,10 +948,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1nsjfi47h9ma8gkqi7v6ky3jqp1zb05l4y2xdsa13f0s8vmq04jv"; + sha256 = "0y8lclq94jjqg4sbn6lkbfa8cm64nnicgzkrmaihl8ml7p6mslal"; type = "gem"; }; - version = "0.5.2"; + version = "0.5.3"; }; hashdiff = { groups = ["default" "development" "test"]; @@ -1001,10 +1062,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1vdcchz7jli1p0gnc669a7bj3q1fv09y9ppf0y3k0vb1jwdwrqwi"; + sha256 = "0qaamqsh5f3szhcakkak8ikxlzxqnv49n2p7504hcz2l0f4nj0wx"; type = "gem"; }; - version = "1.12.0"; + version = "1.14.1"; }; icalendar = { dependencies = ["ice_cube"]; @@ -1012,10 +1073,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "11zfs0l8y2a6gpf0krm91d0ap2mnf04qky89dyzxwaspqxqgj174"; + sha256 = "03isrw8mma83hifham5iab80bnbx7b1xabnh8v4zragb04gpfzs5"; type = "gem"; }; - version = "2.8.0"; + version = "2.9.0"; }; icalendar-recurrence = { dependencies = ["icalendar" "ice_cube"]; @@ -1098,26 +1159,26 @@ }; version = "2.3.0"; }; - kgio = { - groups = ["default" "unicorn"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1ipzvw7n0kz1w8rkqybyxvf3hb601a770khm0xdqm68mc4aa59xx"; - type = "gem"; - }; - version = "2.11.4"; - }; koala = { dependencies = ["addressable" "faraday" "faraday-multipart" "json" "rexml"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "14jq1q8314x5qncmfgs53iv1ycz1fm887gnp7w04h963gbwr3yhc"; + sha256 = "0qrs0yra1d0kxrn28fh1hvm099rh26dp4hpkw36vgfm286qjslww"; type = "gem"; }; - version = "3.4.0"; + version = "3.5.0"; + }; + language_server-protocol = { + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0gvb1j8xsqxms9mww01rmdl78zkd72zgxaap56bhv8j45z05hp1x"; + type = "gem"; + }; + version = "3.17.0.3"; }; listen = { dependencies = ["rb-fsevent" "rb-inotify"]; @@ -1140,6 +1201,16 @@ }; version = "1.1.4"; }; + localhost = { + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "12p4sy88qnw5c8ga6fdlxy2w2i0xw9mmnzckzj71k4rvbwpdzlg1"; + type = "gem"; + }; + version = "1.1.10"; + }; logging = { dependencies = ["little-plugger" "multi_json"]; groups = ["default"]; @@ -1157,10 +1228,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "08qhzck271anrx9y6qa6mh8hwwdzsgwld8q0000rcd7yvvpnjr3c"; + sha256 = "1p744kjpb5zk2ihklbykzii77alycjc04vpnm2ch2f3cp65imlj3"; type = "gem"; }; - version = "2.19.1"; + version = "2.21.3"; }; mail = { dependencies = ["mini_mime" "net-imap" "net-pop" "net-smtp"]; @@ -1231,50 +1302,50 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0ipw892jbksbxxcrlx9g5ljq60qx47pm24ywgfbyjskbcl78pkvb"; + sha256 = "0q8d881k1b3rbsfcdi3fx0b5vpdr5wcrhn88r2d9j7zjdkxp5mw5"; type = "gem"; }; - version = "3.4.1"; + version = "3.5.1"; }; mime-types-data = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1pky3vzaxlgm9gw5wlqwwi7wsw3jrglrfflrppvvnsrlaiz043z9"; + sha256 = "17zdim7kzrh5j8c97vjqp4xp78wbyz7smdp4hi5iyzk0s9imdn5a"; type = "gem"; }; - version = "3.2023.0218.1"; + version = "3.2023.0808"; }; mini_mime = { groups = ["default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0lbim375gw2dk6383qirz13hgdmxlan0vc5da2l072j3qw6fqjm5"; + sha256 = "1vycif7pjzkr29mfk4dlqv3disc5dn0va04lkwajlpr1wkibg0c6"; type = "gem"; }; - version = "1.1.2"; + version = "1.1.5"; }; mini_portile2 = { groups = ["assets" "default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1af4yarhbbx62f7qsmgg5fynrik0s36wjy3difkawy536xg343mp"; + sha256 = "02mj8mpd6ck5gpcnsimx5brzggw5h5mmmpq2djdypfq16wcw82qq"; type = "gem"; }; - version = "2.8.1"; + version = "2.8.4"; }; minitest = { groups = ["assets" "default" "development" "nulldb" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1kjy67qajw4rnkbjs5jyk7kc3lyhz5613fwj1i8f6ppdk4zampy0"; + sha256 = "0jnpsbb2dbcs95p4is4431l2pw1l5pn7dfg3vkgb4ga464j0c5l6"; type = "gem"; }; - version = "5.17.0"; + version = "5.19.0"; }; minitest-profile = { groups = ["development" "test"]; @@ -1291,10 +1362,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1q03pb0vq8388s431nbxabsfxnch6p304c8vnjlk0zzpcv713yr3"; + sha256 = "1a5adcb7bwan09mqhj3wi9ib52hmdzmqg7q08pggn3adibyn5asr"; type = "gem"; }; - version = "1.6.0"; + version = "1.7.2"; }; multi_json = { groups = ["default"]; @@ -1331,10 +1402,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0xsy70mg4p854jska7ff7cy8fyn9nhlkrmfdvkkfmk8qxairbfq1"; + sha256 = "1gjvj215qdhwk3292sc7xsn6fmwnnaq2xs35hh5hc8d8j22izlbn"; type = "gem"; }; - version = "0.5.4"; + version = "0.5.5"; }; naught = { groups = ["default"]; @@ -1384,20 +1455,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1d996zf3g8xz244791b0qsl9vr7zg4lqnnmf9k2kshr9lki5jam8"; + sha256 = "0lf7wqg7czhaj51qsnmn28j7jmcxhkh3m28rl1cjrqsgjxhwj7r3"; type = "gem"; }; - version = "0.3.4"; + version = "0.3.7"; }; net-ldap = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1ycw0qsw3hap8svakl0i30jkj0ffd4lpyrn17a1j0w8mz5ainmsj"; + sha256 = "0xqcffn3c1564c4fizp10dzw2v5g2pabdzrcn25hq05bqhsckbar"; type = "gem"; }; - version = "0.17.1"; + version = "0.18.0"; }; net-pop = { dependencies = ["net-protocol"]; @@ -1437,10 +1508,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0xk64wghkscs6bv2n22853k2nh39d131c6rfpnlw12mbjnnv9v1v"; + sha256 = "0w9978zwjf1qhy3amkivab0f9syz6a7k0xgydjidaf7xc831d78f"; type = "gem"; }; - version = "2.5.8"; + version = "2.5.9"; }; nokogiri = { dependencies = ["mini_portile2" "racc"]; @@ -1448,10 +1519,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0n79k78c5vdcyl0m3y3l5x9kxl6xf5lgriwi2vd665qmdkr01vnk"; + sha256 = "0k9w2z0953mnjrsji74cshqqp08q7m1r6zhadw1w0g34xzjh3a74"; type = "gem"; }; - version = "1.13.10"; + version = "1.15.4"; }; nori = { groups = ["default"]; @@ -1497,15 +1568,15 @@ version = "2.0.9"; }; omniauth = { - dependencies = ["hashie" "rack"]; + dependencies = ["hashie" "rack" "rack-protection"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1jn9j54l5h7xcba2vjq74l1dk0xrwvsjxam4qhylpi52nw0h5502"; + sha256 = "15xjsxis357np7dy1lak39x1n8g8wxljb08wplw5i4gxi743zr7j"; type = "gem"; }; - version = "1.9.2"; + version = "2.1.1"; }; omniauth-facebook = { dependencies = ["omniauth-oauth2"]; @@ -1524,10 +1595,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0xbk0dbxqfpyfb33ghz6vrlz3m6442rp18ryf13gwzlnifcawhlb"; + sha256 = "1m6a7kg3lxz2nm96prln2ja8r4wlm37m5vsy9199vnynqq5fgy4g"; type = "gem"; }; - version = "1.4.0"; + version = "2.0.1"; }; omniauth-gitlab = { dependencies = ["omniauth" "omniauth-oauth2"]; @@ -1535,21 +1606,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1nbrg93p0nqxs1i2ddyij2rr7jn4vr3la4la39q4fknpin535k3z"; + sha256 = "04wnjnapgwsnyd3dfnp8dp1jjnsg64zkls5xharj10j822kiygsl"; type = "gem"; }; - version = "2.0.0"; + version = "4.1.0"; }; omniauth-google-oauth2 = { - dependencies = ["jwt" "omniauth" "omniauth-oauth2"]; + dependencies = ["jwt" "oauth2" "omniauth" "omniauth-oauth2"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "17pgqasl048irs2c6w6g57zvk0ygb5ml1krwir4qi4b6y53zyr55"; + sha256 = "0fahkghfa2iczmwss9bz5l4rh7siwzjnjp3akh7pdbsfx0kg35j4"; type = "gem"; }; - version = "0.8.0"; + version = "1.1.1"; }; omniauth-linkedin-oauth2 = { dependencies = ["omniauth-oauth2"]; @@ -1557,10 +1628,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1ydkj9f2hd3fskpc2gazz9dim70z2k6z6pb8j3glnlhkd67iyzci"; + sha256 = "0xai5k6xzinc4d67n64y1acffs8p7xi2hikz493dz6jx8qv9b2g3"; type = "gem"; }; - version = "1.0.0"; + version = "1.0.1"; }; omniauth-microsoft-office365 = { dependencies = ["omniauth" "omniauth-oauth2"]; @@ -1590,10 +1661,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0ia73zcbmhf02krlkq2rxmksx93jp777ax5x58fzkq3jzacqyniz"; + sha256 = "0y4y122xm8zgrxn5nnzwg6w39dnjss8pcq2ppbpx9qn7kiayky5j"; type = "gem"; }; - version = "1.7.3"; + version = "1.8.0"; }; omniauth-rails_csrf_protection = { dependencies = ["actionpack" "omniauth"]; @@ -1601,10 +1672,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0xgkxwg17w39q3yjqcj0fm6hdkw37qm1l82dvm9zxn6q2pbzm2zv"; + sha256 = "1kwswnkyl8ym6i4wv65qh3qchqbf2n0c6lbhfgbvkds3gpmnlm7w"; type = "gem"; }; - version = "0.1.2"; + version = "1.0.1"; }; omniauth-saml = { dependencies = ["omniauth" "ruby-saml"]; @@ -1612,10 +1683,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0gxl14lbksnjkl8dfn23lsjkk63md77icm5racrh6fsp5n4ni9d4"; + sha256 = "01k9rkg97npcgm8r4x3ja8y20hsg4zy0dcjpzafx148q4yxbg74n"; type = "gem"; }; - version = "1.10.3"; + version = "2.1.0"; }; omniauth-twitter = { dependencies = ["omniauth-oauth" "rack"]; @@ -1633,9 +1704,11 @@ groups = ["default"]; platforms = []; source = { - remotes = ["https://rubygems.org"]; - sha256 = "02cz73lj38cjqkbrdnfr7iymzqdcxgqcjy992r5hmawgpqqgxvwb"; - type = "gem"; + fetchSubmodules = false; + rev = "06803ef97f822ede854322587db8049cc67dcfa6"; + sha256 = "10bsx11padnmd88xhkr583mgwwsn8155vpg2flw7wqjkd2hy6671"; + type = "git"; + url = "https://github.com/zammad-deps/omniauth-weibo-oauth2"; }; version = "0.5.2"; }; @@ -1649,6 +1722,17 @@ }; version = "3.1.0"; }; + openssl-signature_algorithm = { + dependencies = ["openssl"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "103yjl68wqhl5kxaciir5jdnyi7iv9yckishdr52s5knh9g0pd53"; + type = "gem"; + }; + version = "1.3.0"; + }; overcommit = { dependencies = ["childprocess" "iniparse" "rexml"]; groups = ["development" "test"]; @@ -1665,21 +1749,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "07vnk6bb54k4yc06xnwck7php50l09vvlw1ga8wdz0pia461zpzb"; + sha256 = "0jcc512l38c0c163ni3jgskvq1vc3mr8ly5pvjijzwvfml9lf597"; type = "gem"; }; - version = "1.22.1"; + version = "1.23.0"; }; parser = { - dependencies = ["ast"]; + dependencies = ["ast" "racc"]; groups = ["default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0zk8mdyr0322r11d63rcp5jhz4lakxilhvyvdv0ql5dw4lb83623"; + sha256 = "1swigds85jddb5gshll1g8lkmbcgbcp9bi1d4nigwvxki8smys0h"; type = "gem"; }; - version = "3.2.0.0"; + version = "3.2.2.3"; }; pg = { groups = ["postgres"]; @@ -1707,10 +1791,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "17yx4bc0k182lhydwa8aqn0kx776kqymziydpb2szmxzx5q2sghx"; + sha256 = "1y2c5mvkq7zc5vh4ijs1wc9hc0yn4mwsbrjch34jf11pcz116pnd"; type = "gem"; }; - version = "2.0.2"; + version = "2.0.3"; }; "promise.rb" = { groups = ["default"]; @@ -1728,10 +1812,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0m445x8fwcjdyv2bc0glzss2nbm1ll51bq45knixapc7cl3dzdlr"; + sha256 = "0k9kqkd9nps1w1r1rb7wjr31hqzkka2bhi8b518x78dcxppm9zn4"; type = "gem"; }; - version = "0.14.1"; + version = "0.14.2"; }; pry-rails = { dependencies = ["pry"]; @@ -1782,10 +1866,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0hz0bx2qs2pwb0bwazzsah03ilpf3aai8b7lk7s35jsfzwbkjq35"; + sha256 = "0n9j7mczl15r3kwqrah09cxj8hxdfawiqxa60kga2bmxl9flfz9k"; type = "gem"; }; - version = "5.0.1"; + version = "5.0.3"; }; puma = { dependencies = ["nio4r"]; @@ -1793,10 +1877,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0df9bknc2dllk8v9fhgidzbvbryaxa8fgifrk40cdz9csjsphbky"; + sha256 = "1x4dwx2shx0p7lsms97r85r7ji7zv57bjy3i1kmcpxc8bxvrr67c"; type = "gem"; }; - version = "4.3.12"; + version = "6.3.1"; }; pundit = { dependencies = ["activesupport"]; @@ -1804,41 +1888,41 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1wb03yzy1j41822rbfh9nn77im3zh1f5v8di05cd8rsrdpws542b"; + sha256 = "10diasjqi1g7s19ns14sldia4wl4c0z1m4pva66q4y2jqvks4qjw"; type = "gem"; }; - version = "2.3.0"; + version = "2.3.1"; }; pundit-matchers = { - dependencies = ["rspec-rails"]; + dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"]; groups = ["development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0hs0z7flj8yibk8jm5x7pnnfnl0rh0rhrvmq27b6pxvqxxvywsq3"; + sha256 = "0gmvppwknijhy013azyws85bkyck8x9ly7yh2162kxa59z1kbsgq"; type = "gem"; }; - version = "1.8.4"; + version = "3.1.2"; }; racc = { groups = ["assets" "default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "09jgz6r0f7v84a7jz9an85q8vvmp743dqcsdm3z9c8rqcqv6pljq"; + sha256 = "11v3l46mwnlzlc371wr3x6yylpgafgwdf0q7hc7c1lzx6r414r5g"; type = "gem"; }; - version = "1.6.2"; + version = "1.7.1"; }; rack = { groups = ["assets" "default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1qgwkcb8kxns8d5187cxjaxf18b7dmg9gh6cr9c1125m0bj2pnfk"; + sha256 = "15rdwbyk71c9nxvd527bvb8jxkcys8r3dj3vqra5b3sa63qs30vv"; type = "gem"; }; - version = "2.2.6.4"; + version = "2.2.8"; }; rack-attack = { dependencies = ["rack"]; @@ -1846,10 +1930,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "049s3y3dpl6dn478g912y6f9nzclnnkl30psrbc2w5kaihj5szhq"; + sha256 = "0z6pj5vjgl6swq7a33gssf795k958mss8gpmdb4v4cydcs7px91w"; type = "gem"; }; - version = "6.6.1"; + version = "6.7.0"; + }; + rack-protection = { + dependencies = ["rack"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xsz78hccgza144n37bfisdkzpr2c8m0xl6rnlzgxdbsm1zrkg7r"; + type = "gem"; + }; + version = "3.1.0"; }; rack-proxy = { dependencies = ["rack"]; @@ -1868,10 +1963,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0rjl709krgf499dhjdapg580l2qaj9d91pwzk8ck8fpnazlx1bdd"; + sha256 = "1ysx29gk9k14a14zsp5a8czys140wacvp91fja8xcja0j1hzqq8c"; type = "gem"; }; - version = "2.0.2"; + version = "2.1.0"; }; rails = { dependencies = ["actioncable" "actionmailbox" "actionmailer" "actionpack" "actiontext" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties" "sprockets-rails"]; @@ -1879,10 +1974,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "07cs7qdkx6vwp66diwdy9g6mx52rsd8rxhbnsqf9bqam58g2aynj"; + sha256 = "0gf5dqabzd0mf0q39a07kf0smdm2cv2z5swl3zr4cz50yb85zz3l"; type = "gem"; }; - version = "6.1.7.3"; + version = "6.1.7.6"; }; rails-controller-testing = { dependencies = ["actionpack" "actionview" "activesupport"]; @@ -1896,26 +1991,26 @@ version = "1.0.5"; }; rails-dom-testing = { - dependencies = ["activesupport" "nokogiri"]; + dependencies = ["activesupport" "minitest" "nokogiri"]; groups = ["assets" "default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i"; + sha256 = "0fx9dx1ag0s1lr6lfr34lbx5i1bvn3bhyf3w3mx6h7yz90p725g5"; type = "gem"; }; - version = "2.0.3"; + version = "2.2.0"; }; rails-html-sanitizer = { - dependencies = ["loofah"]; + dependencies = ["loofah" "nokogiri"]; groups = ["assets" "default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1mcb75qvldfz6zsr4inrfx7dmb0ngxy507awx28khqmnla3hqpc9"; + sha256 = "1pm4z853nyz1bhhqr7fzl44alnx4bjachcr6rh6qjj375sfz3sc6"; type = "gem"; }; - version = "1.4.4"; + version = "1.6.0"; }; railties = { dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"]; @@ -1923,10 +2018,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1d2snjnx1j848axppj2napy3zjgbka3fnw2528rcamhm6dp694nd"; + sha256 = "1vq4ahyg9hraixxmmwwypdnpcylpvznvdxhj4xa23xk45wzbl3h7"; type = "gem"; }; - version = "6.1.7.3"; + version = "6.1.7.6"; }; rainbow = { groups = ["default" "development" "test"]; @@ -1938,16 +2033,6 @@ }; version = "3.1.1"; }; - raindrops = { - groups = ["default" "unicorn"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0wb2x51parf6v78w0cic90m33bdc92y5h8rj4wqs75dhw1b69hc7"; - type = "gem"; - }; - version = "0.20.0"; - }; rake = { groups = ["assets" "default" "development" "test"]; platforms = []; @@ -2004,20 +2089,30 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0d6241adx6drsfzz74nx1ld3394nm6fjpv3ammzr0g659krvgf7q"; + sha256 = "136br91alxdwh1s85z912dwz23qlhm212vy6i3wkinz3z8mkxxl3"; type = "gem"; }; - version = "2.7.0"; + version = "2.8.1"; }; rexml = { groups = ["default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53"; + sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0"; type = "gem"; }; - version = "3.2.5"; + version = "3.2.6"; + }; + rotp = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10mmzc85y7andsich586ndykw678qn1ns2wpjxrg0sc0gr4w3pig"; + type = "gem"; + }; + version = "6.2.2"; }; rspec-core = { dependencies = ["rspec-support"]; @@ -2025,10 +2120,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1ibb81slc35q5yp276sixp3yrvj9q92wlmi1glbnwlk6g49z8rn4"; + sha256 = "0l95bnjxdabrn79hwdhn2q1n7mn26pj7y1w5660v5qi81x458nqm"; type = "gem"; }; - version = "3.12.0"; + version = "3.12.2"; }; rspec-expectations = { dependencies = ["diff-lcs" "rspec-support"]; @@ -2036,10 +2131,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0qldsmjhqr4344zdlamzggr3y98wdk2c4hihkhwx8imk800gkl8v"; + sha256 = "05j44jfqlv7j2rpxb5vqzf9hfv7w8ba46wwgxwcwd8p0wzi1hg89"; type = "gem"; }; - version = "3.12.0"; + version = "3.12.3"; }; rspec-mocks = { dependencies = ["diff-lcs" "rspec-support"]; @@ -2047,10 +2142,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1yvwnb0x5d6d4ff3wlgahk0wcw72ic51gd2snr1xxc5ify41kabv"; + sha256 = "1gq7gviwpck7fhp4y5ibljljvxgjklza18j62qf6zkm2icaa8lfy"; type = "gem"; }; - version = "3.12.0"; + version = "3.12.6"; }; rspec-rails = { dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"]; @@ -2058,10 +2153,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0d3fnabkaw8n0na2dpnlg2xygggj51djzpj9x6y5rkiqbfyqwv01"; + sha256 = "086qdyz7c4s5dslm6j06mq7j4jmj958whc3yinhabnqqmz7i463d"; type = "gem"; }; - version = "6.0.1"; + version = "6.0.3"; }; rspec-retry = { dependencies = ["rspec-core"]; @@ -2079,10 +2174,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "12y52zwwb3xr7h91dy9k3ndmyyhr3mjcayk0nnarnrzz8yr48kfx"; + sha256 = "1ky86j3ksi26ng9ybd7j0qsdf1lpr8mzrmn98yy9gzv801fvhsgr"; type = "gem"; }; - version = "3.12.0"; + version = "3.12.1"; }; rszr = { groups = ["default"]; @@ -2095,15 +2190,15 @@ version = "1.3.0"; }; rubocop = { - dependencies = ["json" "parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"]; + dependencies = ["base64" "json" "language_server-protocol" "parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"]; groups = ["development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1jsiy93y5c2sx2sr5jmdah208idw038m2fpihgan4klmldm3r1pm"; + sha256 = "1n5d0n5yczh9d1xbqy07hs3vamq3683zc9jg0zg2n5jz8n7jwmah"; type = "gem"; }; - version = "1.45.1"; + version = "1.56.1"; }; rubocop-ast = { dependencies = ["parser"]; @@ -2111,10 +2206,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1pdzabz95hv3z5sfbkfqa8bdybsfl13gv7rjb32v3ss8klq99lbd"; + sha256 = "188bs225kkhrb17dsf3likdahs2p1i1sqn0pr3pvlx50g6r2mnni"; type = "gem"; }; - version = "1.24.1"; + version = "1.29.0"; }; rubocop-capybara = { dependencies = ["rubocop"]; @@ -2122,10 +2217,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1h4qcjkz0365qlhi7y1ni94qj14k397cad566zygm20p15ypbp5v"; + sha256 = "01fn05a87g009ch1sh00abdmgjab87i995msap26vxq1a5smdck6"; type = "gem"; }; - version = "2.17.0"; + version = "2.18.0"; + }; + rubocop-factory_bot = { + dependencies = ["rubocop"]; + groups = ["default" "development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kqchl8f67k2g56sq2h1sm2wb6br5gi47s877hlz94g5086f77n1"; + type = "gem"; + }; + version = "2.23.1"; }; rubocop-faker = { dependencies = ["faker" "rubocop"]; @@ -2144,10 +2250,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0hryrjmcl04br06ibjzzrbb2am8ybbhnl2l7w13xl3wz3k4jyjxs"; + sha256 = "1fmjnfhdaqxf4pdvfyjiayxazvqw52gj49m57abnri48ydvy4r06"; type = "gem"; }; - version = "0.19.0"; + version = "1.4.0"; }; rubocop-inflector = { dependencies = ["activesupport" "rubocop" "rubocop-rspec"]; @@ -2166,10 +2272,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1n7g0vg06ldjaq4f8c11c7yqy99zng1qdrkkk4kfziippy24yxnc"; + sha256 = "1v3a2g3wk3aqa0k0zzla10qkxlc625zkj3yf4zcsybs86r5bm4xn"; type = "gem"; }; - version = "1.16.0"; + version = "1.19.0"; }; rubocop-rails = { dependencies = ["activesupport" "rack" "rubocop"]; @@ -2177,31 +2283,31 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1nxyifly45y7dfiaf0ql8aq7xykrg0sh1l7dxmn3sb9p2jd18140"; + sha256 = "05r46ds0dm44fb4p67hbz721zck8mdwblzssz2y25yh075hvs36j"; type = "gem"; }; - version = "2.17.4"; + version = "2.20.2"; }; rubocop-rspec = { - dependencies = ["rubocop" "rubocop-capybara"]; + dependencies = ["rubocop" "rubocop-capybara" "rubocop-factory_bot"]; groups = ["development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1vmmin3ymgq7bhv2hl4pd0zpwawy709p816axc4vi67w61b4bij1"; + sha256 = "0ylwy4afnxhbrvlaf8an9nrizj78axnzggiyfcp8v531cv8six5f"; type = "gem"; }; - version = "2.18.1"; + version = "2.23.2"; }; ruby-progressbar = { groups = ["default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "02nmaw7yx9kl7rbaan5pl8x5nn0y4j5954mzrkzi9i3dhsrps4nc"; + sha256 = "0cwvyb7j47m7wihpfaq7rc47zwwx9k4v7iqd9s1xch5nm53rrz40"; type = "gem"; }; - version = "1.11.0"; + version = "1.13.0"; }; ruby-saml = { dependencies = ["nokogiri" "rexml"]; @@ -2209,10 +2315,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1irn32sy9gx6xj9jxc28h7dax7vp9z8j6hjjfsb2f5hd4qz0z20x"; + sha256 = "18vnbzin5ypxrgcs9lllg7x311b69dyrdw2w1pwz84438hmxm79s"; type = "gem"; }; - version = "1.14.0"; + version = "1.15.0"; }; ruby2_keywords = { groups = ["default" "development" "test"]; @@ -2244,6 +2350,17 @@ }; version = "2.3.2"; }; + safety_net_attestation = { + dependencies = ["jwt"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1khq0y5w7lf2b9a220298hphf3pakd216jc9a4x4a9pdwxs2vgln"; + type = "gem"; + }; + version = "0.4.0"; + }; sassc = { dependencies = ["ffi"]; groups = ["assets" "default"]; @@ -2272,10 +2389,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1dkcyq2hfvf4wdj7q5cqqlka1dw6gz28dckxf4r17jmd53ymwg28"; + sha256 = "0ws0mh230l1pvyxcrlcr48w01alfhprjs1jbd8yrn463drsr2yac"; type = "gem"; }; - version = "4.8.0"; + version = "4.11.0"; }; shoulda-matchers = { dependencies = ["activesupport"]; @@ -2330,15 +2447,15 @@ version = "2.4.0"; }; slack-ruby-client = { - dependencies = ["faraday" "faraday-mashify" "faraday-multipart" "gli" "hashie" "websocket-driver"]; + dependencies = ["faraday" "faraday-mashify" "faraday-multipart" "gli" "hashie"]; groups = ["development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "110rhsxxf0g4qdrhy1ahyfjg1hqqwwwf4rjn8vrrbvpfd04b8xa5"; + sha256 = "1mf62j2z6djz7lbqawp1biziyy40sv5k1q29i4mvwza79652dlkf"; type = "gem"; }; - version = "2.0.0"; + version = "2.1.0"; }; slop = { groups = ["default" "development" "test"]; @@ -2388,10 +2505,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "14678jlva69bxx24sz5i882x25h357xmbmqsichvq8vdiw2xf6aa"; + sha256 = "1hg3zfn6p4ahp6mybk6ylr169f4mf4sl7lljylf5gljazs1yngf3"; type = "gem"; }; - version = "0.2.2"; + version = "0.3.0"; }; telegram-bot-ruby = { dependencies = ["dry-struct" "faraday" "faraday-multipart" "zeitwerk"]; @@ -2409,10 +2526,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1c5cnx7w3wp6ddsw84s131asfs6pr650fhwqhzwx2v3987d38kz1"; + sha256 = "0fbzaizg3f7ydlsp88zshkf47d07pc5jjpn9z7qckvah62f8r7a0"; type = "gem"; }; - version = "1.4.19"; + version = "1.4.20"; }; terser = { dependencies = ["execjs"]; @@ -2420,10 +2537,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "01c8wp7z6v71jqgn6fgi8wfw62488i4arxdjqjg8zkn0jsflyd8b"; + sha256 = "1ja8pz7dfj0g7a6smz3wbc6imdmmf07ka83qhkv2xdfd73c9p4d9"; type = "gem"; }; - version = "1.1.13"; + version = "1.1.17"; }; test-unit = { dependencies = ["power_assert"]; @@ -2431,20 +2548,20 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1rdhpdi8mlk7jwv9pxz3mhchpd5q93jxzijqhw334w5yv1ajl5hf"; + sha256 = "02v0aa6rfanas00p47xi0anbza1ymcgv6h03ipil8pbj21cw998a"; type = "gem"; }; - version = "3.5.7"; + version = "3.6.1"; }; thor = { groups = ["assets" "default" "development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0inl77jh4ia03jw3iqm5ipr76ghal3hyjrd6r8zqsswwvi9j2xdi"; + sha256 = "0k7j2wn14h1pl4smibasw0bp66kg626drxb59z7rzflch99cd4rg"; type = "gem"; }; - version = "1.2.1"; + version = "1.2.2"; }; thread_safe = { groups = ["default"]; @@ -2461,10 +2578,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "186nfbcsk0l4l86gvng1fw6jq6p6s7rc0caxr23b3pnbfb20y63v"; + sha256 = "0bmjgbv8158klwp2r3klxjwaj93nh1sbl4xvj9wsha0ic478avz7"; type = "gem"; }; - version = "2.0.11"; + version = "2.2.0"; }; time = { dependencies = ["date"]; @@ -2482,10 +2599,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1pfddf51n5fnj4f9ggwj3wbf23ynj0nbxlxqpz12y1gvl9g7d6r6"; + sha256 = "1d9cvm0f4zdpwa795v3zv4973y5zk59j7s1x3yn90jjrhcz1yvfd"; type = "gem"; }; - version = "0.3.2"; + version = "0.4.0"; + }; + tpm-key_attestation = { + dependencies = ["bindata" "openssl" "openssl-signature_algorithm"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0v8y5dibsyskv1ncdgszhxwzq0gzmvb0zl7sgmx0xvsgy86dhcz1"; + type = "gem"; + }; + version = "0.12.0"; }; twilio-ruby = { dependencies = ["faraday" "jwt" "nokogiri"]; @@ -2493,10 +2621,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1wn7ybr54i8p6rrg79k0z4pga4n91d9rvrlvwgms8mx3aq9dpbib"; + sha256 = "174asqbk2fwr2kck3rwww0q5lnj8z17mnkhzzyq81k18n781xhw5"; type = "gem"; }; - version = "5.74.3"; + version = "6.5.0"; }; twitter = { dependencies = ["addressable" "buftok" "equalizer" "http" "http-form_data" "http_parser.rb" "memoizable" "multipart-post" "naught" "simple_oauth"]; @@ -2526,10 +2654,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0drm9pygji01pyimxq65ngdvgpn228g7fhffmrqw0xn7l2rdhclp"; + sha256 = "0m2d0gpsgqnv29j5h2d6g57g0rayvd460b8s2vjr8sn46bqf89m5"; type = "gem"; }; - version = "1.2022.7"; + version = "1.2023.3"; }; unf = { dependencies = ["unf_ext"]; @@ -2562,46 +2690,35 @@ }; version = "2.4.2"; }; - unicorn = { - dependencies = ["kgio" "raindrops"]; - groups = ["unicorn"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1h0gma14jjxiz6piyi6p99q7lya2mxrq79l03160hascvmx9ipa5"; - type = "gem"; - }; - version = "6.1.0"; - }; uri = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1vigw7nfszfqgikr6n574k9bfh0rvs74z8xq46rz2zsm8249l8cc"; + sha256 = "0fa49cdssxllj1j37a56kq27wsibx5lmqxkqdk1rz3452y0bsydy"; type = "gem"; }; - version = "0.12.1"; + version = "0.12.2"; }; vcr = { groups = ["development" "test"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1xzd8f17mmcq9f6lxg4w0x4nd9pyp41lr77gjzxwynijzp8rcgjl"; + sha256 = "02j9z7yapninfqwsly4l65596zhv2xqyfb91p9vkakwhiyhajq7r"; type = "gem"; }; - version = "6.1.0"; + version = "6.2.0"; }; version_gem = { groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0v2vj7q1rk3wd7hdqa3i1d4hq7sfcgf55qc70g6dsichsbgacb9w"; + sha256 = "0q6zs0wgcrql9671fw6lmbvgh155snaak4fia24iji5wk9klpfh7"; type = "gem"; }; - version = "1.1.1"; + version = "1.1.3"; }; viewpoint = { dependencies = ["httpclient" "logging" "nokogiri" "rubyntlm"]; @@ -2620,10 +2737,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "035bjh0db28bgjx6hf01ykrrl4088gygnsva1x7asznzd9aq4669"; + sha256 = "0q7qbi3npw47xza8spvd8ni0x0ahjb6lkd12y9a4pqppxn555v5q"; type = "gem"; }; - version = "3.0.14"; + version = "3.0.15"; }; vite_ruby = { dependencies = ["dry-cli" "rack-proxy" "zeitwerk"]; @@ -2631,10 +2748,21 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "119adbqdx4qb0hl5f34346j2w8a6z5xxy19wc6ad7bnc98v7l0hw"; + sha256 = "036qi8w4qzglhqrrrrkc0m7ivfzmagsdyj61r0h27p56hn1l6ph2"; type = "gem"; }; - version = "3.2.14"; + version = "3.3.4"; + }; + webauthn = { + dependencies = ["android_key_attestation" "awrence" "bindata" "cbor" "cose" "openssl" "safety_net_attestation" "tpm-key_attestation"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ri09bf640kkw4v6k2g90q2nw1mx2hsghhngaqgb7958q8id8xrz"; + type = "gem"; + }; + version = "3.0.0"; }; webmock = { dependencies = ["addressable" "crack" "hashdiff"]; @@ -2642,10 +2770,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1myj44wvbbqvv18ragv3ihl0h61acgnfwrnj3lccdgp49bgmbjal"; + sha256 = "05134klki4zln7dfa2w0hpsj8nkvw99bdhqkbsrr0yjirhxak724"; type = "gem"; }; - version = "3.18.1"; + version = "3.19.0"; }; websocket = { groups = ["default" "development" "test"]; @@ -2659,17 +2787,17 @@ }; websocket-driver = { dependencies = ["websocket-extensions"]; - groups = ["default" "development" "test"]; + groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0a3bwxd9v3ghrxzjc4vxmf4xa18c6m4xqy5wb0yk5c6b9psc7052"; + sha256 = "1nyh873w4lvahcl8kzbjfca26656d5c6z3md4sbqg5y1gfz0157n"; type = "gem"; }; - version = "0.7.5"; + version = "0.7.6"; }; websocket-extensions = { - groups = ["default" "development" "test"]; + groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; @@ -2678,15 +2806,16 @@ }; version = "0.1.5"; }; - writeexcel = { + write_xlsx = { + dependencies = ["rubyzip"]; groups = ["default"]; platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0waaf1drp17m5qdchxqlqzj51sfa9hxqccw7d71qdg73gzay1x34"; + sha256 = "0w89lrp5k1ayp28p8785cbrmsmqsr5zrhvajs68pg7vvgn3qmqva"; type = "gem"; }; - version = "1.0.5"; + version = "1.11.1"; }; xpath = { dependencies = ["nokogiri"]; @@ -2704,10 +2833,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "028ld9qmgdllxrl7d0qkl65s58wb1n3gv8yjs28g43a8b1hplxk1"; + sha256 = "1mwdd445w63khz13hpv17m2br5xngyjl3jdj08xizjbm78i2zrxd"; type = "gem"; }; - version = "2.6.7"; + version = "2.6.11"; }; zendesk_api = { dependencies = ["faraday" "faraday-multipart" "hashie" "inflection" "mini_mime" "multipart-post"]; @@ -2715,9 +2844,9 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0yizpglgfwml6a2w696m97d1q50hq3v0vldja431rv93s9sjbgly"; + sha256 = "0cjiqm50zc4gpsn456235k8x0prafbmz921yqjgava4rp706467d"; type = "gem"; }; - version = "1.38.0.rc1"; + version = "2.0.1"; }; } diff --git a/pkgs/applications/networking/misc/zammad/package.json b/pkgs/applications/networking/misc/zammad/package.json index 09c7bc0ca139..98c898d90594 100644 --- a/pkgs/applications/networking/misc/zammad/package.json +++ b/pkgs/applications/networking/misc/zammad/package.json @@ -1,12 +1,12 @@ { "private": true, "scripts": { - "generate-graphql-api": "RAILS_ENV=development bundle exec rails generate zammad:graphql_introspection > tmp/graphql_introspection.json && npx graphql-codegen -c .graphql_code_generator.yml && rm tmp/graphql_introspection.json", + "generate-graphql-api": "RAILS_ENV=development bundle exec rails generate zammad:graphql_introspection > app/graphql/graphql_introspection.json && npx graphql-codegen -c .graphql_code_generator.yml", + "generate-setting-types": "RAILS_ENV=development bundle exec rails generate zammad:setting_types", "dev": "RAILS_ENV=development forego start -f Procfile.dev", - "dev:https": "VITE_RUBY_HTTPS=true RAILS_ENV=development forego start -f Procfile.dev-https", - "https:generate": "sh contrib/ssl/generate-ssl.sh", + "dev:https": "VITE_RUBY_HOST=0.0.0.0 VITE_RUBY_HTTPS=true RAILS_ENV=development forego start -f Procfile.dev-https", "i18n": "rails generate zammad:translation_catalog", - "lint": "vue-tsc --noEmit && eslint --cache --cache-location ./tmp/eslintcache.js -c .eslintrc.js --ext .js,.ts,.vue app/frontend/ .eslint-plugin-zammad/", + "lint": "vue-tsc --noEmit && eslint --cache --cache-location ./tmp/eslintcache.js --cache-strategy content -c .eslintrc.js --ext .js,.ts,.vue app/frontend/ .eslint-plugin-zammad/", "lint:fix": "yarn lint -- --fix", "lint:css": "stylelint **/*.{css,vue,scss}", "lint:css:fix": "stylelint **/*.{css,vue,scss} --fix", @@ -24,129 +24,134 @@ }, "packageManager": "yarn@1.22.19", "devDependencies": { - "@graphql-codegen/cli": "^3.0.0", - "@graphql-codegen/introspection": "^3.0.0", + "@faker-js/faker": "^8.0.2", + "@graphql-codegen/cli": "^5.0.0", + "@graphql-codegen/introspection": "^4.0.0", "@graphql-codegen/near-operation-file-preset": "^2.5.0", - "@graphql-codegen/typescript": "^3.0.0", - "@graphql-codegen/typescript-operations": "^3.0.0", + "@graphql-codegen/typescript": "^4.0.1", + "@graphql-codegen/typescript-operations": "^4.0.1", "@graphql-codegen/typescript-vue-apollo": "^3.3.7", - "@histoire/plugin-vue": "^0.14.2", - "@pinia/testing": "^0.0.14", - "@tailwindcss/line-clamp": "^0.4.2", - "@testing-library/jest-dom": "^5.16.5", + "@histoire/plugin-vue": "^0.17.1", + "@pinia/testing": "^0.1.3", + "@testing-library/jest-dom": "^5.17.0", "@testing-library/user-event": "^14.4.3", - "@testing-library/vue": "^6.6.1", - "@types/lodash-es": "^4.17.6", + "@testing-library/vue": "^7.0.0", + "@types/lodash-es": "^4.17.8", "@types/rails__actioncable": "^6.1.6", "@types/ua-parser-js": "^0.7.36", - "@types/uuid": "^9.0.0", - "@typescript-eslint/eslint-plugin": "^5.51.0", - "@typescript-eslint/parser": "^5.51.0", - "@vitejs/plugin-vue": "^4.0.0", - "@vue/eslint-config-prettier": "^7.0.0", - "@vue/eslint-config-typescript": "^11.0.2", - "@vue/test-utils": "^2.2.10", - "autoprefixer": "^10.4.13", - "eslint": "^8.33.0", + "@types/uuid": "^9.0.2", + "@typescript-eslint/eslint-plugin": "^5.62.0", + "@typescript-eslint/parser": "^5.62.0", + "@vitejs/plugin-vue": "^4.2.3", + "@vue/eslint-config-prettier": "^8.0.0", + "@vue/eslint-config-typescript": "^11.0.3", + "@vue/test-utils": "^2.4.1", + "autoprefixer": "^10.4.15", + "eslint": "^8.45.0", "eslint-config-airbnb-base": "^15.0.0", - "eslint-config-prettier": "^8.6.0", + "eslint-config-prettier": "^8.8.0", "eslint-import-resolver-alias": "^1.1.2", + "eslint-import-resolver-typescript": "^3.5.5", "eslint-plugin-import": "^2.27.5", - "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-prettier": "^5.0.0", "eslint-plugin-prettier-vue": "^4.2.0", "eslint-plugin-security": "^1.7.1", - "eslint-plugin-sonarjs": "^0.18.0", - "eslint-plugin-vue": "^9.9.0", + "eslint-plugin-sonarjs": "^0.19.0", + "eslint-plugin-vue": "^9.15.1", "eslint-plugin-zammad": "file:.eslint-plugin-zammad", - "histoire": "^0.14.2", - "jsdom": "^21.1.0", + "histoire": "^0.17.0", + "jsdom": "^22.1.0", "mock-apollo-client": "^1.2.1", - "postcss": "^8.4.21", + "postcss": "^8.4.28", "postcss-html": "^1.5.0", - "prettier": "2.8.4", - "prettier-plugin-tailwindcss": "^0.2.2", - "regenerator-runtime": "^0.13.11", - "sass": "^1.58.0", - "stylelint": "^14.16.1", + "prettier": "3.0.2", + "prettier-plugin-tailwindcss": "^0.5.3", + "regenerator-runtime": "^0.14.0", + "sass": "^1.65.1", + "stylelint": "^15.10.3", "stylelint-config-prettier": "^9.0.5", - "stylelint-config-recommended-vue": "^1.4.0", - "stylelint-config-standard": "^29.0.0", - "stylelint-config-standard-scss": "^6.1.0", - "stylelint-prettier": "^2.0.0", - "stylelint-scss": "^4.4.0", - "tailwindcss": "^3.2.6", + "stylelint-config-recommended-vue": "^1.5.0", + "stylelint-config-standard": "^34.0.0", + "stylelint-config-standard-scss": "^10.0.0", + "stylelint-prettier": "^4.0.2", + "stylelint-scss": "^5.1.0", + "svg-baker": "^1.7.0", + "svgo": "^3.0.2", + "tailwindcss": "^3.3.3", "timezone-mock": "^1.3.6", - "ts-node": "^10.9.1", - "type-fest": "^3.5.7", - "typescript": "^4.9.5", - "vite": "^4.0.4", - "vite-plugin-pwa": "^0.14.1", - "vite-plugin-ruby": "^3.1.3", - "vite-plugin-svg-icons": "^2.0.1", - "vitest": "^0.28.4", + "type-fest": "^3.13.1", + "typescript": "^5.1.6", + "vite": "^4.4.9", + "vite-plugin-pwa": "^0.16.4", + "vite-plugin-ruby": "^3.2.2", + "vitest": "^0.34.3", "vitest-axe": "^0.1.0", - "vue-tsc": "^1.0.24" + "vue-tsc": "^1.8.8" }, "dependencies": { - "@apollo/client": "^3.7.7", - "@formkit/core": "^1.0.0-beta.13-c578106", - "@formkit/dev": "^1.0.0-beta.13-c578106", - "@formkit/i18n": "^1.0.0-beta.13-c578106", - "@formkit/inputs": "^1.0.0-beta.13-c578106", - "@formkit/rules": "^1.0.0-beta.13-c578106", - "@formkit/tailwindcss": "^1.0.0-beta.13-c578106", - "@formkit/themes": "^1.0.0-beta.13-c578106", - "@formkit/utils": "^1.0.0-beta.13-c578106", - "@formkit/validation": "^1.0.0-beta.13-c578106", - "@formkit/vue": "^1.0.0-beta.13-c578106", + "@apollo/client": "^3.7.17", + "@formkit/core": "^0.17.4", + "@formkit/dev": "^0.17.4", + "@formkit/i18n": "^0.17.4", + "@formkit/inputs": "^0.17.4", + "@formkit/rules": "^0.17.4", + "@formkit/tailwindcss": "^0.17.4", + "@formkit/themes": "^0.17.4", + "@formkit/utils": "^0.17.4", + "@formkit/validation": "^0.17.4", + "@formkit/vue": "^0.17.4", + "@github/webauthn-json": "^2.1.1", "@rails/actioncable": "6.1.7", - "@tiptap/core": "^2.0.0-beta.217", - "@tiptap/extension-blockquote": "^2.0.0-beta.217", - "@tiptap/extension-character-count": "^2.0.0-beta.217", - "@tiptap/extension-image": "^2.0.0-beta.217", - "@tiptap/extension-link": "^2.0.0-beta.217", - "@tiptap/extension-list-item": "^2.0.0-beta.217", - "@tiptap/extension-mention": "^2.0.0-beta.217", - "@tiptap/extension-ordered-list": "^2.0.0-beta.217", - "@tiptap/extension-paragraph": "^2.0.0-beta.217", - "@tiptap/extension-strike": "^2.0.0-beta.217", - "@tiptap/extension-underline": "^2.0.0-beta.217", - "@tiptap/pm": "^2.0.0-beta.217", - "@tiptap/starter-kit": "^2.0.0-beta.217", - "@tiptap/suggestion": "^2.0.0-beta.217", - "@tiptap/vue-3": "^2.0.0-beta.217", - "@vue/apollo-composable": "^4.0.0-beta.2", - "@vueuse/core": "^9.12.0", - "@vueuse/router": "^9.12.0", - "@vueuse/shared": "^9.12.0", + "@tiptap/core": "^2.0.4", + "@tiptap/extension-blockquote": "^2.0.4", + "@tiptap/extension-character-count": "^2.0.4", + "@tiptap/extension-hard-break": "^2.0.4", + "@tiptap/extension-image": "^2.0.4", + "@tiptap/extension-link": "^2.0.4", + "@tiptap/extension-list-item": "^2.0.4", + "@tiptap/extension-mention": "^2.0.4", + "@tiptap/extension-ordered-list": "^2.0.4", + "@tiptap/extension-paragraph": "^2.0.4", + "@tiptap/extension-strike": "^2.0.4", + "@tiptap/extension-underline": "^2.0.4", + "@tiptap/pm": "^2.0.4", + "@tiptap/starter-kit": "^2.0.4", + "@tiptap/suggestion": "^2.0.4", + "@tiptap/vue-3": "^2.0.4", + "@vue/apollo-composable": "4.0.0-beta.5", + "@vueuse/core": "^10.4.0", + "@vueuse/router": "^10.4.0", + "@vueuse/shared": "^10.4.0", "async-mutex": "^0.4.0", "flatpickr": "^4.6.13", - "graphql": "^16.6.0", - "graphql-ruby-client": "^1.11.5", + "graphql": "^16.7.1", + "graphql-ruby-client": "^1.11.8", "graphql-tag": "^2.12.6", - "linkify-string": "^4.1.0", - "linkifyjs": "^4.1.0", + "linkify-string": "^4.1.1", + "linkifyjs": "^4.1.1", "lodash-es": "^4.17.21", "loglevel": "^1.8.1", - "mitt": "^3.0.0", - "pinia": "^2.0.30", + "mitt": "^3.0.1", + "pinia": "^2.1.6", "tippy.js": "^6.3.7", - "ua-parser-js": "^1.0.33", + "tiptap-text-direction": "^0.3.0", + "ua-parser-js": "^1.0.35", "uuid": "^9.0.0", - "vue": "^3.2.47", + "vue": "^3.3.4", "vue-advanced-cropper": "^2.8.8", - "vue-easy-lightbox": "1.12.0", - "vue-router": "^4.1.6", + "vue-easy-lightbox": "1.16.0", + "vue-router": "^4.2.4", "vue3-draggable-resizable": "^1.6.5", "vuedraggable": "^4.1.0", - "workbox-core": "^6.5.4", - "workbox-precaching": "^6.5.4", - "workbox-window": "^6.5.4" + "workbox-core": "^7.0.0", + "workbox-precaching": "^7.0.0", + "workbox-window": "^7.0.0" }, "resolutions": { "loader-utils": "^3.2.1", - "postcss": "^8.4.21" + "postcss": "^8.4.28", + "stylelint-config-recommended": "^13.0.0" }, "name": "Zammad", - "version": "5.4.1" + "version": "6.1.0" } diff --git a/pkgs/applications/networking/misc/zammad/source.json b/pkgs/applications/networking/misc/zammad/source.json index f7b7280b468d..39b17e82847a 100644 --- a/pkgs/applications/networking/misc/zammad/source.json +++ b/pkgs/applications/networking/misc/zammad/source.json @@ -1,8 +1,8 @@ { "owner": "zammad", "repo": "zammad", - "rev": "643aba6ba4ba66c6127038c8cc2cc7a20b912678", - "hash": "sha256-vLLn989M5ZN+jTh60BopEKbuaxOBfDsk6PiM+gHFClo=", + "rev": "ec4ddb8ae6a55d1c8e64ab5ddda9ff3e9d4f45c8", + "hash": "sha256-+AphZ0pKlXFdcncnDxeLdDL3OH2dyF0nb69+/W2dLgc=", "fetchSubmodules": true } From a1f6e1d6f1e3732bdd73af491282e38c2aa3e390 Mon Sep 17 00:00:00 2001 From: netali Date: Thu, 23 Nov 2023 18:13:51 +0100 Subject: [PATCH 3/4] nixos/zammad: update for zammad 6.1 --- nixos/modules/services/development/zammad.nix | 55 +++++++++++++++++-- 1 file changed, 49 insertions(+), 6 deletions(-) diff --git a/nixos/modules/services/development/zammad.nix b/nixos/modules/services/development/zammad.nix index d24ed24ef395..d4340c43dbad 100644 --- a/nixos/modules/services/development/zammad.nix +++ b/nixos/modules/services/development/zammad.nix @@ -21,6 +21,7 @@ let NODE_ENV = "production"; RAILS_SERVE_STATIC_FILES = "true"; RAILS_LOG_TO_STDOUT = "true"; + REDIS_URL = "redis://${cfg.redis.host}:${toString cfg.redis.port}"; }; databaseConfig = settingsFormat.generate "database.yml" cfg.database.settings; in @@ -70,6 +71,36 @@ in description = lib.mdDoc "Websocket service port."; }; + redis = { + createLocally = mkOption { + type = types.bool; + default = true; + description = lib.mdDoc "Whether to create a local redis automatically."; + }; + + name = mkOption { + type = types.str; + default = "zammad"; + description = lib.mdDoc '' + Name of the redis server. Only used if `createLocally` is set to true. + ''; + }; + + host = mkOption { + type = types.str; + default = "localhost"; + description = lib.mdDoc '' + Redis server address. + ''; + }; + + port = mkOption { + type = types.port; + default = 6379; + description = lib.mdDoc "Port of the redis server."; + }; + }; + database = { type = mkOption { type = types.enum [ "PostgreSQL" "MySQL" ]; @@ -211,6 +242,10 @@ in assertion = cfg.database.createLocally -> cfg.database.passwordFile == null; message = "a password cannot be specified if services.zammad.database.createLocally is set to true"; } + { + assertion = cfg.redis.createLocally -> cfg.redis.host == "localhost"; + message = "the redis host must be localhost if services.zammad.redis.createLocally is set to true"; + } ]; services.mysql = optionalAttrs (cfg.database.createLocally && cfg.database.type == "MySQL") { @@ -236,6 +271,13 @@ in ]; }; + services.redis = optionalAttrs cfg.redis.createLocally { + servers."${cfg.redis.name}" = { + enable = true; + port = cfg.redis.port; + }; + }; + systemd.services.zammad-web = { inherit environment; serviceConfig = serviceConfig // { @@ -245,6 +287,8 @@ in after = [ "network.target" "postgresql.service" + ] ++ optionals cfg.redis.createLocally [ + "redis-${cfg.redis.name}.service" ]; requires = [ "postgresql.service" @@ -308,16 +352,15 @@ in script = "./script/websocket-server.rb -b ${cfg.host} -p ${toString cfg.websocketPort} start"; }; - systemd.services.zammad-scheduler = { - inherit environment; - serviceConfig = serviceConfig // { Type = "forking"; }; + systemd.services.zammad-worker = { + inherit serviceConfig environment; after = [ "zammad-web.service" ]; requires = [ "zammad-web.service" ]; - description = "Zammad scheduler"; + description = "Zammad background worker"; wantedBy = [ "multi-user.target" ]; - script = "./script/scheduler.rb start"; + script = "./script/background-worker.rb start"; }; }; - meta.maintainers = with lib.maintainers; [ garbas taeer ]; + meta.maintainers = with lib.maintainers; [ taeer netali ]; } From 531fa59187c931c9a5b3b20e49a3dace9d3b5357 Mon Sep 17 00:00:00 2001 From: netali Date: Sun, 3 Dec 2023 11:13:32 +0100 Subject: [PATCH 4/4] nixos/tests/zammad: fix test --- nixos/tests/zammad.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/nixos/tests/zammad.nix b/nixos/tests/zammad.nix index 7a2d40e82b3e..1b2f24594699 100644 --- a/nixos/tests/zammad.nix +++ b/nixos/tests/zammad.nix @@ -4,7 +4,7 @@ import ./make-test-python.nix ( { name = "zammad"; - meta.maintainers = with lib.maintainers; [ garbas taeer n0emis ]; + meta.maintainers = with lib.maintainers; [ taeer n0emis netali ]; nodes.machine = { config, ... }: { services.zammad.enable = true; @@ -44,9 +44,10 @@ import ./make-test-python.nix ( testScript = '' start_all() machine.wait_for_unit("postgresql.service") + machine.wait_for_unit("redis-zammad.service") machine.wait_for_unit("zammad-web.service") machine.wait_for_unit("zammad-websocket.service") - machine.wait_for_unit("zammad-scheduler.service") + machine.wait_for_unit("zammad-worker.service") # wait for zammad to fully come up machine.sleep(120)