diff --git a/.circleci/config.yml b/.circleci/config.yml index caf67e7d9a..20770c877e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,34 +1,34 @@ version: 2.1 orbs: - samvera: samvera/circleci-orb@0 + samvera: samvera/circleci-orb@1.0.0 jobs: build: docker: - # Primary container image where all steps run. - - image: avalonmediasystem/avalon:7.1-slim-dev-20200324 - environment: - - DATABASE_URL=postgresql://postgres@localhost:5432/postgres - - FEDORA_URL=http://localhost:8080/fcrepo/rest - - FEDORA_TIMEOUT=300 - - RAILS_ENV=test - # Secondary container image on common network. - - image: postgres:10-alpine - environment: - - POSTGRES_USER=postgres - - POSTGRES_DB=avalon - - POSTGRES_PASSWORD=password - - image: ualbertalib/docker-fcrepo4:4.7 - environment: - CATALINA_OPTS: "-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC" - - image: solr:7-alpine - command: bin/solr -cloud -noprompt -f -p <> - - image: redis:alpine + # Primary container image where all steps run. + - image: avalonmediasystem/avalon:7.3.0-dev + environment: + - DATABASE_URL=postgresql://postgres@localhost:5432/postgres + - FEDORA_URL=http://localhost:8080/fcrepo/rest + - FEDORA_TIMEOUT=300 + - RAILS_ENV=test + # Secondary container image on common network. + - image: postgres:10-alpine + environment: + - POSTGRES_USER=postgres + - POSTGRES_DB=avalon + - POSTGRES_PASSWORD=password + - image: ualbertalib/docker-fcrepo4:4.7 + environment: + CATALINA_OPTS: '-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC' + - image: solr:7-alpine + command: bin/solr -cloud -noprompt -f -p <> + - image: redis:alpine parameters: ruby_ver: - description: "Ruby version" - default: "2.5.5" - type: "string" + description: 'Ruby version' + default: '2.7' + type: 'string' solr_port: type: string default: '8985' @@ -77,7 +77,19 @@ jobs: - run: command: ./cc-test-reporter before-build - - samvera/parallel_rspec + # Pull in the parallel_rspec step and modify it to ensure that test results get stored + # - samvera/parallel_rspec + - run: + name: Run rspec in parallel + command: | + mkdir /tmp/test-results + bundle exec rspec --format progress --format RspecJunitFormatter -o /tmp/test-results/rspec.xml $(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings) + # collect reports + - store_test_results: + path: /tmp/test-results + - store_artifacts: + path: /tmp/test-results + destination: test-results - run: command: ./cc-test-reporter format-coverage -t simplecov -o "coverage/codeclimate.$CIRCLE_NODE_INDEX.json" @@ -94,7 +106,7 @@ jobs: default: 4 docker: # Primary container image where all steps run. - - image: avalonmediasystem/avalon:6.x-dev + - image: avalonmediasystem/avalon:7.3.0-dev working_directory: /home/app/avalon @@ -117,10 +129,10 @@ workflows: build_test_report: jobs: - build: - ruby_ver: 2.5.5 - name: "Ruby2-5-5" + ruby_ver: '2.7' + name: 'Ruby2-7' parallelism: 4 - upload-coverage: parallelism: 4 requires: - - Ruby2-5-5 + - Ruby2-7 diff --git a/.rspec b/.rspec index 83e16f8044..47895a6d3e 100644 --- a/.rspec +++ b/.rspec @@ -1,2 +1,4 @@ --color --require spec_helper +--profile +--format progress diff --git a/Dockerfile b/Dockerfile index ac01c5ba4f..ed71759370 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,13 +1,15 @@ # Base stage for building gems -FROM ruby:2.5.5-stretch as bundle -RUN echo "deb http://deb.debian.org/debian stretch-backports main" >> /etc/apt/sources.list \ - && apt-get update && apt-get upgrade -y build-essential \ - && apt-get install -y --no-install-recommends \ +FROM ruby:2.7-bullseye as bundle +LABEL stage=build +LABEL project=avalon +RUN apt-get update && apt-get upgrade -y build-essential && apt-get autoremove \ + && apt-get install -y --no-install-recommends --fix-missing \ cmake \ pkg-config \ zip \ git \ - libyaz-dev \ + ffmpeg \ + libsqlite3-dev \ && rm -rf /var/lib/apt/lists/* \ && apt-get clean @@ -20,31 +22,43 @@ RUN gem install bundler -v "$(grep -A 1 "BUNDLED WITH" Gemfile.lock | ta # Build development gems FROM bundle as bundle-dev -RUN bundle install --with aws development test postgres --without production +LABEL stage=build +LABEL project=avalon +RUN bundle config set --local without 'production' \ + && bundle config set --local with 'aws development test postgres' \ + && bundle install # Download binaries in parallel -FROM ruby:2.5.5-stretch as download +FROM ruby:2.7-bullseye as download +LABEL stage=build +LABEL project=avalon RUN curl -L https://github.com/jwilder/dockerize/releases/download/v0.6.1/dockerize-linux-amd64-v0.6.1.tar.gz | tar xvz -C /usr/bin/ RUN curl https://chromedriver.storage.googleapis.com/2.46/chromedriver_linux64.zip -o /usr/local/bin/chromedriver \ && chmod +x /usr/local/bin/chromedriver RUN curl https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb -o /chrome.deb -RUN mkdir -p /tmp/ffmpeg && cd /tmp/ffmpeg \ - && curl https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz | tar xJ \ - && cp `find . -type f -executable` /usr/bin/ +RUN apt-get -y update && apt-get install -y ffmpeg # Base stage for building final images -FROM ruby:2.5.5-slim-stretch as base -RUN apt-get update && apt-get install -y --no-install-recommends curl gnupg2 \ - && curl -sL http://deb.nodesource.com/setup_8.x | bash - \ - && curl -O https://mediaarea.net/repo/deb/repo-mediaarea_1.0-6_all.deb && dpkg -i repo-mediaarea_1.0-6_all.deb \ +FROM ruby:2.7-slim-bullseye as base +LABEL stage=build +LABEL project=avalon +RUN echo "deb http://ftp.us.debian.org/debian/ bullseye main contrib non-free" > /etc/apt/sources.list.d/bullseye.list \ + && echo "deb-src http://ftp.us.debian.org/debian/ bullseye main contrib non-free" >> /etc/apt/sources.list.d/bullseye.list \ + && cat /etc/apt/sources.list.d/bullseye.list \ + && apt-get update && apt-get install -y --no-install-recommends curl gnupg2 ffmpeg \ + && curl -sL http://deb.nodesource.com/setup_12.x | bash - \ && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ - && echo "deb http://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list + && echo "deb http://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ + && cat /etc/apt/sources.list.d/nodesource.list \ + && cat /etc/apt/sources.list.d/yarn.list -RUN apt-get update && apt-get install -y --no-install-recommends --allow-unauthenticated \ - yarn \ +RUN apt-get update && \ + apt-get -y dist-upgrade && \ + apt-get install -y --no-install-recommends --allow-unauthenticated \ nodejs \ + yarn \ lsof \ x264 \ sendmail \ @@ -52,24 +66,22 @@ RUN apt-get update && apt-get install -y --no-install-recommends --allow libxml2-dev \ libxslt-dev \ libpq-dev \ - mediainfo \ openssh-client \ zip \ dumb-init \ - libyaz-dev \ + libsqlite3-dev \ + && apt-get -y install mediainfo \ && ln -s /usr/bin/lsof /usr/sbin/ - RUN useradd -m -U app \ && su -s /bin/bash -c "mkdir -p /home/app/avalon" app WORKDIR /home/app/avalon -COPY --from=download /usr/bin/ff* /usr/bin/ - - # Build devevelopment image FROM base as dev +LABEL stage=final +LABEL project=avalon RUN apt-get install -y --no-install-recommends --allow-unauthenticated \ build-essential \ cmake @@ -86,12 +98,18 @@ RUN dpkg -i /chrome.deb || apt-get install -yf # Build production gems FROM bundle as bundle-prod -RUN bundle install --without development test --with aws production postgres +LABEL stage=build +LABEL project=avalon +RUN bundle config set --local without 'development test' \ + && bundle config set --local with 'aws production postgres' \ + && bundle install # Install node modules -FROM node:8.17.0-stretch-slim as node-modules -RUN apt-get update && apt-get install -y --no-install-recommends git +FROM node:12-bullseye-slim as node-modules +LABEL stage=build +LABEL project=avalon +RUN apt-get update && apt-get install -y --no-install-recommends git ca-certificates COPY package.json . COPY yarn.lock . RUN yarn install @@ -99,6 +117,8 @@ RUN yarn install # Build production assets FROM base as assets +LABEL stage=build +LABEL project=avalon COPY --from=bundle-prod --chown=app:app /usr/local/bundle /usr/local/bundle COPY --chown=app:app . . COPY --from=node-modules --chown=app:app /node_modules ./node_modules @@ -113,6 +133,8 @@ RUN cp config/controlled_vocabulary.yml.example config/controlled_vocabu # Build production image FROM base as prod +LABEL stage=final +LABEL project=avalon COPY --from=assets --chown=app:app /home/app/avalon /home/app/avalon COPY --from=bundle-prod --chown=app:app /usr/local/bundle /usr/local/bundle diff --git a/Gemfile b/Gemfile index 00652aad20..6e7e3cd05f 100644 --- a/Gemfile +++ b/Gemfile @@ -3,7 +3,7 @@ source 'https://rubygems.org' # Core rails gem 'bootsnap', require: false gem 'listen' -gem 'rails', '=5.2.4.5' +gem 'rails', '=5.2.6.3' gem 'sprockets', '~>3.7.2' gem 'sqlite3' @@ -21,52 +21,57 @@ gem 'uglifier', '>= 1.3.0' gem 'webpacker' # Core Samvera -gem 'active-fedora', '~> 12.1' -gem 'active_fedora-datastreams', '~> 0.2.0' +gem 'active-fedora', '~> 13.2', '>= 13.2.5' +gem 'active_fedora-datastreams', '~> 0.3' gem 'fedora-migrate', git: 'https://github.com/avalonmediasystem/fedora-migrate.git', tag: 'avalon-r6.5' -gem 'hydra-head', '~> 10.6' +gem 'hydra-head', '~> 11.0' +gem 'ldp', '~> 1.0.3' gem 'noid-rails', '~> 3.0.1' gem 'rdf-rdfxml' +gem 'rdf-vocab', '< 3.1.5' # Samvera version pins gem 'blacklight', '< 7.0' -gem 'rdf', '~> 2.2' +gem 'rdf', '~> 3.1' gem 'rsolr', '~> 1.0' # Rails & Samvera Plugins gem 'about_page', git: 'https://github.com/avalonmediasystem/about_page.git', tag: 'avalon-r6.5' -gem 'active_annotations', '~> 0.2.2' +gem 'active_annotations', '~> 0.3' gem 'activerecord-session_store', '>= 2.0.0' gem 'acts_as_list' gem 'api-pagination' gem 'avalon-about', git: 'https://github.com/avalonmediasystem/avalon-about.git', tag: 'avalon-r6.4' +gem 'bootstrap-sass', '< 3.4.1' # Pin to less than 3.4.1 due to change in behavior with popovers gem 'bootstrap-toggle-rails' gem 'bootstrap_form' gem 'iiif_manifest', '~> 0.6' gem 'rack-cors', require: 'rack/cors' gem 'rails_same_site_cookie' gem 'recaptcha', require: 'recaptcha/rails' -gem 'samvera-persona', '~> 0.1.7' +gem 'samvera-persona', '~> 0.3' gem 'speedy-af', '~> 0.1.3' # Avalon Components gem 'avalon-workflow', git: "https://github.com/avalonmediasystem/avalon-workflow.git", tag: 'avalon-r6.5' # Authentication & Authorization -gem 'devise', '~> 4.4' -gem 'devise_invitable', '~> 1.6' +gem 'devise', '~> 4.8' +gem 'devise_invitable', '~> 2.0' gem 'ims-lti', '~> 1.1.13' gem 'net-ldap' -gem 'omniauth-identity' +gem 'omniauth', '~> 2.0' +gem 'omniauth-identity', '>= 2.0.0' gem 'omniauth-lti', git: "https://github.com/avalonmediasystem/omniauth-lti.git", tag: 'avalon-r4' +gem "omniauth-saml", "~> 2.0" # Media Access & Transcoding -gem 'active_encode', '~> 0.7.0' +gem 'active_encode', '~> 0.8.2' gem 'audio_waveform-ruby', '~> 1.0.7', require: 'audio_waveform' -gem 'browse-everything', '~> 0.13.0' +gem 'browse-everything', git: "https://github.com/avalonmediasystem/browse-everything.git", branch: 'v0.16.1-gdrive-fixes-plus' gem 'fastimage' gem 'media_element_add_to_playlist', git: 'https://github.com/avalonmediasystem/media-element-add-to-playlist.git', tag: 'avalon-r6.5' -gem 'mediainfo', git: "https://github.com/avalonmediasystem/mediainfo.git", tag: 'avalon-r6.5' +gem 'mediainfo', git: "https://github.com/avalonmediasystem/mediainfo.git", branch: 'avalon_fixes' gem 'rest-client', '~> 2.0' gem 'roo' gem 'wavefile', '~> 1.0.1' @@ -76,22 +81,12 @@ gem 'edtf' gem 'iconv', '~> 1.0.6' gem 'marc' -# MediaElement.js & Plugins -gem 'mediaelement_rails', git: 'https://github.com/avalonmediasystem/mediaelement_rails.git', tag: 'avalon-r6_flash-fix' -gem 'media-element-logo-plugin' -gem 'media_element_thumbnail_selector', git: 'https://github.com/avalonmediasystem/media-element-thumbnail-selector', tag: 'avalon-r4' -gem 'mediaelement-hd-toggle', git:'https://github.com/avalonmediasystem/mediaelement-hd-toggle.git', tag: 'avalon-r6.3' -gem 'mediaelement-qualityselector', git:'https://github.com/avalonmediasystem/mediaelement-qualityselector.git', tag: 'avalon-r4' -gem 'mediaelement-skin-avalon', git:'https://github.com/avalonmediasystem/mediaelement-skin-avalon.git', tag: 'avalon-r5' -gem 'mediaelement-title', git:'https://github.com/avalonmediasystem/mediaelement-title.git', tag: 'avalon-r4' -gem 'mediaelement-track-scrubber', git: 'https://github.com/avalonmediasystem/mediaelement-track-scrubber.git', tag: 'avalon-r6' - # Jobs gem 'activejob-traffic_control' gem 'activejob-uniqueness' gem 'redis-rails' -gem 'sidekiq', '~> 5.2.7' -gem 'sidekiq-cron', '~> 1.2' +gem 'sidekiq', '~> 6.2' +gem 'sidekiq-cron', '~> 1.2', git: "https://github.com/avalonmediasystem/sidekiq-cron.git", tag: 'v1.2.1-avalon' # Coding Patterns gem 'config' @@ -134,7 +129,7 @@ group :test do gem 'factory_bot_rails' gem 'fakefs', require: 'fakefs/safe' gem 'faker' - gem 'hashdiff' + gem 'hashdiff', ">= 1.0" gem 'rails-controller-testing' gem 'rspec-its' gem 'rspec-retry' @@ -150,7 +145,7 @@ group :production do gem 'google-analytics-rails', '1.1.0' gem 'lograge' gem 'okcomputer' - gem 'puma' + gem 'puma', '>= 4.3.8' end # Install the bundle --with aws when running on Amazon Elastic Beanstalk diff --git a/Gemfile.lock b/Gemfile.lock index 1bb040584a..10355c06af 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -22,6 +22,27 @@ GIT specs: avalon-workflow (0.0.3) +GIT + remote: https://github.com/avalonmediasystem/browse-everything.git + revision: 7dddc2bbafe9e30c5caa9d88e57d136b8bca521a + branch: v0.16.1-gdrive-fixes-plus + specs: + browse-everything (0.16.1) + addressable (~> 2.5) + aws-sdk-s3 + bootstrap-sass (~> 3.2) + dropbox_api (>= 0.1.10) + font-awesome-rails + google-api-client (~> 0.21) + google_drive (~> 2.1) + googleauth (= 0.6.2) + rails (>= 4.2) + ruby-box + sass-rails + signet (~> 0.8) + thor (~> 0.20) + typhoeus + GIT remote: https://github.com/avalonmediasystem/fedora-migrate.git revision: 170a6e8aacb4413d133c9bd5635742d64ec855bc @@ -40,63 +61,10 @@ GIT media_element_add_to_playlist (0.0.1) rails (> 4.0) -GIT - remote: https://github.com/avalonmediasystem/media-element-thumbnail-selector - revision: b919ad61525cd608f42983846c87f48212e11646 - tag: avalon-r4 - specs: - media_element_thumbnail_selector (0.0.1) - rails (>= 3.2.3) - -GIT - remote: https://github.com/avalonmediasystem/mediaelement-hd-toggle.git - revision: 2e91a467a1fc029991a9b6b37d271459fd33acaf - tag: avalon-r6.3 - specs: - mediaelement-hd-toggle (0.0.1) - -GIT - remote: https://github.com/avalonmediasystem/mediaelement-qualityselector.git - revision: f0b1a10883a6e57faedff45112c1fb4243e99ad2 - tag: avalon-r4 - specs: - mediaelement-qualityselector (0.0.1) - -GIT - remote: https://github.com/avalonmediasystem/mediaelement-skin-avalon.git - revision: a564874595672d5f751a83ae43685728c247f49e - tag: avalon-r5 - specs: - mediaelement-skin-avalon (0.0.1) - -GIT - remote: https://github.com/avalonmediasystem/mediaelement-title.git - revision: a2e67d24217f06a0a7d46c0175cc64fc178cf1fc - tag: avalon-r4 - specs: - mediaelement-title (0.0.1) - -GIT - remote: https://github.com/avalonmediasystem/mediaelement-track-scrubber.git - revision: 8b9b094cbd30f3d8954026cd3650a26df5d5a417 - tag: avalon-r6 - specs: - mediaelement-track-scrubber (0.0.1) - rails (>= 4.0) - -GIT - remote: https://github.com/avalonmediasystem/mediaelement_rails.git - revision: 8ce0042124460f1c3893372afcee34a93d25f8fd - tag: avalon-r6_flash-fix - specs: - mediaelement_rails (0.5.1) - jquery-rails (>= 1.0) - railties (>= 3.1) - GIT remote: https://github.com/avalonmediasystem/mediainfo.git - revision: 788d7f268168e45961d2303e729d1ced71f93f58 - tag: avalon-r6.5 + revision: 11504137076169863509c1caaf3555ab65a4a64b + branch: avalon_fixes specs: mediainfo (0.7.1) @@ -109,82 +77,93 @@ GIT ims-lti omniauth +GIT + remote: https://github.com/avalonmediasystem/sidekiq-cron.git + revision: 9bb8c76863aade7849a1a85a1232683e96c41c1f + tag: v1.2.1-avalon + specs: + sidekiq-cron (1.2.1) + fugit (~> 1.1) + sidekiq (>= 4.2.1) + GIT remote: https://github.com/tawan/active-elastic-job.git - revision: ec51c5d9dedc4a1b47f2db41f26d5fceb251e979 + revision: 7d210bdbcc9c465cc9704bc6b130882fe4c8eb9f specs: - active_elastic_job (2.0.1) + active_elastic_job (3.1.0) aws-sdk-sqs (~> 1) - rails (>= 4.2) + rails (>= 5.0, < 7) GEM remote: https://rubygems.org/ specs: - actioncable (5.2.4.5) - actionpack (= 5.2.4.5) + actioncable (5.2.6.3) + actionpack (= 5.2.6.3) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailer (5.2.4.5) - actionpack (= 5.2.4.5) - actionview (= 5.2.4.5) - activejob (= 5.2.4.5) + actionmailer (5.2.6.3) + actionpack (= 5.2.6.3) + actionview (= 5.2.6.3) + activejob (= 5.2.6.3) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (5.2.4.5) - actionview (= 5.2.4.5) - activesupport (= 5.2.4.5) + actionpack (5.2.6.3) + actionview (= 5.2.6.3) + activesupport (= 5.2.6.3) rack (~> 2.0, >= 2.0.8) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.2.4.5) - activesupport (= 5.2.4.5) + actionview (5.2.6.3) + activesupport (= 5.2.6.3) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.3) - active-fedora (12.1.1) + active-fedora (13.2.5) active-triples (>= 0.11.0, < 2.0.0) - activemodel (>= 4.2.10, < 5.3) - activesupport (>= 4.2.4, < 5.3) + activemodel (>= 5.1) + activesupport (>= 5.1) deprecation faraday (~> 0.12) - faraday-encoding (= 0.0.4) + faraday-encoding (>= 0.0.5) ldp (>= 0.7.0, < 2) rsolr (>= 1.1.2, < 3) ruby-progressbar (~> 1.0) - solrizer (>= 3.4, < 5) - active-triples (1.1.0) + active-triples (1.1.1) activemodel (>= 3.0.0) activesupport (>= 3.0.0) rdf (>= 2.0.2, < 4.0) rdf-vocab (>= 2.0, < 4.0) - active_annotations (0.2.2) + active_annotations (0.3.0) json-ld - rdf-vocab (~> 2.1.0) - active_encode (0.7.0) + rails (~> 5.2) + rdf-vocab (>= 2.1.0) + active_encode (0.8.2) rails sprockets (< 4) - active_fedora-datastreams (0.2.0) - active-fedora (>= 11.0.0.pre, < 13) + active_fedora-datastreams (0.3.0) + active-fedora (>= 11.0.0.pre, < 14) + activemodel (< 6.0) nom-xml (>= 0.5.1) om (~> 3.1) + rdf (< 3.2) rdf-rdfxml (~> 2.0) - activejob (5.2.4.5) - activesupport (= 5.2.4.5) + activejob (5.2.6.3) + activesupport (= 5.2.6.3) globalid (>= 0.3.6) activejob-traffic_control (0.1.3) activejob (>= 4.2) activesupport (>= 4.2) suo - activejob-uniqueness (0.1.4) + activejob-uniqueness (0.2.2) activejob (>= 4.2, < 7) redlock (>= 1.2, < 2) - activemodel (5.2.4.5) - activesupport (= 5.2.4.5) - activerecord (5.2.4.5) - activemodel (= 5.2.4.5) - activesupport (= 5.2.4.5) + activemodel (5.2.6.3) + activesupport (= 5.2.6.3) + activerecord (5.2.6.3) + activemodel (= 5.2.6.3) + activesupport (= 5.2.6.3) arel (>= 9.0) activerecord-session_store (2.0.0) actionpack (>= 5.2.4.1) @@ -192,937 +171,85 @@ GEM multi_json (~> 1.11, >= 1.11.2) rack (>= 2.0.8, < 3) railties (>= 5.2.4.1) - activestorage (5.2.4.4) - actionpack (= 5.2.4.4) - activerecord (= 5.2.4.4) - marcel (~> 0.3.1) - activesupport (5.2.4.5) + activestorage (5.2.6.3) + actionpack (= 5.2.6.3) + activerecord (= 5.2.6.3) + marcel (~> 1.0.0) + activesupport (5.2.6.3) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) tzinfo (~> 1.1) - acts_as_list (0.9.19) - activerecord (>= 3.0) - addressable (2.6.0) - public_suffix (>= 2.0.2, < 4.0) - airbrussh (1.3.1) + acts_as_list (1.0.4) + activerecord (>= 4.2) + addressable (2.8.0) + public_suffix (>= 2.0.2, < 5.0) + airbrussh (1.4.0) sshkit (>= 1.6.1, != 1.7.0) + amazing_print (1.4.0) api-pagination (4.8.2) arel (9.0.0) - ast (2.4.0) + ast (2.4.2) audio_waveform-ruby (1.0.7) json (~> 2.3) - autoprefixer-rails (9.5.1.1) - execjs - aws-eventstream (1.1.0) - aws-partitions (1.297.0) - aws-sdk (3.0.1) - aws-sdk-resources (~> 3) - aws-sdk-accessanalyzer (1.4.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-acm (1.29.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-acmpca (1.22.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-alexaforbusiness (1.34.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-amplify (1.15.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-apigateway (1.38.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-apigatewaymanagementapi (1.12.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-apigatewayv2 (1.18.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-appconfig (1.4.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-applicationautoscaling (1.36.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-applicationdiscoveryservice (1.25.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-applicationinsights (1.8.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-appmesh (1.21.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-appstream (1.39.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-appsync (1.24.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-athena (1.24.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-augmentedairuntime (1.3.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-autoscaling (1.33.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-autoscalingplans (1.21.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-backup (1.12.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-batch (1.29.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-budgets (1.28.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-chime (1.23.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-cloud9 (1.21.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-clouddirectory (1.22.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-cloudformation (1.32.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-cloudfront (1.26.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-cloudhsm (1.20.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-cloudhsmv2 (1.21.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-cloudsearch (1.18.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-cloudsearchdomain (1.17.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-cloudtrail (1.21.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-cloudwatch (1.35.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-cloudwatchevents (1.27.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-cloudwatchlogs (1.29.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-codebuild (1.49.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-codecommit (1.31.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-codedeploy (1.28.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-codeguruprofiler (1.3.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-codegurureviewer (1.2.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-codepipeline (1.29.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-codestar (1.19.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-codestarconnections (1.1.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-codestarnotifications (1.1.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-cognitoidentity (1.20.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-cognitoidentityprovider (1.34.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-cognitosync (1.17.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-comprehend (1.30.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-comprehendmedical (1.14.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-computeoptimizer (1.1.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-configservice (1.43.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-connect (1.23.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-connectparticipant (1.1.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-core (3.94.0) + autoprefixer-rails (10.4.2.0) + execjs (~> 2) + aws-eventstream (1.2.0) + aws-partitions (1.551.0) + aws-record (2.6.1) + aws-sdk-dynamodb (~> 1.18) + aws-sdk-cloudfront (1.57.0) + aws-sdk-core (~> 3, >= 3.121.2) + aws-sigv4 (~> 1.1) + aws-sdk-core (3.125.5) aws-eventstream (~> 1, >= 1.0.2) - aws-partitions (~> 1, >= 1.239.0) + aws-partitions (~> 1, >= 1.525.0) aws-sigv4 (~> 1.1) jmespath (~> 1.0) - aws-sdk-costandusagereportservice (1.19.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-costexplorer (1.38.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-databasemigrationservice (1.31.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-dataexchange (1.1.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-datapipeline (1.17.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-datasync (1.18.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-dax (1.20.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-detective (1.4.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-devicefarm (1.31.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-directconnect (1.27.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-directoryservice (1.26.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-dlm (1.25.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-docdb (1.15.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-dynamodb (1.45.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-dynamodbstreams (1.17.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-ebs (1.2.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-ec2 (1.153.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-ec2instanceconnect (1.4.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-ecr (1.26.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-ecs (1.60.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-efs (1.26.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-eks (1.35.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-elasticache (1.31.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-elasticbeanstalk (1.28.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-elasticinference (1.2.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-elasticloadbalancing (1.20.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-elasticloadbalancingv2 (1.41.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-elasticsearchservice (1.32.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-elastictranscoder (1.19.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-emr (1.25.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-eventbridge (1.5.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-firehose (1.25.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-fms (1.23.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-forecastqueryservice (1.3.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-forecastservice (1.3.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-frauddetector (1.1.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-fsx (1.17.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-gamelift (1.29.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-glacier (1.27.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-globalaccelerator (1.16.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-glue (1.52.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-greengrass (1.29.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-groundstation (1.6.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-guardduty (1.28.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-health (1.22.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-iam (1.35.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-imagebuilder (1.4.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-importexport (1.17.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv2 (~> 1.0) - aws-sdk-inspector (1.24.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-iot (1.46.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-iot1clickdevicesservice (1.19.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-iot1clickprojects (1.19.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-iotanalytics (1.27.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-iotdataplane (1.17.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-iotevents (1.11.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-ioteventsdata (1.6.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-iotjobsdataplane (1.18.0) - aws-sdk-core (~> 3, >= 3.71.0) + aws-sdk-dynamodb (1.64.0) + aws-sdk-core (~> 3, >= 3.121.2) aws-sigv4 (~> 1.1) - aws-sdk-iotsecuretunneling (1.1.0) - aws-sdk-core (~> 3, >= 3.71.0) + aws-sdk-elastictranscoder (1.33.0) + aws-sdk-core (~> 3, >= 3.121.2) aws-sigv4 (~> 1.1) - aws-sdk-iotthingsgraph (1.5.0) - aws-sdk-core (~> 3, >= 3.71.0) + aws-sdk-kms (1.53.0) + aws-sdk-core (~> 3, >= 3.125.0) aws-sigv4 (~> 1.1) - aws-sdk-kafka (1.19.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-kendra (1.3.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-kinesis (1.21.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-kinesisanalytics (1.22.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-kinesisanalyticsv2 (1.14.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-kinesisvideo (1.22.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-kinesisvideoarchivedmedia (1.21.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-kinesisvideomedia (1.19.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-kinesisvideosignalingchannels (1.1.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-kms (1.30.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-lakeformation (1.2.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-lambda (1.39.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-lambdapreview (1.17.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-lex (1.24.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-lexmodelbuildingservice (1.28.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-licensemanager (1.12.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-lightsail (1.29.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-machinelearning (1.18.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-macie (1.17.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-managedblockchain (1.9.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-marketplacecatalog (1.1.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-marketplacecommerceanalytics (1.21.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-marketplaceentitlementservice (1.17.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-marketplacemetering (1.22.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-mediaconnect (1.20.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-mediaconvert (1.46.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-medialive (1.42.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-mediapackage (1.26.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-mediapackagevod (1.10.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-mediastore (1.23.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-mediastoredata (1.20.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-mediatailor (1.25.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-migrationhub (1.22.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-migrationhubconfig (1.2.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-mobile (1.17.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-mq (1.25.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-mturk (1.20.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-neptune (1.22.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-networkmanager (1.1.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-opsworks (1.22.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-opsworkscm (1.31.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-organizations (1.39.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-outposts (1.3.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-personalize (1.10.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-personalizeevents (1.5.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-personalizeruntime (1.8.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-pi (1.17.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-pinpoint (1.37.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-pinpointemail (1.17.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-pinpointsmsvoice (1.14.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-polly (1.28.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-pricing (1.17.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-qldb (1.2.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-qldbsession (1.2.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-quicksight (1.18.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-rails (3.1.0) + aws-sdk-rails (3.6.1) + aws-record (~> 2) aws-sdk-ses (~> 1) - railties (>= 5.2.0) - aws-sdk-ram (1.14.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-rds (1.82.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-rdsdataservice (1.16.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-redshift (1.40.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-rekognition (1.36.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-resourcegroups (1.22.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-resourcegroupstaggingapi (1.23.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-resources (3.70.0) - aws-sdk-accessanalyzer (~> 1) - aws-sdk-acm (~> 1) - aws-sdk-acmpca (~> 1) - aws-sdk-alexaforbusiness (~> 1) - aws-sdk-amplify (~> 1) - aws-sdk-apigateway (~> 1) - aws-sdk-apigatewaymanagementapi (~> 1) - aws-sdk-apigatewayv2 (~> 1) - aws-sdk-appconfig (~> 1) - aws-sdk-applicationautoscaling (~> 1) - aws-sdk-applicationdiscoveryservice (~> 1) - aws-sdk-applicationinsights (~> 1) - aws-sdk-appmesh (~> 1) - aws-sdk-appstream (~> 1) - aws-sdk-appsync (~> 1) - aws-sdk-athena (~> 1) - aws-sdk-augmentedairuntime (~> 1) - aws-sdk-autoscaling (~> 1) - aws-sdk-autoscalingplans (~> 1) - aws-sdk-backup (~> 1) - aws-sdk-batch (~> 1) - aws-sdk-budgets (~> 1) - aws-sdk-chime (~> 1) - aws-sdk-cloud9 (~> 1) - aws-sdk-clouddirectory (~> 1) - aws-sdk-cloudformation (~> 1) - aws-sdk-cloudfront (~> 1) - aws-sdk-cloudhsm (~> 1) - aws-sdk-cloudhsmv2 (~> 1) - aws-sdk-cloudsearch (~> 1) - aws-sdk-cloudsearchdomain (~> 1) - aws-sdk-cloudtrail (~> 1) - aws-sdk-cloudwatch (~> 1) - aws-sdk-cloudwatchevents (~> 1) - aws-sdk-cloudwatchlogs (~> 1) - aws-sdk-codebuild (~> 1) - aws-sdk-codecommit (~> 1) - aws-sdk-codedeploy (~> 1) - aws-sdk-codeguruprofiler (~> 1) - aws-sdk-codegurureviewer (~> 1) - aws-sdk-codepipeline (~> 1) - aws-sdk-codestar (~> 1) - aws-sdk-codestarconnections (~> 1) - aws-sdk-codestarnotifications (~> 1) - aws-sdk-cognitoidentity (~> 1) - aws-sdk-cognitoidentityprovider (~> 1) - aws-sdk-cognitosync (~> 1) - aws-sdk-comprehend (~> 1) - aws-sdk-comprehendmedical (~> 1) - aws-sdk-computeoptimizer (~> 1) - aws-sdk-configservice (~> 1) - aws-sdk-connect (~> 1) - aws-sdk-connectparticipant (~> 1) - aws-sdk-costandusagereportservice (~> 1) - aws-sdk-costexplorer (~> 1) - aws-sdk-databasemigrationservice (~> 1) - aws-sdk-dataexchange (~> 1) - aws-sdk-datapipeline (~> 1) - aws-sdk-datasync (~> 1) - aws-sdk-dax (~> 1) - aws-sdk-detective (~> 1) - aws-sdk-devicefarm (~> 1) - aws-sdk-directconnect (~> 1) - aws-sdk-directoryservice (~> 1) - aws-sdk-dlm (~> 1) - aws-sdk-docdb (~> 1) - aws-sdk-dynamodb (~> 1) - aws-sdk-dynamodbstreams (~> 1) - aws-sdk-ebs (~> 1) - aws-sdk-ec2 (~> 1) - aws-sdk-ec2instanceconnect (~> 1) - aws-sdk-ecr (~> 1) - aws-sdk-ecs (~> 1) - aws-sdk-efs (~> 1) - aws-sdk-eks (~> 1) - aws-sdk-elasticache (~> 1) - aws-sdk-elasticbeanstalk (~> 1) - aws-sdk-elasticinference (~> 1) - aws-sdk-elasticloadbalancing (~> 1) - aws-sdk-elasticloadbalancingv2 (~> 1) - aws-sdk-elasticsearchservice (~> 1) - aws-sdk-elastictranscoder (~> 1) - aws-sdk-emr (~> 1) - aws-sdk-eventbridge (~> 1) - aws-sdk-firehose (~> 1) - aws-sdk-fms (~> 1) - aws-sdk-forecastqueryservice (~> 1) - aws-sdk-forecastservice (~> 1) - aws-sdk-frauddetector (~> 1) - aws-sdk-fsx (~> 1) - aws-sdk-gamelift (~> 1) - aws-sdk-glacier (~> 1) - aws-sdk-globalaccelerator (~> 1) - aws-sdk-glue (~> 1) - aws-sdk-greengrass (~> 1) - aws-sdk-groundstation (~> 1) - aws-sdk-guardduty (~> 1) - aws-sdk-health (~> 1) - aws-sdk-iam (~> 1) - aws-sdk-imagebuilder (~> 1) - aws-sdk-importexport (~> 1) - aws-sdk-inspector (~> 1) - aws-sdk-iot (~> 1) - aws-sdk-iot1clickdevicesservice (~> 1) - aws-sdk-iot1clickprojects (~> 1) - aws-sdk-iotanalytics (~> 1) - aws-sdk-iotdataplane (~> 1) - aws-sdk-iotevents (~> 1) - aws-sdk-ioteventsdata (~> 1) - aws-sdk-iotjobsdataplane (~> 1) - aws-sdk-iotsecuretunneling (~> 1) - aws-sdk-iotthingsgraph (~> 1) - aws-sdk-kafka (~> 1) - aws-sdk-kendra (~> 1) - aws-sdk-kinesis (~> 1) - aws-sdk-kinesisanalytics (~> 1) - aws-sdk-kinesisanalyticsv2 (~> 1) - aws-sdk-kinesisvideo (~> 1) - aws-sdk-kinesisvideoarchivedmedia (~> 1) - aws-sdk-kinesisvideomedia (~> 1) - aws-sdk-kinesisvideosignalingchannels (~> 1) - aws-sdk-kms (~> 1) - aws-sdk-lakeformation (~> 1) - aws-sdk-lambda (~> 1) - aws-sdk-lambdapreview (~> 1) - aws-sdk-lex (~> 1) - aws-sdk-lexmodelbuildingservice (~> 1) - aws-sdk-licensemanager (~> 1) - aws-sdk-lightsail (~> 1) - aws-sdk-machinelearning (~> 1) - aws-sdk-macie (~> 1) - aws-sdk-managedblockchain (~> 1) - aws-sdk-marketplacecatalog (~> 1) - aws-sdk-marketplacecommerceanalytics (~> 1) - aws-sdk-marketplaceentitlementservice (~> 1) - aws-sdk-marketplacemetering (~> 1) - aws-sdk-mediaconnect (~> 1) - aws-sdk-mediaconvert (~> 1) - aws-sdk-medialive (~> 1) - aws-sdk-mediapackage (~> 1) - aws-sdk-mediapackagevod (~> 1) - aws-sdk-mediastore (~> 1) - aws-sdk-mediastoredata (~> 1) - aws-sdk-mediatailor (~> 1) - aws-sdk-migrationhub (~> 1) - aws-sdk-migrationhubconfig (~> 1) - aws-sdk-mobile (~> 1) - aws-sdk-mq (~> 1) - aws-sdk-mturk (~> 1) - aws-sdk-neptune (~> 1) - aws-sdk-networkmanager (~> 1) - aws-sdk-opsworks (~> 1) - aws-sdk-opsworkscm (~> 1) - aws-sdk-organizations (~> 1) - aws-sdk-outposts (~> 1) - aws-sdk-personalize (~> 1) - aws-sdk-personalizeevents (~> 1) - aws-sdk-personalizeruntime (~> 1) - aws-sdk-pi (~> 1) - aws-sdk-pinpoint (~> 1) - aws-sdk-pinpointemail (~> 1) - aws-sdk-pinpointsmsvoice (~> 1) - aws-sdk-polly (~> 1) - aws-sdk-pricing (~> 1) - aws-sdk-qldb (~> 1) - aws-sdk-qldbsession (~> 1) - aws-sdk-quicksight (~> 1) - aws-sdk-ram (~> 1) - aws-sdk-rds (~> 1) - aws-sdk-rdsdataservice (~> 1) - aws-sdk-redshift (~> 1) - aws-sdk-rekognition (~> 1) - aws-sdk-resourcegroups (~> 1) - aws-sdk-resourcegroupstaggingapi (~> 1) - aws-sdk-robomaker (~> 1) - aws-sdk-route53 (~> 1) - aws-sdk-route53domains (~> 1) - aws-sdk-route53resolver (~> 1) - aws-sdk-s3 (~> 1) - aws-sdk-s3control (~> 1) - aws-sdk-sagemaker (~> 1) - aws-sdk-sagemakerruntime (~> 1) - aws-sdk-savingsplans (~> 1) - aws-sdk-schemas (~> 1) - aws-sdk-secretsmanager (~> 1) - aws-sdk-securityhub (~> 1) - aws-sdk-serverlessapplicationrepository (~> 1) - aws-sdk-servicecatalog (~> 1) - aws-sdk-servicediscovery (~> 1) - aws-sdk-servicequotas (~> 1) - aws-sdk-ses (~> 1) - aws-sdk-sesv2 (~> 1) - aws-sdk-shield (~> 1) - aws-sdk-signer (~> 1) - aws-sdk-simpledb (~> 1) - aws-sdk-sms (~> 1) - aws-sdk-snowball (~> 1) - aws-sdk-sns (~> 1) aws-sdk-sqs (~> 1) - aws-sdk-ssm (~> 1) - aws-sdk-sso (~> 1) - aws-sdk-ssooidc (~> 1) - aws-sdk-states (~> 1) - aws-sdk-storagegateway (~> 1) - aws-sdk-support (~> 1) - aws-sdk-swf (~> 1) - aws-sdk-textract (~> 1) - aws-sdk-transcribeservice (~> 1) - aws-sdk-transcribestreamingservice (~> 1) - aws-sdk-transfer (~> 1) - aws-sdk-translate (~> 1) - aws-sdk-waf (~> 1) - aws-sdk-wafregional (~> 1) - aws-sdk-wafv2 (~> 1) - aws-sdk-workdocs (~> 1) - aws-sdk-worklink (~> 1) - aws-sdk-workmail (~> 1) - aws-sdk-workmailmessageflow (~> 1) - aws-sdk-workspaces (~> 1) - aws-sdk-xray (~> 1) - aws-sdk-robomaker (1.22.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-route53 (1.32.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-route53domains (1.19.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-route53resolver (1.12.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.61.2) - aws-sdk-core (~> 3, >= 3.83.0) + aws-sessionstore-dynamodb (~> 2) + concurrent-ruby (~> 1) + railties (>= 5.2.0) + aws-sdk-s3 (1.111.3) + aws-sdk-core (~> 3, >= 3.125.0) aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.4) + aws-sdk-ses (1.42.0) + aws-sdk-core (~> 3, >= 3.121.2) aws-sigv4 (~> 1.1) - aws-sdk-s3control (1.16.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-sagemaker (1.54.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-sagemakerruntime (1.19.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-savingsplans (1.3.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-schemas (1.1.0) - aws-sdk-core (~> 3, >= 3.71.0) + aws-sdk-sqs (1.45.0) + aws-sdk-core (~> 3, >= 3.121.2) aws-sigv4 (~> 1.1) - aws-sdk-secretsmanager (1.34.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-securityhub (1.23.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-serverlessapplicationrepository (1.25.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-servicecatalog (1.37.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-servicediscovery (1.20.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-servicequotas (1.4.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-ses (1.28.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-sesv2 (1.3.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-shield (1.23.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-signer (1.19.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-simpledb (1.17.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv2 (~> 1.0) - aws-sdk-sms (1.18.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-snowball (1.25.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-sns (1.22.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-sqs (1.24.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-ssm (1.73.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-sso (1.2.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-ssooidc (1.1.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-states (1.26.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-storagegateway (1.37.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-support (1.18.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-swf (1.18.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-textract (1.13.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-transcribeservice (1.39.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-transcribestreamingservice (1.11.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-transfer (1.17.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-translate (1.20.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-waf (1.27.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-wafregional (1.28.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-wafv2 (1.3.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-workdocs (1.21.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-worklink (1.13.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-workmail (1.22.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-workmailmessageflow (1.2.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-workspaces (1.35.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sdk-xray (1.24.0) - aws-sdk-core (~> 3, >= 3.71.0) - aws-sigv4 (~> 1.1) - aws-sigv2 (1.0.1) - aws-sigv4 (1.1.1) - aws-eventstream (~> 1.0, >= 1.0.2) + aws-sessionstore-dynamodb (2.0.1) + aws-sdk-dynamodb (~> 1) + rack (~> 2) + aws-sigv4 (1.4.0) + aws-eventstream (~> 1, >= 1.0.2) babel-source (5.8.35) babel-transpiler (0.7.0) babel-source (>= 4.0, < 6) execjs (~> 2.0) - bcrypt (3.1.12) - bcrypt-ruby (3.1.5) - bcrypt (>= 3.1.3) - bindex (0.7.0) - bixby (1.0.0) - rubocop (~> 0.50, <= 0.52.1) - rubocop-rspec (~> 1.22, <= 1.22.2) - blacklight (6.20.0) + bcrypt (3.1.16) + bindex (0.8.1) + bixby (3.0.2) + rubocop (= 0.85.1) + rubocop-ast (~> 0.3.0) + rubocop-performance + rubocop-rails + rubocop-rspec + blacklight (6.24.0) bootstrap-sass (~> 3.2) deprecation globalid @@ -1136,66 +263,53 @@ GEM blacklight (~> 6.0) cancancan (~> 1.8) deprecation (~> 1.0) - bootsnap (1.4.4) + bootsnap (1.9.1) msgpack (~> 1.0) - bootstrap-sass (3.3.7) + bootstrap-sass (3.4.0) autoprefixer-rails (>= 5.2.1) - sass (>= 3.3.4) + sassc (>= 2.0.0) bootstrap-toggle-rails (2.2.1.0) - bootstrap_form (4.2.0) - actionpack (>= 5.0) - activemodel (>= 5.0) - browse-everything (0.13.1) - addressable (~> 2.5) - aws-sdk - bootstrap-sass - dropbox-sdk (>= 1.6.2) - font-awesome-rails - google-api-client (~> 0.9) - google_drive - httparty - rails (>= 3.1) - ruby-box - sass-rails - signet - skydrive + bootstrap_form (4.5.0) + actionpack (>= 5.2) + activemodel (>= 5.2) builder (3.2.4) - byebug (11.0.1) + byebug (11.1.3) cancancan (1.17.0) - capistrano (3.11.0) + capistrano (3.16.0) airbrussh (>= 1.0.0) i18n rake (>= 10.0.0) sshkit (>= 1.9.0) - capistrano-bundler (1.5.0) + capistrano-bundler (2.0.1) capistrano (~> 3.1) - capistrano-passenger (0.2.0) + capistrano-passenger (0.2.1) capistrano (~> 3.0) - capistrano-rails (1.4.0) + capistrano-rails (1.6.1) capistrano (~> 3.1) - capistrano-bundler (~> 1.1) + capistrano-bundler (>= 1.1, < 3) capistrano-rvm (0.1.2) capistrano (~> 3.0) sshkit (~> 1.2) - capistrano-sidekiq (1.0.2) + capistrano-sidekiq (2.0.0) capistrano (>= 3.9.0) - sidekiq (>= 3.4) + capistrano-bundler + sidekiq (>= 6.0) capistrano-yarn (2.0.2) capistrano (~> 3.0) - capybara (3.19.1) + capybara (3.36.0) addressable + matrix mini_mime (>= 0.1.3) nokogiri (~> 1.8) rack (>= 1.6.0) rack-test (>= 0.6.3) - regexp_parser (~> 1.2) + regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) - childprocess (1.0.1) - rake (< 13.0) + childprocess (3.0.0) cloudfront-signer (3.0.2) codeclimate-test-reporter (1.0.7) simplecov - coderay (1.1.2) + coderay (1.1.3) coffee-rails (4.2.2) coffee-script (>= 2.2.0) railties (>= 4.0.0) @@ -1203,75 +317,87 @@ GEM coffee-script-source execjs coffee-script-source (1.12.2) - concurrent-ruby (1.1.8) - config (1.7.1) - activesupport (>= 3.0) - deep_merge (~> 1.2.1) - dry-validation (>= 0.12.2) - connection_pool (2.2.2) - crack (0.4.3) - safe_yaml (~> 1.0.0) + concurrent-ruby (1.1.9) + config (3.1.0) + deep_merge (~> 1.2, >= 1.2.1) + dry-validation (~> 1.0, >= 1.0.0) + connection_pool (2.2.5) + crack (0.4.5) + rexml crass (1.0.6) - daemons (1.3.1) - dalli (2.7.10) - database_cleaner (1.7.0) - declarative (0.0.10) - declarative-option (0.1.0) + daemons (1.4.1) + dalli (3.0.3) + database_cleaner (2.0.1) + database_cleaner-active_record (~> 2.0.0) + database_cleaner-active_record (2.0.1) + activerecord (>= 5.a) + database_cleaner-core (~> 2.0.0) + database_cleaner-core (2.0.1) + declarative (0.0.20) deep_merge (1.2.1) - deprecation (1.0.0) + deprecation (1.1.0) activesupport - devise (4.7.1) + devise (4.8.1) bcrypt (~> 3.0) orm_adapter (~> 0.1) railties (>= 4.1.0) responders warden (~> 1.2.3) - devise_invitable (1.7.5) - actionmailer (>= 4.1.0) - devise (>= 4.0.0) - diff-lcs (1.3) - docile (1.3.1) - domain_name (0.5.20180417) + devise_invitable (2.0.5) + actionmailer (>= 5.0) + devise (>= 4.6) + diff-lcs (1.4.4) + docile (1.4.0) + domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) - dotenv (2.7.2) - dotenv-rails (2.7.2) - dotenv (= 2.7.2) - railties (>= 3.2, < 6.1) - dropbox-sdk (1.6.5) - json - dry-configurable (0.8.2) + dotenv (2.7.6) + dotenv-rails (2.7.6) + dotenv (= 2.7.6) + railties (>= 3.2) + dropbox_api (0.1.18) + faraday (<= 1.0) + oauth2 (~> 1.1) + dry-configurable (0.13.0) + concurrent-ruby (~> 1.0) + dry-core (~> 0.6) + dry-container (0.9.0) concurrent-ruby (~> 1.0) - dry-core (~> 0.4, >= 0.4.7) - dry-container (0.7.0) + dry-configurable (~> 0.13, >= 0.13.0) + dry-core (0.7.1) concurrent-ruby (~> 1.0) - dry-configurable (~> 0.1, >= 0.1.3) - dry-core (0.4.7) + dry-inflector (0.2.1) + dry-initializer (3.0.4) + dry-logic (1.2.0) concurrent-ruby (~> 1.0) - dry-equalizer (0.2.2) - dry-inflector (0.1.2) - dry-logic (0.6.1) + dry-core (~> 0.5, >= 0.5) + dry-schema (1.8.0) concurrent-ruby (~> 1.0) - dry-core (~> 0.2) - dry-equalizer (~> 0.2) - dry-types (0.14.1) + dry-configurable (~> 0.13, >= 0.13.0) + dry-core (~> 0.5, >= 0.5) + dry-initializer (~> 3.0) + dry-logic (~> 1.0) + dry-types (~> 1.5) + dry-types (1.5.1) concurrent-ruby (~> 1.0) dry-container (~> 0.3) - dry-core (~> 0.4, >= 0.4.4) - dry-equalizer (~> 0.2) + dry-core (~> 0.5, >= 0.5) dry-inflector (~> 0.1, >= 0.1.2) - dry-logic (~> 0.5, >= 0.5) - dry-validation (0.13.2) + dry-logic (~> 1.0, >= 1.0.2) + dry-validation (1.7.0) concurrent-ruby (~> 1.0) - dry-configurable (~> 0.1, >= 0.1.3) - dry-core (~> 0.2, >= 0.2.1) - dry-equalizer (~> 0.2) - dry-logic (~> 0.5, >= 0.5.0) - dry-types (~> 0.14.0) - ebnf (1.1.2) - rdf (>= 2.2, < 4.0) - sxp (~> 1.0) - edtf (3.0.4) - activesupport (>= 3.0, < 6.0) + dry-container (~> 0.7, >= 0.7.1) + dry-core (~> 0.5, >= 0.5) + dry-initializer (~> 3.0) + dry-schema (~> 1.8, >= 1.8.0) + ebnf (2.2.1) + amazing_print (~> 1.2) + htmlentities (~> 4.3) + rdf (~> 3.1) + scanf (~> 1.0) + sxp (~> 1.1) + unicode-types (~> 1.6) + edtf (3.0.6) + activesupport (>= 3.0, < 7.0) email_spec (2.2.0) htmlentities (~> 4.3.3) launchy (~> 2.1) @@ -1279,38 +405,43 @@ GEM equivalent-xml (0.6.0) nokogiri (>= 1.4.3) erubi (1.10.0) - et-orbi (1.2.4) + et-orbi (1.2.6) tzinfo - execjs (2.7.0) - factory_bot (4.11.1) - activesupport (>= 3.0.0) - factory_bot_rails (4.11.1) - factory_bot (~> 4.11.1) - railties (>= 3.0.0) - fakefs (0.20.1) - faker (1.9.3) - i18n (>= 0.7) - faraday (0.15.4) + ethon (0.15.0) + ffi (>= 1.15.0) + execjs (2.8.1) + factory_bot (6.2.0) + activesupport (>= 5.0.0) + factory_bot_rails (6.2.0) + factory_bot (~> 6.2.0) + railties (>= 5.0.0) + fakefs (1.4.0) + faker (2.19.0) + i18n (>= 1.6, < 2) + faraday (0.17.4) multipart-post (>= 1.2, < 3) - faraday-encoding (0.0.4) + faraday-encoding (0.0.5) faraday - fastimage (2.1.7) + fastimage (2.2.5) fcrepo_wrapper (0.9.0) ruby-progressbar - ffi (1.10.0) - font-awesome-rails (4.7.0.5) - railties (>= 3.2, < 6.1) - fugit (1.3.9) + ffi (1.15.5) + ffi-compiler (1.0.1) + ffi (>= 1.0.0) + rake + font-awesome-rails (4.7.0.8) + railties (>= 3.2, < 8.0) + fugit (1.5.2) et-orbi (~> 1.1, >= 1.1.8) - raabro (~> 1.3) - globalid (0.4.2) - activesupport (>= 4.2.0) + raabro (~> 1.4) + globalid (1.0.0) + activesupport (>= 5.0) google-analytics-rails (1.1.0) - google-api-client (0.29.1) + google-api-client (0.32.1) addressable (~> 2.5, >= 2.5.1) googleauth (>= 0.5, < 0.10.0) httpclient (>= 2.8.1, < 3.0) - mime-types (~> 3.0) + mini_mime (~> 1.0) representable (~> 3.0) retriable (>= 2.0, < 4.0) signet (~> 0.10) @@ -1318,49 +449,50 @@ GEM google-api-client (>= 0.11.0, < 1.0.0) googleauth (>= 0.5.0, < 1.0.0) nokogiri (>= 1.5.3, < 2.0.0) - googleauth (0.8.1) + googleauth (0.6.2) faraday (~> 0.12) jwt (>= 1.4, < 3.0) - memoist (~> 0.16) + logging (~> 2.0) + memoist (~> 0.12) multi_json (~> 1.11) - os (>= 0.9, < 2.0) + os (~> 0.9) signet (~> 0.7) - haml (5.0.4) + haml (5.2.2) temple (>= 0.8.0) tilt hamster (3.0.0) concurrent-ruby (~> 1.0) - hashdiff (0.3.9) - hashie (3.6.0) + hashdiff (1.0.1) + hashie (5.0.0) hooks (0.4.1) uber (~> 0.0.14) htmlentities (4.3.4) - httmultiparty (0.3.16) - httparty (>= 0.7.3) - mimemagic - multipart-post - http-cookie (1.0.3) + http (5.0.4) + addressable (~> 2.8) + http-cookie (~> 1.0) + http-form_data (~> 2.2) + llhttp-ffi (~> 0.4.0) + http-accept (1.7.0) + http-cookie (1.0.4) domain_name (~> 0.5) - http_logger (0.5.1) - httparty (0.17.0) - mime-types (~> 3.0) - multi_xml (>= 0.5.2) + http-form_data (2.3.0) + http_logger (0.7.0) httpclient (2.8.3) - hydra-access-controls (10.6.2) - active-fedora (>= 10.0.0, < 13) + hydra-access-controls (11.0.7) + active-fedora (>= 10.0.0) activesupport (>= 4, < 6) blacklight (>= 5.16) blacklight-access_controls (~> 0.6.0) cancancan (~> 1.8) deprecation (~> 1.0) - hydra-core (10.6.2) - hydra-access-controls (= 10.6.2) + hydra-core (11.0.7) + hydra-access-controls (= 11.0.7) railties (>= 4.0.0, < 6) - hydra-head (10.6.2) - hydra-access-controls (= 10.6.2) - hydra-core (= 10.6.2) - rails (>= 3.2.6) - i18n (1.8.10) + hydra-head (11.0.7) + hydra-access-controls (= 11.0.7) + hydra-core (= 11.0.7) + rails (>= 5.2, < 6.1) + i18n (1.10.0) concurrent-ruby (~> 1.0) iconv (1.0.8) iiif_manifest (0.6.0) @@ -1368,22 +500,26 @@ GEM ims-lti (1.1.13) builder oauth (>= 0.4.5, < 0.6) - jbuilder (2.8.0) - activesupport (>= 4.2.0) - multi_json (>= 1.2) - jmespath (1.4.0) - jquery-datatables (1.10.19.1) + jbuilder (2.11.2) + activesupport (>= 5.0.0) + jmespath (1.5.0) + jquery-datatables (1.10.20) jquery-rails (4.4.0) rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) jquery-ui-rails (6.0.1) railties (>= 3.2.16) - json (2.3.0) - json-ld (3.0.2) - multi_json (~> 1.12) - rdf (>= 2.2.8, < 4.0) - jwt (2.1.0) + json (2.6.1) + json-canonicalization (0.3.0) + json-ld (3.1.10) + htmlentities (~> 4.3) + json-canonicalization (~> 0.2) + link_header (~> 0.0, >= 0.0.8) + multi_json (~> 1.14) + rack (~> 2.0) + rdf (~> 3.1) + jwt (2.3.0) kaminari (1.2.1) activesupport (>= 4.1.0) kaminari-actionview (= 1.2.1) @@ -1396,9 +532,9 @@ GEM activerecord kaminari-core (= 1.2.1) kaminari-core (1.2.1) - launchy (2.4.3) - addressable (~> 2.3) - ldp (1.0.0) + launchy (2.5.0) + addressable (~> 2.7) + ldp (1.0.3) deprecation faraday http_logger @@ -1409,262 +545,282 @@ GEM rdf-vocab (>= 0.8) slop link_header (0.0.8) - listen (3.1.5) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - ruby_dep (~> 1.2) - lograge (0.11.0) + listen (3.7.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + little-plugger (1.1.4) + llhttp-ffi (0.4.0) + ffi-compiler (~> 1.0) + rake (~> 13.0) + logging (2.3.0) + little-plugger (~> 1.1) + multi_json (~> 1.14) + lograge (0.11.2) actionpack (>= 4) activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.9.1) + loofah (2.14.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) mini_mime (>= 0.1.1) - marc (1.0.3) + marc (1.1.1) + rexml scrub_rb (>= 1.0.1, < 2) unf - marcel (0.3.3) - mimemagic (~> 0.3.2) - media-element-logo-plugin (0.0.2) - rails (>= 3.2.3) - memoist (0.16.0) - method_source (0.9.2) - mime-types (3.2.2) + marcel (1.0.2) + matrix (0.4.2) + memoist (0.16.2) + method_source (1.0.0) + mime-types (3.3.1) mime-types-data (~> 3.2015) - mime-types-data (3.2019.0331) - mimemagic (0.3.10) - nokogiri (~> 1) - rake - mini_mime (1.1.0) - mini_portile2 (2.5.0) - minitest (5.14.4) - msgpack (1.2.10) + mime-types-data (3.2021.0901) + mini_mime (1.1.2) + mini_portile2 (2.8.0) + minitest (5.15.0) + msgpack (1.4.2) multi_json (1.15.0) multi_xml (0.6.0) multipart-post (2.1.1) - mysql2 (0.5.2) - net-ldap (0.16.1) - net-scp (2.0.0) - net-ssh (>= 2.6.5, < 6.0.0) - net-ssh (5.2.0) + mysql2 (0.5.3) + net-ldap (0.17.0) + net-scp (3.0.0) + net-ssh (>= 2.6.5, < 7.0.0) + net-ssh (6.1.0) netrc (0.11.0) - nio4r (2.5.7) + nio4r (2.5.8) noid (0.9.0) - noid-rails (3.0.1) - actionpack (>= 5.0.0, < 6) + noid-rails (3.0.3) + actionpack (>= 5.0.0, < 7) noid (~> 0.9) - nokogiri (1.11.3) - mini_portile2 (~> 2.5.0) + nokogiri (1.13.3) + mini_portile2 (~> 2.8.0) racc (~> 1.4) nom-xml (1.1.0) activesupport (>= 3.2.18) i18n nokogiri - oauth (0.5.4) - oauth2 (1.4.1) - faraday (>= 0.8, < 0.16.0) + oauth (0.5.6) + oauth2 (1.4.7) + faraday (>= 0.8, < 2.0) jwt (>= 1.0, < 3.0) multi_json (~> 1.3) multi_xml (~> 0.5) rack (>= 1.2, < 3) - okcomputer (1.18.2) - om (3.1.1) - activemodel + okcomputer (1.18.4) + om (3.2.0) + activemodel (>= 5.1, < 7) activesupport nokogiri (>= 1.4.2) solrizer (~> 3.3) - omniauth (1.9.0) - hashie (>= 3.4.6, < 3.7.0) + omniauth (2.0.4) + hashie (>= 3.4.6) rack (>= 1.6.2, < 3) - omniauth-identity (1.1.1) - bcrypt-ruby (~> 3.0) - omniauth (~> 1.0) + rack-protection + omniauth-identity (3.0.9) + bcrypt + omniauth + omniauth-saml (2.0.0) + omniauth (~> 2.0) + ruby-saml (~> 1.9) orm_adapter (0.5.0) - os (1.0.1) - parallel (1.17.0) - paranoia (2.4.2) - activerecord (>= 4.0, < 6.1) - parser (2.6.3.0) - ast (~> 2.4.0) - pg (1.1.4) - powerpack (0.1.2) + os (0.9.6) + parallel (1.21.0) + paranoia (2.5.0) + activerecord (>= 5.1, < 7.1) + parser (3.0.2.0) + ast (~> 2.4.1) + pg (1.2.3) pretender (0.3.4) actionpack (>= 4.2) - pry (0.12.2) - coderay (~> 1.1.0) - method_source (~> 0.9.0) - pry-byebug (3.7.0) + pry (0.13.1) + coderay (~> 1.1) + method_source (~> 1.0) + pry-byebug (3.9.0) byebug (~> 11.0) - pry (~> 0.10) + pry (~> 0.13.0) pry-rails (0.3.9) pry (>= 0.10.4) - public_suffix (3.0.3) - puma (4.3.5) + public_suffix (4.0.6) + puma (5.6.2) nio4r (~> 2.0) - raabro (1.3.1) - racc (1.5.2) + raabro (1.4.0) + racc (1.6.0) rack (2.2.3) - rack-cors (1.1.0) + rack-cors (1.1.1) rack (>= 2.0.0) - rack-protection (2.0.7) + rack-protection (2.1.0) rack - rack-proxy (0.6.5) + rack-proxy (0.7.0) rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (5.2.4.5) - actioncable (= 5.2.4.5) - actionmailer (= 5.2.4.5) - actionpack (= 5.2.4.5) - actionview (= 5.2.4.5) - activejob (= 5.2.4.5) - activemodel (= 5.2.4.5) - activerecord (= 5.2.4.5) - activestorage (= 5.2.4.5) - activesupport (= 5.2.4.5) + rails (5.2.6.3) + actioncable (= 5.2.6.3) + actionmailer (= 5.2.6.3) + actionpack (= 5.2.6.3) + actionview (= 5.2.6.3) + activejob (= 5.2.6.3) + activemodel (= 5.2.6.3) + activerecord (= 5.2.6.3) + activestorage (= 5.2.6.3) + activesupport (= 5.2.6.3) bundler (>= 1.3.0) - railties (= 5.2.4.5) + railties (= 5.2.6.3) sprockets-rails (>= 2.0.0) - rails-controller-testing (1.0.4) - actionpack (>= 5.0.1.x) - actionview (>= 5.0.1.x) - activesupport (>= 5.0.1.x) + rails-controller-testing (1.0.5) + actionpack (>= 5.0.1.rc1) + actionview (>= 5.0.1.rc1) + activesupport (>= 5.0.1.rc1) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.3.0) + rails-html-sanitizer (1.4.2) loofah (~> 2.3) - rails_same_site_cookie (0.1.8) + rails_same_site_cookie (0.1.9) rack (>= 1.5) - user_agent_parser (~> 2.5) - railties (5.2.4.5) - actionpack (= 5.2.4.5) - activesupport (= 5.2.4.5) + user_agent_parser (~> 2.6) + railties (5.2.6.3) + actionpack (= 5.2.6.3) + activesupport (= 5.2.6.3) method_source rake (>= 0.8.7) thor (>= 0.19.0, < 2.0) rainbow (3.0.0) - rake (12.3.3) - rb-fsevent (0.10.3) - rb-inotify (0.10.0) + rake (13.0.6) + rb-fsevent (0.11.0) + rb-inotify (0.10.1) ffi (~> 1.0) rb-readline (0.5.5) rchardet (1.8.0) - rdf (2.2.12) + rdf (3.1.15) hamster (~> 3.0) link_header (~> 0.0, >= 0.0.8) - rdf-aggregate-repo (2.2.1) - rdf (>= 2.2, < 4.0) - rdf-isomorphic (2.2.0) - rdf (>= 2.0, < 4.0) - rdf-rdfa (2.2.4) - haml (~> 5.0) + rdf-aggregate-repo (3.1.0) + rdf (~> 3.1) + rdf-isomorphic (3.1.1) + rdf (~> 3.1) + rdf-rdfa (3.1.0) + haml (~> 5.1) htmlentities (~> 4.3) - rdf (>= 2.2, < 4.0) - rdf-aggregate-repo (>= 2.2, < 4.0) - rdf-xsd (>= 2.2, < 4.0) + rdf (~> 3.1) + rdf-aggregate-repo (~> 3.1) + rdf-xsd (~> 3.1) rdf-rdfxml (2.2.1) htmlentities (~> 4.3) rdf (>= 2.2, < 4.0) rdf-rdfa (>= 2.2, < 4.0) rdf-xsd (>= 2.2, < 4.0) - rdf-turtle (2.2.2) - ebnf (~> 1.1) - rdf (>= 2.2, < 4.0) - rdf-vocab (2.1.1) - rdf (~> 2.1) - rdf-xsd (2.2.1) - rdf (>= 2.2, < 4.0) - react-rails (2.5.0) + rdf-turtle (3.1.3) + ebnf (~> 2.1) + rdf (~> 3.1, >= 3.1.8) + rdf-vocab (3.1.4) + rdf (~> 3.1) + rdf-xsd (3.1.1) + rdf (~> 3.1) + rexml (~> 3.2) + react-rails (2.6.1) babel-transpiler (>= 0.7.0) connection_pool execjs railties (>= 3.2) tilt - recaptcha (4.14.0) + recaptcha (5.8.1) json - redis (4.1.3) - redis-actionpack (5.0.2) - actionpack (>= 4.0, < 6) - redis-rack (>= 1, < 3) + redis (4.6.0) + redis-actionpack (5.2.0) + actionpack (>= 5, < 7) + redis-rack (>= 2.1.0, < 3) redis-store (>= 1.1.0, < 2) - redis-activesupport (5.0.7) - activesupport (>= 3, < 6) + redis-activesupport (5.2.1) + activesupport (>= 3, < 7) redis-store (>= 1.3, < 2) - redis-rack (2.0.5) - rack (>= 1.5, < 3) + redis-rack (2.1.3) + rack (>= 2.0.8, < 3) redis-store (>= 1.2, < 2) redis-rails (5.0.2) redis-actionpack (>= 5.0, < 6) redis-activesupport (>= 5.0, < 6) redis-store (>= 1.2, < 2) - redis-store (1.6.0) - redis (>= 2.2, < 5) - redlock (1.2.0) + redis-store (1.9.0) + redis (>= 4, < 5) + redlock (1.2.2) redis (>= 3.0.0, < 5.0) - regexp_parser (1.4.0) - representable (3.0.4) + regexp_parser (2.1.1) + representable (3.1.1) declarative (< 0.1.0) - declarative-option (< 0.2.0) + trailblazer-option (>= 0.1.1, < 0.2.0) uber (< 0.2.0) - request_store (1.4.1) + request_store (1.5.0) rack (>= 1.4) - responders (3.0.0) + responders (3.0.1) actionpack (>= 5.0) railties (>= 5.0) - rest-client (2.0.2) + 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) retriable (3.1.2) - roo (2.8.2) + rexml (3.2.5) + roo (2.8.3) nokogiri (~> 1) - rubyzip (>= 1.2.1, < 2.0.0) + rubyzip (>= 1.3.0, < 3.0.0) rsolr (1.1.2) builder (>= 2.1.2) - rspec-core (3.8.0) - rspec-support (~> 3.8.0) - rspec-expectations (3.8.3) + 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.8.0) + rspec-support (~> 3.10.0) rspec-its (1.3.0) rspec-core (>= 3.0.0) rspec-expectations (>= 3.0.0) - rspec-mocks (3.8.0) + rspec-mocks (3.10.2) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.8.0) - rspec-rails (3.8.2) - actionpack (>= 3.0) - activesupport (>= 3.0) - railties (>= 3.0) - rspec-core (~> 3.8.0) - rspec-expectations (~> 3.8.0) - rspec-mocks (~> 3.8.0) - rspec-support (~> 3.8.0) - rspec-retry (0.6.1) + rspec-support (~> 3.10.0) + rspec-rails (5.0.2) + actionpack (>= 5.2) + activesupport (>= 5.2) + railties (>= 5.2) + rspec-core (~> 3.10) + rspec-expectations (~> 3.10) + rspec-mocks (~> 3.10) + rspec-support (~> 3.10) + rspec-retry (0.6.2) rspec-core (> 3.3) - rspec-support (3.8.0) + rspec-support (3.10.3) rspec_junit_formatter (0.4.1) rspec-core (>= 2, < 4, != 2.12.0) - rubocop (0.52.1) + rubocop (0.85.1) parallel (~> 1.10) - parser (>= 2.4.0.2, < 3.0) - powerpack (~> 0.1) + parser (>= 2.7.0.1) rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.7) + rexml + rubocop-ast (>= 0.0.3) ruby-progressbar (~> 1.7) - unicode-display_width (~> 1.0, >= 1.0.1) - rubocop-rspec (1.22.2) - rubocop (>= 0.52.1) + unicode-display_width (>= 1.4.0, < 2.0) + rubocop-ast (0.3.0) + parser (>= 2.7.1.4) + rubocop-performance (1.7.1) + rubocop (>= 0.82.0) + rubocop-rails (2.6.0) + activesupport (>= 4.2.0) + rack (>= 1.1) + rubocop (>= 0.82.0) + rubocop-rspec (1.41.0) + rubocop (>= 0.68.1) ruby-box (1.15.0) addressable json multipart-post oauth2 - ruby-progressbar (1.10.0) - ruby_dep (1.5.0) + ruby-progressbar (1.11.0) + ruby-saml (1.13.0) + nokogiri (>= 1.10.5) + rexml rubydora (1.9.1) activemodel activesupport @@ -1675,52 +831,47 @@ GEM nokogiri rest-client rubyzip (1.3.0) - safe_yaml (1.0.5) - samvera-persona (0.1.7) + samvera-persona (0.3.0) devise (~> 4.6) - devise_invitable (~> 1.7) + devise_invitable (>= 1.7, < 3.0) paranoia (~> 2.2) pretender - rails (>= 5.1.1) + rails (>= 5.2.4.3, < 6.1) sass (3.4.22) - sass-rails (5.0.7) - railties (>= 4.0.0, < 6) + sass-rails (5.1.0) + railties (>= 5.2.0) sass (~> 3.1) sprockets (>= 2.8, < 4.0) sprockets-rails (>= 2.0, < 4.0) tilt (>= 1.1, < 3) + sassc (2.4.0) + ffi (~> 1.9) + scanf (1.0.0) scrub_rb (1.0.1) - selenium-webdriver (3.142.2) - childprocess (>= 0.5, < 2.0) - rubyzip (~> 1.2, >= 1.2.2) - shoulda-matchers (4.0.1) - activesupport (>= 4.2.0) - sidekiq (5.2.7) - connection_pool (~> 2.2, >= 2.2.2) - rack (>= 1.5.0) - rack-protection (>= 1.5.0) - redis (>= 3.3.5, < 5) - sidekiq-cron (1.2.0) - fugit (~> 1.1) - sidekiq (>= 4.2.1) - signet (0.11.0) - addressable (~> 2.3) - faraday (~> 0.9) + selenium-webdriver (3.142.7) + childprocess (>= 0.5, < 4.0) + rubyzip (>= 1.2.2) + semantic_range (3.0.0) + shoulda-matchers (5.0.0) + activesupport (>= 5.2.0) + sidekiq (6.4.1) + connection_pool (>= 2.2.2) + rack (~> 2.0) + redis (>= 4.2.0) + signet (0.16.0) + addressable (~> 2.8) + faraday (>= 0.17.3, < 2.0) jwt (>= 1.5, < 3.0) multi_json (~> 1.10) - simplecov (0.16.1) + simplecov (0.21.2) docile (~> 1.1) - json (>= 1.8, < 3) - simplecov-html (~> 0.10.0) - simplecov-html (0.10.2) - skydrive (1.2.0) - activesupport - httmultiparty - httparty (>= 0.11.0) - oauth2 (>= 0.9.2) - slop (4.6.2) - solr_wrapper (2.1.0) - faraday + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-html (0.12.3) + simplecov_json_formatter (0.1.3) + slop (4.9.1) + solr_wrapper (3.1.2) + http retriable ruby-progressbar rubyzip @@ -1740,48 +891,52 @@ GEM babel-source (>= 5.8.11) babel-transpiler sprockets (>= 3.0.0) - sprockets-rails (3.2.2) - actionpack (>= 4.0) - activesupport (>= 4.0) + sprockets-rails (3.4.2) + actionpack (>= 5.2) + activesupport (>= 5.2) sprockets (>= 3.0.0) - sqlite3 (1.4.1) - sshkit (1.18.2) + sqlite3 (1.4.2) + sshkit (1.21.2) net-scp (>= 1.1.2) net-ssh (>= 2.8.0) - stomp (1.4.8) - suo (0.3.3) + stomp (1.4.10) + suo (0.4.0) dalli msgpack redis - sxp (1.0.1) - rdf (>= 2.2, < 4.0) - temple (0.8.1) + sxp (1.1.0) + rdf (~> 3.1) + temple (0.8.2) thor (0.20.3) thread_safe (0.3.6) - tilt (2.0.9) + tilt (2.0.10) + trailblazer-option (0.1.2) twitter-typeahead-rails (0.11.1.pre.corejavascript) actionpack (>= 3.1) jquery-rails railties (>= 3.1) + typhoeus (1.4.0) + ethon (>= 0.9.0) tzinfo (1.2.9) thread_safe (~> 0.1) uber (0.0.15) - uglifier (4.1.20) + uglifier (4.2.0) execjs (>= 0.3.0, < 3) unf (0.1.4) unf_ext - unf_ext (0.0.7.6) - unicode-display_width (1.6.0) - user_agent_parser (2.6.0) - warden (1.2.8) - rack (>= 2.0.6) + unf_ext (0.0.8) + unicode-display_width (1.8.0) + unicode-types (1.7.0) + user_agent_parser (2.7.0) + warden (1.2.9) + rack (>= 2.0.9) wavefile (1.0.1) web-console (3.7.0) actionview (>= 5.0) activemodel (>= 5.0) bindex (>= 0.4.0) railties (>= 5.0) - webdrivers (3.9.1) + webdrivers (3.9.4) nokogiri (~> 1.6) rubyzip (~> 1.0) selenium-webdriver (~> 3.0) @@ -1789,22 +944,24 @@ GEM addressable (>= 2.3.6) crack (>= 0.3.2) hashdiff - webpacker (4.0.2) - activesupport (>= 4.2) + webpacker (5.4.3) + activesupport (>= 5.2) rack-proxy (>= 0.6.1) - railties (>= 4.2) - websocket-driver (0.7.3) + railties (>= 5.2) + semantic_range (>= 2.3.0) + websocket-driver (0.7.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) with_locking (1.0.2) - xml-simple (1.1.5) + xml-simple (1.1.9) + rexml xpath (3.2.0) nokogiri (~> 1.8) xray-rails (0.3.2) rails (>= 3.1.0) - zk (1.9.6) - zookeeper (~> 1.4.0) - zookeeper (1.4.11) + zk (1.10.0) + zookeeper (~> 1.5.0) + zookeeper (1.5.0) zoom (0.5.0) PLATFORMS @@ -1812,11 +969,11 @@ PLATFORMS DEPENDENCIES about_page! - active-fedora (~> 12.1) - active_annotations (~> 0.2.2) + active-fedora (~> 13.2, >= 13.2.5) + active_annotations (~> 0.3) active_elastic_job! - active_encode (~> 0.7.0) - active_fedora-datastreams (~> 0.2.0) + active_encode (~> 0.8.2) + active_fedora-datastreams (~> 0.3) activejob-traffic_control activejob-uniqueness activerecord-session_store (>= 2.0.0) @@ -1836,9 +993,10 @@ DEPENDENCIES bixby blacklight (< 7.0) bootsnap + bootstrap-sass (< 3.4.1) bootstrap-toggle-rails bootstrap_form - browse-everything (~> 0.13.0) + browse-everything! byebug capistrano (~> 3.6) capistrano-passenger @@ -1852,8 +1010,8 @@ DEPENDENCIES coffee-rails (~> 4.2.0) config database_cleaner - devise (~> 4.4) - devise_invitable (~> 1.6) + devise (~> 4.8) + devise_invitable (~> 2.0) dotenv-rails edtf email_spec @@ -1865,9 +1023,9 @@ DEPENDENCIES fcrepo_wrapper fedora-migrate! google-analytics-rails (= 1.1.0) - hashdiff + hashdiff (>= 1.0) hooks - hydra-head (~> 10.6) + hydra-head (~> 11.0) iconv (~> 1.0.6) iiif_manifest (~> 0.6) ims-lti (~> 1.1.13) @@ -1875,37 +1033,33 @@ DEPENDENCIES jquery-datatables jquery-rails jquery-ui-rails + ldp (~> 1.0.3) listen lograge marc - media-element-logo-plugin media_element_add_to_playlist! - media_element_thumbnail_selector! - mediaelement-hd-toggle! - mediaelement-qualityselector! - mediaelement-skin-avalon! - mediaelement-title! - mediaelement-track-scrubber! - mediaelement_rails! mediainfo! mysql2 net-ldap noid-rails (~> 3.0.1) okcomputer - omniauth-identity + omniauth (~> 2.0) + omniauth-identity (>= 2.0.0) omniauth-lti! + omniauth-saml (~> 2.0) parallel pg pry-byebug pry-rails - puma + puma (>= 4.3.8) rack-cors - rails (= 5.2.4.5) + rails (= 5.2.6.3) rails-controller-testing rails_same_site_cookie rb-readline - rdf (~> 2.2) + rdf (~> 3.1) rdf-rdfxml + rdf-vocab (< 3.1.5) react-rails recaptcha redis-rails @@ -1916,13 +1070,13 @@ DEPENDENCIES rspec-rails rspec-retry rspec_junit_formatter - samvera-persona (~> 0.1.7) + samvera-persona (~> 0.3) sass (= 3.4.22) sass-rails (~> 5.0) selenium-webdriver shoulda-matchers - sidekiq (~> 5.2.7) - sidekiq-cron (~> 1.2) + sidekiq (~> 6.2) + sidekiq-cron (~> 1.2)! simplecov solr_wrapper (>= 0.16) speedy-af (~> 0.1.3) @@ -1941,4 +1095,4 @@ DEPENDENCIES zoom BUNDLED WITH - 2.2.11 + 2.3.6 diff --git a/README.md b/README.md index dbf6ad61d3..71cd45dd15 100644 --- a/README.md +++ b/README.md @@ -7,9 +7,8 @@ For more information and regular project updates visit the [Avalon blog](http://www.avalonmediasystem.org/blog). # Installing Avalon Media System -Installation instructions are available for the following platforms: - - [Linux](https://wiki.dlib.indiana.edu/display/VarVideo/Getting+Started+(Linux)) - - [macOS](https://wiki.dlib.indiana.edu/display/VarVideo/Getting+Started+(OS+X)) +Installation instructions are available on Avalon's documentation site: + - https://wiki.dlib.indiana.edu/display/VarVideo/Manual+Installation+Instructions # Development diff --git a/app/assets/images/AvalonMediaSystem_Logo_Large.png b/app/assets/images/AvalonMediaSystem_Logo_Large.png new file mode 100644 index 0000000000..34f70031b9 Binary files /dev/null and b/app/assets/images/AvalonMediaSystem_Logo_Large.png differ diff --git a/app/assets/javascripts/access_control_step.js.coffee b/app/assets/javascripts/access_control_step.js.coffee index 81042bb3d7..d99b8a9cbf 100644 --- a/app/assets/javascripts/access_control_step.js.coffee +++ b/app/assets/javascripts/access_control_step.js.coffee @@ -1,4 +1,4 @@ -# Copyright 2011-2020, The Trustees of Indiana University and Northwestern +# Copyright 2011-2022, The Trustees of Indiana University and Northwestern # University. Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # diff --git a/app/assets/javascripts/android_pre_play.js b/app/assets/javascripts/android_pre_play.js index 176b703643..e787255e1e 100644 --- a/app/assets/javascripts/android_pre_play.js +++ b/app/assets/javascripts/android_pre_play.js @@ -1,5 +1,5 @@ /* - * Copyright 2011-2020, The Trustees of Indiana University and Northwestern + * Copyright 2011-2022, The Trustees of Indiana University and Northwestern * University. Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index e23a0af0c2..81c8bb6e65 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -1,5 +1,5 @@ /* - * Copyright 2011-2020, The Trustees of Indiana University and Northwestern + * Copyright 2011-2022, The Trustees of Indiana University and Northwestern * University. Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * @@ -12,7 +12,7 @@ * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. * --- END LICENSE_HEADER BLOCK --- -*/ + */ // This is a manifest file that'll be compiled into application.js, which will include all the files // listed below. @@ -37,7 +37,6 @@ //= require bootstrap-toggle //= require cropperjs/dist/cropper.min //= require url-search-params-polyfill/index.js -//= require @babel/polyfill/dist/polyfill.min.js //= require hls.js/dist/hls.min.js @@ -55,6 +54,5 @@ //= stub media_player_wrapper/mejs4_plugin_track_scrubber //= stub media_player_wrapper/mejs4_link_back //= stub media_player_wrapper/mejs4_plugin_playlist_items -//= stub media_player_wrapper/mejs4_plugin_hd_toggle //= require_tree . diff --git a/app/assets/javascripts/autocomplete.js.coffee b/app/assets/javascripts/autocomplete.js.coffee index b6072e3ccf..46ae2d044e 100644 --- a/app/assets/javascripts/autocomplete.js.coffee +++ b/app/assets/javascripts/autocomplete.js.coffee @@ -1,4 +1,4 @@ -# Copyright 2011-2020, The Trustees of Indiana University and Northwestern +# Copyright 2011-2022, The Trustees of Indiana University and Northwestern # University. Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # diff --git a/app/assets/javascripts/avalon.js b/app/assets/javascripts/avalon.js index 75b414334c..34aa56cf65 100644 --- a/app/assets/javascripts/avalon.js +++ b/app/assets/javascripts/avalon.js @@ -1,5 +1,5 @@ /* - * Copyright 2011-2020, The Trustees of Indiana University and Northwestern + * Copyright 2011-2022, The Trustees of Indiana University and Northwestern * University. Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * diff --git a/app/assets/javascripts/avalon_player.js.coffee b/app/assets/javascripts/avalon_player.js.coffee deleted file mode 100644 index 12ba8f4b14..0000000000 --- a/app/assets/javascripts/avalon_player.js.coffee +++ /dev/null @@ -1,232 +0,0 @@ -# Copyright 2011-2020, The Trustees of Indiana University and Northwestern -# University. Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software distributed -# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR -# CONDITIONS OF ANY KIND, either express or implied. See the License for the -# specific language governing permissions and limitations under the License. -# --- END LICENSE_HEADER BLOCK --- - - - -class AvalonPlayer - constructor: (container, stream_info, opts) -> - @container = container - element = @container.find('video,audio') - @stream_info = stream_info - removeOpt = (key) -> value = opts[key]; delete opts[key]; value - thumbnail_selector = if removeOpt('thumbnailSelector') then 'thumbnailSelector' else null - add_to_playlist = if removeOpt('addToPlaylist') then 'addToPlaylist' else null - display_track_scrubber = if removeOpt('displayTrackScrubber') then 'trackScrubber' else null - add_marker = if removeOpt('addMarker') then 'addMarkerToPlaylistItem' else null - start_time = removeOpt('startTime') - success_callback = removeOpt('success') - - features = ['playpause', 'current','progress','duration',display_track_scrubber,'volume','tracks','qualities',thumbnail_selector, add_to_playlist, add_marker, 'fullscreen','responsive'] - features = (feature for feature in features when feature?) - player_options = - mode: 'auto_plugin' - usePluginFullScreen: false - thumbnailSelectorUpdateURL: '/update-url' - thumbnailSelectorEnabled: true - addToPlaylistEnabled: true - addMarkerToPlaylistItemEnabled: true - trackScrubberEnabled: display_track_scrubber == 'trackScrubber' - features: features - startQuality: 'low' - customError: 'This browser requires Adobe Flash Player to be installed for media playback.' - toggleCaptionsButtonWhenOnlyOne: 'true' - success: (mediaElement, domObject, player) => - @boundPrePlay = => if mejs.MediaFeatures.isAndroid then AndroidShim.androidPrePlay(this, player) - @boundPrePlay() - if success_callback then success_callback(mediaElement, domObject, player) - - player_options[key] = val for key, val of opts - @player = new MediaElementPlayer element, player_options - @refreshStream() - $(document).ready => @initStructureHandlers() - - setupCreationTrigger: -> - watchForCreation = => - # Special case visibility trigger for IE - if (mejs.PluginDetector.ua.match(/trident/gi) != null) then @container.find('#content').css('visibility','visible') - - if @player? && @player.created? && @player.created - $(@player).trigger('created') - else - setTimeout(watchForCreation, 100); - watchForCreation() - - refreshStream: -> - if @stream_info? && @player? - @player.pause() - videoNode = $(@player.$node) - videoNode.html('') - $('.scrubber-marker').remove() - $('.mejs-time-clip').remove() - - for hls in @stream_info.stream_hls - videoNode.append "" - if @stream_info.captions_path - videoNode.append "" - - if @stream_info.poster_image? then @player.setPoster(@stream_info.poster_image) - initialTime = if @stream_info.t? then (parseFloat(@stream_info.t)||0) else 0 - if @player.qualities? && @player.qualities.length > 0 - @player.buildqualities(@player, @player.controls, @player.layers, @player.media) - - initialize_view = => - if _this.stream_info.hasOwnProperty('t') and _this.player.options.displayMediaFragment - duration = _this.stream_info.duration - t = _this.stream_info.t - start_percent = Math.round(if isNaN(parseFloat(t[0])) then 0 else (100*parseFloat(t[0]) / duration)) - start_percent = Math.max(0,Math.min(100,start_percent)); - end_percent = Math.round(if t.length < 2 or isNaN(parseFloat(t[1])) then 100 else (100*parseFloat(t[1]) / duration)) - end_percent = Math.max(0,Math.min(100,end_percent)); - clip_span = $('').addClass('mejs-time-clip') - clip_span.css 'left', start_percent+'%' - clip_span.css 'width', end_percent-start_percent+'%' - $('.mejs-time-total').append clip_span - if _this.player.options.displayMarkers - duration = _this.stream_info.duration - scrubber = $('.mejs-time-rail') - total = $('.mejs-time-total') - scrubber.css('position', 'relative') - marker_rail = $('') - $('.row.marker').each (i,value) -> - offset = $(this)[0].dataset['offset'] - marker_id = $(this)[0].dataset['marker'] - title = String($(this).find('.marker_title')[0].text).replace(/"/g, '"') + " ["+mejs.Utility.secondsToTimeCode(offset)+"]" - offset_percent = if isNaN(parseFloat(offset)) then 0 else Math.min(100,Math.round(100*offset / duration)) - marker = $('') - marker.click (e) -> - currentPlayer.setCurrentTime offset - marker_rail.append(marker) - marker_rail.append('') - scrubber.append(marker_rail) - _this.player.globalBind('resize', (e) -> - marker_rail.width(total.width()) - ) - marker_rail.width(total.width()) - $('.scrubber-marker').bind('mouseenter', (e) -> - $('.mejs-time-float-marker[data-marker="'+this.dataset.marker+'"]').show() - ).bind 'mouseleave', (e) -> - $('.mejs-time-float-marker[data-marker="'+this.dataset.marker+'"]').hide() - @player.setCurrentTime initialTime - - @player.options.playlistItemDefaultTitle = @stream_info.embed_title - - $(@player).one 'created', => - - $(@player.media).on 'timeupdate', => - @setActiveSection() - @container.find('#content').css('visibility','visible') - @player.setCurrentTime(initialTime) - - #Save because it might be necessary if showing mediafragment of object without structure... - if @player.options.trackScrubberEnabled - if _this.stream_info.hasOwnProperty('t') - trackstart = _this.stream_info.t[0] - trackend = _this.stream_info.t[1] || _this.stream_info.duration - else - trackstart = 0 - trackend = _this.stream_info.duration - @player.initializeTrackScrubber(trackstart, trackend, _this.stream_info) - $(@player.media).on 'timeupdate', => - @player.updateTrackScrubber() - @player.globalBind('resize', (e) -> - _this.player.resizeTrackScrubber() - ) - $(@player.media).one 'loadedmetadata', initialize_view - $(@player.media).one 'loadeddata', initialize_view - # in case media is not playable yet, also listen for canplay - $(@player.media).one 'canplay', => - if @player.options.autostart - @player.media.play() - keyboardAccess() - @boundPrePlay() - if @player.options.autostart - @player.media.play() - - @player.load() - @setupCreationTrigger() - @player.cleartracks(@player, null, null, null) - @player.rebuildtracks() - - - setStreamInfo: (value) -> - @stream_info = value - @refreshStream() - - setActiveSection: -> - if @active_segment != @stream_info.id - @active_segment = @stream_info.id - @container.find("a.current-section").removeClass('current-section') - @container.find("a[data-segment='#{@active_segment}']:first").addClass('current-section') - - section_nodes = @container.find("a[data-segment='#{@active_segment}'].playable") - current_time = if @player? then @player.getCurrentTime() else 0 - active_node = null - for node in section_nodes by -1 - node_data = $(node).data() - begin = parseFloat(node_data.fragmentbegin) || 0 - end = parseFloat(node_data.fragmentend) || Number.MAX_VALUE - if (begin <= current_time <= end) - active_node = node - break -# active_node ||= $('a.current-section') - - current_stream = @container.find('a.current-stream') - if current_stream[0] != active_node - current_stream.removeClass('current-stream') - $(active_node) - .addClass('current-stream') - .trigger('streamswitch', [@stream_info]) - if @player? && @player.options.trackScrubberEnabled && active_node!=null - trackstart = parseFloat($(active_node).data('fragmentbegin')||0)||0 - trackend = parseFloat($(active_node).data('fragmentend')||@stream_info.duration)||@stream_info.duration - @player.initializeTrackScrubber(trackstart, trackend, @stream_info) - - marked_node = @container.find('i.now-playing') - now_playing_node = @container.find('a.current-stream') - if now_playing_node.length == 0 - now_playing_node = @container.find('a.current-section') - unless now_playing_node == marked_node - marked_node.remove() - now_playing_node.before('') - - initStructureHandlers: -> - @container.find('a[data-segment]').on 'click', (e) => - target = $(e.currentTarget) - segment = target.data('segment') - - current_stream = - @container.find('a.current-stream').data() || - @container.find('a.current-section').data() || - {} - target_stream = target.data() - - if current_stream.isVideo == target_stream.isVideo - e.preventDefault() - if current_stream.segment == target_stream.segment - @player.setCurrentTime(parseFloat(target.data('fragmentbegin'))) - else - $('.mejs-overlay-loading').show().closest('.mejs-layer').show() - splitUrl = (target_stream.nativeUrl || target.attr('href')).split('?') - uri = "#{splitUrl[0]}/stream" - params = ["content=#{segment}"] - params.push(splitUrl[1]) if splitUrl[1]? - autostart = @player.options.autostart - $.getJSON uri, params.join('&'), (data) => - @player.options.autostart = autostart - @setStreamInfo(data) - else - e.target.click() - return - -(exports ? this).AvalonPlayer = AvalonPlayer diff --git a/app/assets/javascripts/avalon_playlists/playlist_items.js b/app/assets/javascripts/avalon_playlists/playlist_items.js index bcefe57bae..5dc15bb323 100644 --- a/app/assets/javascripts/avalon_playlists/playlist_items.js +++ b/app/assets/javascripts/avalon_playlists/playlist_items.js @@ -1,5 +1,5 @@ /* - * Copyright 2011-2020, The Trustees of Indiana University and Northwestern + * Copyright 2011-2022, The Trustees of Indiana University and Northwestern * University. Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * diff --git a/app/assets/javascripts/avalon_playlists/playlists.js.coffee b/app/assets/javascripts/avalon_playlists/playlists.js.coffee index 1e63fea534..9bc44d2ab6 100644 --- a/app/assets/javascripts/avalon_playlists/playlists.js.coffee +++ b/app/assets/javascripts/avalon_playlists/playlists.js.coffee @@ -1,4 +1,4 @@ -# Copyright 2011-2020, The Trustees of Indiana University and Northwestern +# Copyright 2011-2022, The Trustees of Indiana University and Northwestern # University. Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # diff --git a/app/assets/javascripts/avalon_progress.js.coffee b/app/assets/javascripts/avalon_progress.js.coffee index e332a49b2d..d334c59ef7 100644 --- a/app/assets/javascripts/avalon_progress.js.coffee +++ b/app/assets/javascripts/avalon_progress.js.coffee @@ -1,4 +1,4 @@ -# Copyright 2011-2020, The Trustees of Indiana University and Northwestern +# Copyright 2011-2022, The Trustees of Indiana University and Northwestern # University. Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # diff --git a/app/assets/javascripts/avalon_timelines/timelines.js.coffee b/app/assets/javascripts/avalon_timelines/timelines.js.coffee index 4df8d3b0e1..a727171795 100644 --- a/app/assets/javascripts/avalon_timelines/timelines.js.coffee +++ b/app/assets/javascripts/avalon_timelines/timelines.js.coffee @@ -1,4 +1,4 @@ -# Copyright 2011-2020, The Trustees of Indiana University and Northwestern +# Copyright 2011-2022, The Trustees of Indiana University and Northwestern # University. Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # diff --git a/app/assets/javascripts/blacklight/facet_load.js b/app/assets/javascripts/blacklight/facet_load.js index 71d7047801..ae3323681e 100644 --- a/app/assets/javascripts/blacklight/facet_load.js +++ b/app/assets/javascripts/blacklight/facet_load.js @@ -1,5 +1,5 @@ /* - * Copyright 2011-2020, The Trustees of Indiana University and Northwestern + * Copyright 2011-2022, The Trustees of Indiana University and Northwestern * University. Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * diff --git a/app/assets/javascripts/bootstrap.js.coffee b/app/assets/javascripts/bootstrap.js.coffee index eb4eaa0ea7..519cd3e889 100644 --- a/app/assets/javascripts/bootstrap.js.coffee +++ b/app/assets/javascripts/bootstrap.js.coffee @@ -1,4 +1,4 @@ -# Copyright 2011-2020, The Trustees of Indiana University and Northwestern +# Copyright 2011-2022, The Trustees of Indiana University and Northwestern # University. Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # diff --git a/app/assets/javascripts/button_confirmation.js.coffee b/app/assets/javascripts/button_confirmation.js.coffee index 66a93026fe..558b1e1653 100644 --- a/app/assets/javascripts/button_confirmation.js.coffee +++ b/app/assets/javascripts/button_confirmation.js.coffee @@ -1,4 +1,4 @@ -# Copyright 2011-2020, The Trustees of Indiana University and Northwestern +# Copyright 2011-2022, The Trustees of Indiana University and Northwestern # University. Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # diff --git a/app/assets/javascripts/crop_upload.js b/app/assets/javascripts/crop_upload.js index 74d3175dd0..50e8ec84e1 100644 --- a/app/assets/javascripts/crop_upload.js +++ b/app/assets/javascripts/crop_upload.js @@ -1,5 +1,5 @@ /* - * Copyright 2011-2020, The Trustees of Indiana University and Northwestern + * Copyright 2011-2022, The Trustees of Indiana University and Northwestern * University. Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * diff --git a/app/assets/javascripts/datatables.js b/app/assets/javascripts/datatables.js index bbd8e17634..1d61fbc922 100644 --- a/app/assets/javascripts/datatables.js +++ b/app/assets/javascripts/datatables.js @@ -1,5 +1,5 @@ /* - * Copyright 2011-2020, The Trustees of Indiana University and Northwestern + * Copyright 2011-2022, The Trustees of Indiana University and Northwestern * University. Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * diff --git a/app/assets/javascripts/direct_upload.js.coffee b/app/assets/javascripts/direct_upload.js.coffee index d797aee068..821b31f411 100644 --- a/app/assets/javascripts/direct_upload.js.coffee +++ b/app/assets/javascripts/direct_upload.js.coffee @@ -1,4 +1,4 @@ -# Copyright 2011-2020, The Trustees of Indiana University and Northwestern +# Copyright 2011-2022, The Trustees of Indiana University and Northwestern # University. Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # diff --git a/app/assets/javascripts/dropdown_text_fields.js.coffee b/app/assets/javascripts/dropdown_text_fields.js.coffee index dc7e5fa9e8..54d4df1f3e 100644 --- a/app/assets/javascripts/dropdown_text_fields.js.coffee +++ b/app/assets/javascripts/dropdown_text_fields.js.coffee @@ -1,4 +1,4 @@ -# Copyright 2011-2020, The Trustees of Indiana University and Northwestern +# Copyright 2011-2022, The Trustees of Indiana University and Northwestern # University. Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # diff --git a/app/assets/javascripts/dynamic_fields.js.coffee b/app/assets/javascripts/dynamic_fields.js.coffee index e17ddb9d4f..f53cbf1af1 100644 --- a/app/assets/javascripts/dynamic_fields.js.coffee +++ b/app/assets/javascripts/dynamic_fields.js.coffee @@ -1,4 +1,4 @@ -# Copyright 2011-2020, The Trustees of Indiana University and Northwestern +# Copyright 2011-2022, The Trustees of Indiana University and Northwestern # University. Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # diff --git a/app/assets/javascripts/file_browse.js.coffee b/app/assets/javascripts/file_browse.js.coffee index 731f39dec5..8bbc393c24 100644 --- a/app/assets/javascripts/file_browse.js.coffee +++ b/app/assets/javascripts/file_browse.js.coffee @@ -1,4 +1,4 @@ -# Copyright 2011-2020, The Trustees of Indiana University and Northwestern +# Copyright 2011-2022, The Trustees of Indiana University and Northwestern # University. Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # diff --git a/app/assets/javascripts/file_upload_step.js.coffee b/app/assets/javascripts/file_upload_step.js.coffee index eefb8e4317..1209dc2d4f 100644 --- a/app/assets/javascripts/file_upload_step.js.coffee +++ b/app/assets/javascripts/file_upload_step.js.coffee @@ -1,4 +1,4 @@ -# Copyright 2011-2020, The Trustees of Indiana University and Northwestern +# Copyright 2011-2022, The Trustees of Indiana University and Northwestern # University. Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # diff --git a/app/assets/javascripts/fix_console.js b/app/assets/javascripts/fix_console.js index 7548798241..dd2df46c4e 100644 --- a/app/assets/javascripts/fix_console.js +++ b/app/assets/javascripts/fix_console.js @@ -1,5 +1,5 @@ /* - * Copyright 2011-2020, The Trustees of Indiana University and Northwestern + * Copyright 2011-2022, The Trustees of Indiana University and Northwestern * University. Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * diff --git a/app/assets/javascripts/hydra/hydra-head.js b/app/assets/javascripts/hydra/hydra-head.js index 3ea93910e2..5665155696 100644 --- a/app/assets/javascripts/hydra/hydra-head.js +++ b/app/assets/javascripts/hydra/hydra-head.js @@ -1,5 +1,5 @@ /* - * Copyright 2011-2020, The Trustees of Indiana University and Northwestern + * Copyright 2011-2022, The Trustees of Indiana University and Northwestern * University. Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * diff --git a/app/assets/javascripts/import_button.js.coffee b/app/assets/javascripts/import_button.js.coffee index 234af1a043..1b2ab6c12e 100644 --- a/app/assets/javascripts/import_button.js.coffee +++ b/app/assets/javascripts/import_button.js.coffee @@ -1,4 +1,4 @@ -# Copyright 2011-2020, The Trustees of Indiana University and Northwestern +# Copyright 2011-2022, The Trustees of Indiana University and Northwestern # University. Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # diff --git a/app/assets/javascripts/input_form_attribute_support.js.coffee b/app/assets/javascripts/input_form_attribute_support.js.coffee index c17c09d851..77961c8bc2 100644 --- a/app/assets/javascripts/input_form_attribute_support.js.coffee +++ b/app/assets/javascripts/input_form_attribute_support.js.coffee @@ -1,4 +1,4 @@ -# Copyright 2011-2020, The Trustees of Indiana University and Northwestern +# Copyright 2011-2022, The Trustees of Indiana University and Northwestern # University. Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # diff --git a/app/assets/javascripts/intercom_push.js b/app/assets/javascripts/intercom_push.js index cc2982d430..21d45c1e52 100644 --- a/app/assets/javascripts/intercom_push.js +++ b/app/assets/javascripts/intercom_push.js @@ -1,5 +1,5 @@ /* - * Copyright 2011-2020, The Trustees of Indiana University and Northwestern + * Copyright 2011-2022, The Trustees of Indiana University and Northwestern * University. Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * diff --git a/app/assets/javascripts/media_player_wrapper/avalon_player_new.es6 b/app/assets/javascripts/media_player_wrapper/avalon_player_new.es6 index 12fe99e036..557a60b13c 100644 --- a/app/assets/javascripts/media_player_wrapper/avalon_player_new.es6 +++ b/app/assets/javascripts/media_player_wrapper/avalon_player_new.es6 @@ -1,4 +1,4 @@ -// Copyright 2011-2018, The Trustees of Indiana University and Northwestern +// Copyright 2011-2022, The Trustees of Indiana University and Northwestern // University. Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // @@ -31,6 +31,7 @@ class MEJSPlayer { this.mejsMarkersHelper = new MEJSMarkersHelper(); this.mejsQualityHelper = new MEJSQualityHelper(); this.localStorage = window.localStorage; + this.canvasIndex = 0; // Unpack player configuration object for the new player. // This allows for variable params to be sent in. @@ -109,7 +110,8 @@ class MEJSPlayer { let itemScope = document.querySelector('[itemscope="itemscope"]'); let node = this.mejsUtility.createHTML5MediaNode( this.mediaType, - this.currentStreamInfo + this.currentStreamInfo, + this.canvasIndex ); // Mount new