From b4d0ee88c013def65e4b3cb59053a75eee5d99c5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 3 May 2024 20:22:17 +0000 Subject: [PATCH 01/19] Bump version to 9.3.5 --- app/mix.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/mix.exs b/app/mix.exs index 945286112..42fa2d1a1 100644 --- a/app/mix.exs +++ b/app/mix.exs @@ -3,7 +3,7 @@ Code.require_file("lib/env.ex") defmodule Meadow.MixProject do use Mix.Project - @app_version "9.3.4" + @app_version "9.3.5" def project do [ From ed16d10cb39d56e620107f03ff1be53f32cdeaf6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 11:15:19 +0000 Subject: [PATCH 02/19] Bump @apollo/client from 3.10.1 to 3.10.2 in /app/assets Bumps [@apollo/client](https://github.com/apollographql/apollo-client) from 3.10.1 to 3.10.2. - [Release notes](https://github.com/apollographql/apollo-client/releases) - [Changelog](https://github.com/apollographql/apollo-client/blob/main/CHANGELOG.md) - [Commits](https://github.com/apollographql/apollo-client/compare/v3.10.1...v3.10.2) --- updated-dependencies: - dependency-name: "@apollo/client" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- app/assets/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/assets/package-lock.json b/app/assets/package-lock.json index 5f629a9d2..7e818b13c 100644 --- a/app/assets/package-lock.json +++ b/app/assets/package-lock.json @@ -247,9 +247,9 @@ } }, "node_modules/@apollo/client": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.10.1.tgz", - "integrity": "sha512-QNacQBZzJla5UQ/LLBXJWM7/1v1C5cfpMQPAFjW4hg4T54wHWbg4Dr+Dp6N+hy/ygu8tepdM+/y/5VFLZhovlQ==", + "version": "3.10.2", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.10.2.tgz", + "integrity": "sha512-J4e2RQN4DgMthCqBtBOXOawYTWmdJprAWqv8rdYLmeW4/Pnrlrl4Hvb/zvENlitDAiRUU33Dc/3OJqIMEJAxNw==", "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", "@wry/caches": "^1.0.0", From 827412f8e0223a38760c8403fc231558afefec15 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 11:16:37 +0000 Subject: [PATCH 03/19] Bump @samvera/clover-iiif from 2.8.0 to 2.8.3 in /app/assets Bumps [@samvera/clover-iiif](https://github.com/samvera-labs/clover-iiif) from 2.8.0 to 2.8.3. - [Release notes](https://github.com/samvera-labs/clover-iiif/releases) - [Commits](https://github.com/samvera-labs/clover-iiif/compare/v2.8.0...v2.8.3) --- updated-dependencies: - dependency-name: "@samvera/clover-iiif" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- app/assets/package-lock.json | 21 ++++++++++++--------- app/assets/package.json | 2 +- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/app/assets/package-lock.json b/app/assets/package-lock.json index 5f629a9d2..84437c0fa 100644 --- a/app/assets/package-lock.json +++ b/app/assets/package-lock.json @@ -7,7 +7,7 @@ "license": "MIT", "dependencies": { "@absinthe/socket-apollo-link": "^0.2.1", - "@apollo/client": "latest", + "@apollo/client": "*", "@apollo/react-hooks": "^4.0.0", "@apollo/react-testing": "^4.0.0", "@appbaseio/reactivesearch": "3.23.1", @@ -20,7 +20,7 @@ "@honeybadger-io/react": "^6.1.7", "@nulib/design-system": "^1.5.1", "@radix-ui/react-dialog": "^1.0.5", - "@samvera/clover-iiif": "^2.8.0", + "@samvera/clover-iiif": "^2.8.3", "@samvera/image-downloader": "^1.1.1", "bulma": "^0.9.4", "bulma-checkradio": "^2.1.3", @@ -6799,9 +6799,9 @@ "dev": true }, "node_modules/@samvera/clover-iiif": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@samvera/clover-iiif/-/clover-iiif-2.8.0.tgz", - "integrity": "sha512-aB3f9x5EnjQnwDB4yR67Wg2INE9PZxRcy8KWS+rRTsMhDTWl4d9yCD991PPQV6h3I+JKb2PpQe4ebQ/TeJCmZA==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/@samvera/clover-iiif/-/clover-iiif-2.8.3.tgz", + "integrity": "sha512-l4byTU6eAauASgoCTC+wo3hXvY3sa5tLkvTw3CvjL2pHg/aqE0f4EXIvj0SKmFBINP1rTiX9kq91tk4sNv6fpg==", "dependencies": { "@iiif/parser": "^1.1.2", "@iiif/vault": "^0.9.22", @@ -6819,7 +6819,7 @@ "flexsearch": "^0.7.43", "hls.js": "^1.5.3", "node-webvtt": "^1.9.4", - "openseadragon": "^2.4.2", + "openseadragon": "^4.1.1", "react": "^18.2.0", "react-dom": "^18.2.0", "react-error-boundary": "^4.0.12", @@ -17955,9 +17955,12 @@ } }, "node_modules/openseadragon": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/openseadragon/-/openseadragon-2.4.2.tgz", - "integrity": "sha512-398KbZwRtOYA6OmeWRY4Q0737NTacQ9Q6whmr9Lp1MNQO3p0eBz5LIASRne+4gwequcSM1vcHcjfy3dIndQziw==" + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/openseadragon/-/openseadragon-4.1.1.tgz", + "integrity": "sha512-owU9gsasAcobLN+LM8lN58Xc2VDSDotY9mkrwS/NB6g9KX/PcusV4RZvhHng2RF/Q0pMziwldf62glwXoGnuzg==", + "funding": { + "url": "https://opencollective.com/openseadragon" + } }, "node_modules/optimism": { "version": "0.18.0", diff --git a/app/assets/package.json b/app/assets/package.json index fa4526fe0..084fd01e8 100644 --- a/app/assets/package.json +++ b/app/assets/package.json @@ -30,7 +30,7 @@ "@honeybadger-io/react": "^6.1.7", "@nulib/design-system": "^1.5.1", "@radix-ui/react-dialog": "^1.0.5", - "@samvera/clover-iiif": "^2.8.0", + "@samvera/clover-iiif": "^2.8.3", "@samvera/image-downloader": "^1.1.1", "bulma": "^0.9.4", "bulma-checkradio": "^2.1.3", From dc23efa516a0f92cdb41c6db7cdeadf352e18b5d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 May 2024 11:26:24 +0000 Subject: [PATCH 04/19] Bump @testing-library/react from 15.0.6 to 15.0.7 in /app/assets Bumps [@testing-library/react](https://github.com/testing-library/react-testing-library) from 15.0.6 to 15.0.7. - [Release notes](https://github.com/testing-library/react-testing-library/releases) - [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/react-testing-library/compare/v15.0.6...v15.0.7) --- updated-dependencies: - dependency-name: "@testing-library/react" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- app/assets/package-lock.json | 10 +++++----- app/assets/package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/assets/package-lock.json b/app/assets/package-lock.json index 5f629a9d2..57d76445e 100644 --- a/app/assets/package-lock.json +++ b/app/assets/package-lock.json @@ -7,7 +7,7 @@ "license": "MIT", "dependencies": { "@absinthe/socket-apollo-link": "^0.2.1", - "@apollo/client": "latest", + "@apollo/client": "*", "@apollo/react-hooks": "^4.0.0", "@apollo/react-testing": "^4.0.0", "@appbaseio/reactivesearch": "3.23.1", @@ -76,7 +76,7 @@ "@nulib/prettier-config": "^1.2.0", "@testing-library/dom": "^10.1.0", "@testing-library/jest-dom": "^6.4.2", - "@testing-library/react": "^15.0.6", + "@testing-library/react": "^15.0.7", "@testing-library/user-event": "^14.5.2", "@types/jest": "^29.5.12", "@types/react-beautiful-dnd": "^13.1.8", @@ -7446,9 +7446,9 @@ } }, "node_modules/@testing-library/react": { - "version": "15.0.6", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-15.0.6.tgz", - "integrity": "sha512-UlbazRtEpQClFOiYp+1BapMT+xyqWMnE+hh9tn5DQ6gmlE7AIZWcGpzZukmDZuFk3By01oiqOf8lRedLS4k6xQ==", + "version": "15.0.7", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-15.0.7.tgz", + "integrity": "sha512-cg0RvEdD1TIhhkm1IeYMQxrzy0MtUNfa3minv4MjbgcYzJAZ7yD0i0lwoPOTPr+INtiXFezt2o8xMSnyHhEn2Q==", "dev": true, "dependencies": { "@babel/runtime": "^7.12.5", diff --git a/app/assets/package.json b/app/assets/package.json index fa4526fe0..edbdb2b5c 100644 --- a/app/assets/package.json +++ b/app/assets/package.json @@ -86,7 +86,7 @@ "@nulib/prettier-config": "^1.2.0", "@testing-library/dom": "^10.1.0", "@testing-library/jest-dom": "^6.4.2", - "@testing-library/react": "^15.0.6", + "@testing-library/react": "^15.0.7", "@testing-library/user-event": "^14.5.2", "@types/jest": "^29.5.12", "@types/react-beautiful-dnd": "^13.1.8", From 356742ac60030a74dcd5b852604ac11b9bd15c4e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 May 2024 11:26:38 +0000 Subject: [PATCH 05/19] Bump react-icons from 5.1.0 to 5.2.1 in /app/assets Bumps [react-icons](https://github.com/react-icons/react-icons) from 5.1.0 to 5.2.1. - [Release notes](https://github.com/react-icons/react-icons/releases) - [Commits](https://github.com/react-icons/react-icons/compare/v5.1.0...v5.2.1) --- updated-dependencies: - dependency-name: react-icons dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- app/assets/package-lock.json | 10 +++++----- app/assets/package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/assets/package-lock.json b/app/assets/package-lock.json index 5f629a9d2..c69ee939a 100644 --- a/app/assets/package-lock.json +++ b/app/assets/package-lock.json @@ -7,7 +7,7 @@ "license": "MIT", "dependencies": { "@absinthe/socket-apollo-link": "^0.2.1", - "@apollo/client": "latest", + "@apollo/client": "*", "@apollo/react-hooks": "^4.0.0", "@apollo/react-testing": "^4.0.0", "@appbaseio/reactivesearch": "3.23.1", @@ -51,7 +51,7 @@ "react-error-boundary": "^4.0.13", "react-helmet": "^6.1.0", "react-hook-form": "^7.33.1", - "react-icons": "^5.0.1", + "react-icons": "^5.2.1", "react-json-pretty": "^2.2.0", "recharts": "^2.12.6", "use-clipboard-copy": "^0.2.0" @@ -19028,9 +19028,9 @@ } }, "node_modules/react-icons": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.1.0.tgz", - "integrity": "sha512-D3zug1270S4hbSlIRJ0CUS97QE1yNNKDjzQe3HqY0aefp2CBn9VgzgES27sRR2gOvFK+0CNx/BW0ggOESp6fqQ==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.2.1.tgz", + "integrity": "sha512-zdbW5GstTzXaVKvGSyTaBalt7HSfuK5ovrzlpyiWHAFXndXTdd/1hdDHI4xBM1Mn7YriT6aqESucFl9kEXzrdw==", "peerDependencies": { "react": "*" } diff --git a/app/assets/package.json b/app/assets/package.json index fa4526fe0..89ce7bae6 100644 --- a/app/assets/package.json +++ b/app/assets/package.json @@ -61,7 +61,7 @@ "react-error-boundary": "^4.0.13", "react-helmet": "^6.1.0", "react-hook-form": "^7.33.1", - "react-icons": "^5.0.1", + "react-icons": "^5.2.1", "react-json-pretty": "^2.2.0", "recharts": "^2.12.6", "use-clipboard-copy": "^0.2.0" From 93e50ed95c732ca66c31a70d485c44b6c81bd5bc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 May 2024 11:27:04 +0000 Subject: [PATCH 06/19] Bump sass from 1.75.0 to 1.77.0 in /app/assets Bumps [sass](https://github.com/sass/dart-sass) from 1.75.0 to 1.77.0. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.75.0...1.77.0) --- updated-dependencies: - dependency-name: sass dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- app/assets/package-lock.json | 10 +++++----- app/assets/package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/assets/package-lock.json b/app/assets/package-lock.json index 5f629a9d2..6a25d7828 100644 --- a/app/assets/package-lock.json +++ b/app/assets/package-lock.json @@ -7,7 +7,7 @@ "license": "MIT", "dependencies": { "@absinthe/socket-apollo-link": "^0.2.1", - "@apollo/client": "latest", + "@apollo/client": "*", "@apollo/react-hooks": "^4.0.0", "@apollo/react-testing": "^4.0.0", "@appbaseio/reactivesearch": "3.23.1", @@ -99,7 +99,7 @@ "react-dom": "^18.3.1", "react-router-dom": "^5.3.0", "react-router-prop-types": "^1.0.5", - "sass": "^1.72.0", + "sass": "^1.77.0", "ts-node": "^10.9.2", "typescript": "^5.4.2", "use-phoenix-channel": "^1.1.1" @@ -20000,9 +20000,9 @@ } }, "node_modules/sass": { - "version": "1.75.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.75.0.tgz", - "integrity": "sha512-ShMYi3WkrDWxExyxSZPst4/okE9ts46xZmJDSawJQrnte7M1V9fScVB+uNXOVKRBt0PggHOwoZcn8mYX4trnBw==", + "version": "1.77.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.0.tgz", + "integrity": "sha512-eGj4HNfXqBWtSnvItNkn7B6icqH14i3CiCGbzMKs3BAPTq62pp9NBYsBgyN4cA+qssqo9r26lW4JSvlaUUWbgw==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", diff --git a/app/assets/package.json b/app/assets/package.json index fa4526fe0..23271b6bc 100644 --- a/app/assets/package.json +++ b/app/assets/package.json @@ -109,7 +109,7 @@ "react-dom": "^18.3.1", "react-router-dom": "^5.3.0", "react-router-prop-types": "^1.0.5", - "sass": "^1.72.0", + "sass": "^1.77.0", "ts-node": "^10.9.2", "typescript": "^5.4.2", "use-phoenix-channel": "^1.1.1" From 2fde5e028ffe72be7afd7fb57a86bd03824355c0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 May 2024 15:17:51 +0000 Subject: [PATCH 07/19] Bump @testing-library/jest-dom from 6.4.2 to 6.4.5 in /app/assets Bumps [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) from 6.4.2 to 6.4.5. - [Release notes](https://github.com/testing-library/jest-dom/releases) - [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md) - [Commits](https://github.com/testing-library/jest-dom/compare/v6.4.2...v6.4.5) --- updated-dependencies: - dependency-name: "@testing-library/jest-dom" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- app/assets/package-lock.json | 10 +++++----- app/assets/package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/assets/package-lock.json b/app/assets/package-lock.json index d40bb15b6..5556f3280 100644 --- a/app/assets/package-lock.json +++ b/app/assets/package-lock.json @@ -75,7 +75,7 @@ "@nulib/dcapi-types": "^2.1.0", "@nulib/prettier-config": "^1.2.0", "@testing-library/dom": "^10.1.0", - "@testing-library/jest-dom": "^6.4.2", + "@testing-library/jest-dom": "^6.4.5", "@testing-library/react": "^15.0.7", "@testing-library/user-event": "^14.5.2", "@types/jest": "^29.5.12", @@ -7328,9 +7328,9 @@ } }, "node_modules/@testing-library/jest-dom": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.4.2.tgz", - "integrity": "sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw==", + "version": "6.4.5", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.4.5.tgz", + "integrity": "sha512-AguB9yvTXmCnySBP1lWjfNNUwpbElsaQ567lt2VdGqAdHtpieLgjmcVyv1q7PMIvLbgpDdkWV5Ydv3FEejyp2A==", "dev": true, "dependencies": { "@adobe/css-tools": "^4.3.2", @@ -7339,7 +7339,7 @@ "chalk": "^3.0.0", "css.escape": "^1.5.1", "dom-accessibility-api": "^0.6.3", - "lodash": "^4.17.15", + "lodash": "^4.17.21", "redent": "^3.0.0" }, "engines": { diff --git a/app/assets/package.json b/app/assets/package.json index 695896fef..295d4076a 100644 --- a/app/assets/package.json +++ b/app/assets/package.json @@ -85,7 +85,7 @@ "@nulib/dcapi-types": "^2.1.0", "@nulib/prettier-config": "^1.2.0", "@testing-library/dom": "^10.1.0", - "@testing-library/jest-dom": "^6.4.2", + "@testing-library/jest-dom": "^6.4.5", "@testing-library/react": "^15.0.7", "@testing-library/user-event": "^14.5.2", "@types/jest": "^29.5.12", From b36353f26e396335170a80c10384c9d5e08a4a07 Mon Sep 17 00:00:00 2001 From: Brendan Quinn Date: Tue, 7 May 2024 10:23:06 -0500 Subject: [PATCH 08/19] Adds versioning to the pyramid and streaming buckets, with lifecycle rules for versions (#3916) * Adds versioning to the pyramid and streamig buckets, with a lifecycle rule for 30 days that only applies to versions. * Bump the expiration to 90 days * Add CORS policy to pyramid bucket --- infrastructure/deploy/main.tf | 45 +++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/infrastructure/deploy/main.tf b/infrastructure/deploy/main.tf index 3ce580005..f8a7d5e79 100644 --- a/infrastructure/deploy/main.tf +++ b/infrastructure/deploy/main.tf @@ -218,7 +218,15 @@ resource "aws_s3_bucket" "meadow_streaming" { tags = var.tags } +resource "aws_s3_bucket_versioning" "meadow_streaming" { + bucket = aws_s3_bucket.meadow_streaming.id + versioning_configuration { + status = "Enabled" + } +} + resource "aws_s3_bucket_lifecycle_configuration" "meadow_streaming" { + depends_on = [aws_s3_bucket_versioning.meadow_streaming] bucket = "${var.stack_name}-${var.environment}-streaming" rule { @@ -229,6 +237,10 @@ resource "aws_s3_bucket_lifecycle_configuration" "meadow_streaming" { filter { prefix = "" } + + noncurrent_version_expiration { + noncurrent_days = 90 + } transition { days = 0 @@ -253,6 +265,39 @@ data "aws_s3_bucket" "pyramid_bucket" { bucket = var.pyramid_bucket } +resource "aws_s3_bucket_cors_configuration" "pyramid_bucket" { + bucket = data.aws_s3_bucket.pyramid_bucket.id + cors_rule { + allowed_headers = ["*"] + allowed_methods = ["GET", "HEAD"] + allowed_origins = ["*"] + expose_headers = ["ETag", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers"] + max_age_seconds = 3000 + } +} + +resource "aws_s3_bucket_versioning" "pyramid_bucket" { + bucket = data.aws_s3_bucket.pyramid_bucket.id + versioning_configuration { + status = "Enabled" + } +} + +resource "aws_s3_bucket_lifecycle_configuration" "meadow_pyramids" { + depends_on = [aws_s3_bucket_versioning.pyramid_bucket] + bucket = data.aws_s3_bucket.pyramid_bucket.id + + rule { + id = "expire_old_versions" + + noncurrent_version_expiration { + noncurrent_days = 90 + } + + status = "Enabled" + } +} + data "aws_s3_bucket" "digital_collections_bucket" { bucket = var.digital_collections_bucket } From 08358bb91cf80e0545e5a34d36a86cf07d2882a6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 May 2024 11:32:48 +0000 Subject: [PATCH 09/19] Bump recharts from 2.12.6 to 2.12.7 in /app/assets Bumps [recharts](https://github.com/recharts/recharts) from 2.12.6 to 2.12.7. - [Release notes](https://github.com/recharts/recharts/releases) - [Changelog](https://github.com/recharts/recharts/blob/3.x/CHANGELOG.md) - [Commits](https://github.com/recharts/recharts/compare/v2.12.6...v2.12.7) --- updated-dependencies: - dependency-name: recharts dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- app/assets/package-lock.json | 8 ++++---- app/assets/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/assets/package-lock.json b/app/assets/package-lock.json index d40bb15b6..0320360c7 100644 --- a/app/assets/package-lock.json +++ b/app/assets/package-lock.json @@ -53,7 +53,7 @@ "react-hook-form": "^7.33.1", "react-icons": "^5.2.1", "react-json-pretty": "^2.2.0", - "recharts": "^2.12.6", + "recharts": "^2.12.7", "use-clipboard-copy": "^0.2.0" }, "devDependencies": { @@ -19276,9 +19276,9 @@ } }, "node_modules/recharts": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.12.6.tgz", - "integrity": "sha512-D+7j9WI+D0NHauah3fKHuNNcRK8bOypPW7os1DERinogGBGaHI7i6tQKJ0aUF3JXyBZ63dyfKIW2WTOPJDxJ8w==", + "version": "2.12.7", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.12.7.tgz", + "integrity": "sha512-hlLJMhPQfv4/3NBSAyq3gzGg4h2v69RJh6KU7b3pXYNNAELs9kEoXOjbkxdXpALqKBoVmVptGfLpxdaVYqjmXQ==", "dependencies": { "clsx": "^2.0.0", "eventemitter3": "^4.0.1", diff --git a/app/assets/package.json b/app/assets/package.json index 695896fef..b5c42bc6b 100644 --- a/app/assets/package.json +++ b/app/assets/package.json @@ -63,7 +63,7 @@ "react-hook-form": "^7.33.1", "react-icons": "^5.2.1", "react-json-pretty": "^2.2.0", - "recharts": "^2.12.6", + "recharts": "^2.12.7", "use-clipboard-copy": "^0.2.0" }, "devDependencies": { From b6d2d7f4e953c16371819eaf00d4d551f1e15ddd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 11:10:47 +0000 Subject: [PATCH 10/19] Bump glob from 10.3.12 to 10.3.15 in /app/assets Bumps [glob](https://github.com/isaacs/node-glob) from 10.3.12 to 10.3.15. - [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md) - [Commits](https://github.com/isaacs/node-glob/compare/v10.3.12...v10.3.15) --- updated-dependencies: - dependency-name: glob dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- app/assets/package-lock.json | 32 ++++++++++++++++---------------- app/assets/package.json | 2 +- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/app/assets/package-lock.json b/app/assets/package-lock.json index d40bb15b6..cfa20918d 100644 --- a/app/assets/package-lock.json +++ b/app/assets/package-lock.json @@ -87,7 +87,7 @@ "esbuild-plugin-copy": "^2.1.1", "esbuild-plugin-path-alias": "^1.0.7", "esbuild-sass-plugin": "^2.16.1", - "glob": "^10.3.10", + "glob": "^10.3.15", "jest": "^29.7.0", "jest-localstorage-mock": "^2.4.21", "lodash.debounce": "^4.0.8", @@ -12408,22 +12408,22 @@ } }, "node_modules/glob": { - "version": "10.3.12", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", - "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "version": "10.3.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", + "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.3.6", "minimatch": "^9.0.1", "minipass": "^7.0.4", - "path-scurry": "^1.10.2" + "path-scurry": "^1.11.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -17345,9 +17345,9 @@ } }, "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz", + "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==", "dev": true, "engines": { "node": ">=16 || 14 >=14.17" @@ -18390,25 +18390,25 @@ } }, "node_modules/path-scurry": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", - "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", "dev": true, "engines": { "node": "14 || >=16.14" diff --git a/app/assets/package.json b/app/assets/package.json index 695896fef..cf7166a28 100644 --- a/app/assets/package.json +++ b/app/assets/package.json @@ -97,7 +97,7 @@ "esbuild-plugin-copy": "^2.1.1", "esbuild-plugin-path-alias": "^1.0.7", "esbuild-sass-plugin": "^2.16.1", - "glob": "^10.3.10", + "glob": "^10.3.15", "jest": "^29.7.0", "jest-localstorage-mock": "^2.4.21", "lodash.debounce": "^4.0.8", From 6b14ea2d79a04a6268b9ac4d48b5ab701f470eaa Mon Sep 17 00:00:00 2001 From: "Adam J. Arling" Date: Fri, 10 May 2024 20:34:11 +0000 Subject: [PATCH 11/19] Display work image toggle button for Video Filesets which have a poster image (representative image) --- .../js/components/Work/Fileset/List.test.js | 19 ++-- .../js/components/Work/Fileset/ListItem.jsx | 30 +++---- .../components/Work/Fileset/ListItem.test.js | 72 ++++++++++++--- app/assets/js/hooks/useFileSet.js | 5 ++ app/assets/js/mock-data/filesets.js | 90 +++++++++++++++---- app/assets/package-lock.json | 2 +- 6 files changed, 160 insertions(+), 58 deletions(-) diff --git a/app/assets/js/components/Work/Fileset/List.test.js b/app/assets/js/components/Work/Fileset/List.test.js index 00e4f0d54..3a2158375 100644 --- a/app/assets/js/components/Work/Fileset/List.test.js +++ b/app/assets/js/components/Work/Fileset/List.test.js @@ -1,14 +1,15 @@ -import React from "react"; -import WorkFilesetList from "@js/components/Work/Fileset/List"; -import { screen, waitFor } from "@testing-library/react"; -import { mockFileSets } from "@js/mock-data/filesets"; import { renderWithRouterApollo, withReactBeautifulDND, } from "@js/services/testing-helpers"; +import { screen, waitFor } from "@testing-library/react"; + +import React from "react"; +import WorkFilesetList from "@js/components/Work/Fileset/List"; +import { WorkProvider } from "@js/context/work-context"; +import { mockFileSets } from "@js/mock-data/filesets"; import { mockUser } from "@js/components/Auth/auth.gql.mock"; import useIsAuthorized from "@js/hooks/useIsAuthorized"; -import { WorkProvider } from "@js/context/work-context"; jest.mock("@js/hooks/useIsAuthorized"); useIsAuthorized.mockReturnValue({ @@ -25,7 +26,7 @@ describe("WorkFilesetList component", () => { isReordering: true, })} , - {} + {}, ); await waitFor(() => { expect(screen.getByTestId("fileset-draggable-list")); @@ -39,7 +40,7 @@ describe("WorkFilesetList component", () => { fileSets: { access: mockFileSets, auxiliary: [] }, })} , - {} + {}, ); await waitFor(() => { expect(screen.getByTestId("fileset-list")); @@ -53,10 +54,10 @@ describe("WorkFilesetList component", () => { fileSets: { access: mockFileSets, auxiliary: [] }, })} , - {} + {}, ); await waitFor(() => { - expect(screen.getAllByTestId("fileset-item")).toHaveLength(3); + expect(screen.getAllByTestId("fileset-item")).toHaveLength(4); }); }); }); diff --git a/app/assets/js/components/Work/Fileset/ListItem.jsx b/app/assets/js/components/Work/Fileset/ListItem.jsx index e4609c53f..c504b98a4 100644 --- a/app/assets/js/components/Work/Fileset/ListItem.jsx +++ b/app/assets/js/components/Work/Fileset/ListItem.jsx @@ -1,11 +1,9 @@ -import { Button, Tag } from "@nulib/design-system"; -import React, { useContext } from "react"; import { useWorkDispatch, useWorkState } from "@js/context/work-context"; import AuthDisplayAuthorized from "@js/components/Auth/DisplayAuthorized"; -import { IIIFContext } from "@js/components/IIIF/IIIFProvider"; -import { IconPlay } from "@js/components/Icon"; import PropTypes from "prop-types"; +import React from "react"; +import { Tag } from "@nulib/design-system"; import UIFormField from "@js/components/UI/Form/Field"; import UIFormInput from "@js/components/UI/Form/Input"; import UIFormTextarea from "@js/components/UI/Form/Textarea"; @@ -19,10 +17,9 @@ function WorkFilesetListItem({ isEditing, workImageFilesetId, }) { - const iiifServerUrl = useContext(IIIFContext); const { id, coreMetadata } = fileSet; - const dispatch = useWorkDispatch(); - const {isImage, isMedia, isPDF, isZip } = useFileSet(); + const { hasRepresentativeImage, isImage, isMedia, isPDF, isZip } = + useFileSet(); const workContextState = useWorkState(); // Helper for media type file sets @@ -46,25 +43,25 @@ function WorkFilesetListItem({ } }; - const placeholderImage = (fileSet) => { + const placeholderImage = (fileSet) => { if (isMedia(fileSet)) { return "/images/video-placeholder2.png"; - } else if (isPDF(fileSet)) { + } else if (isPDF(fileSet)) { return "/images/placeholder-pdf.png"; - } else if (isZip(fileSet)) { + } else if (isZip(fileSet)) { return "/images/placeholder-zip.png"; } else { return "/images/placeholder.png"; } - } + }; const showWorkImageToggle = () => { if (fileSet.role.id === "A" && workContextState.workTypeId === "AUDIO") { return false; } else { - return isImage(fileSet); + return isImage(fileSet) || hasRepresentativeImage(fileSet); } - } + }; return (
@@ -120,9 +117,7 @@ function WorkFilesetListItem({
{!isEditing && ( <> - {( - showWorkImageToggle() - ) && ( + {showWorkImageToggle() && (
)} - {fileSet.role.id === "S" && ( - - )} )}
diff --git a/app/assets/js/components/Work/Fileset/ListItem.test.js b/app/assets/js/components/Work/Fileset/ListItem.test.js index b30653758..188ce95de 100644 --- a/app/assets/js/components/Work/Fileset/ListItem.test.js +++ b/app/assets/js/components/Work/Fileset/ListItem.test.js @@ -1,14 +1,15 @@ -import React from "react"; import { render, screen, waitFor } from "@testing-library/react"; -import WorkFilesetListItemImage from "./ListItem"; -import { mockFileSets } from "@js/mock-data/filesets"; import { renderWithReactHookForm, withReactBeautifulDND, } from "@js/services/testing-helpers"; + +import React from "react"; +import WorkFilesetList from "./ListItem"; +import { WorkProvider } from "@js/context/work-context"; +import { mockFileSets } from "@js/mock-data/filesets"; import { mockUser } from "@js/components/Auth/auth.gql.mock"; import useIsAuthorized from "@js/hooks/useIsAuthorized"; -import { WorkProvider } from "@js/context/work-context"; jest.mock("@js/hooks/useIsAuthorized"); useIsAuthorized.mockReturnValue({ @@ -16,16 +17,34 @@ useIsAuthorized.mockReturnValue({ isAuthorized: () => true, }); +// Mock child components +jest.mock("@js/components/Work/Fileset/ActionButtons/Access", () => { + return { + __esModule: true, + default: () => { + return
Mocked Access
; + }, + }; +}); +jest.mock("@js/components/Work/Fileset/ActionButtons/Auxillary", () => { + return { + __esModule: true, + default: () => { + return
Mocked Auxillary
; + }, + }; +}); + describe("Fileset component", () => { describe("when not editing", () => { function setUpTests(workImageFilesetId) { return render( - - + , ); } it("renders the image preview, label and description", async () => { @@ -54,6 +73,39 @@ describe("Fileset component", () => { expect(toggleEl).not.toBeChecked(); }); }); + + it("renders the Work image toggle if the fileset is a video and has a representative image", async () => { + render( + + + , + ); + + const toggleEl = await screen.findByTestId("work-image-selector"); + expect(toggleEl).toBeInTheDocument(); + }); + + it("does not render the image toggle if the fileset is a video and does not have a representative image", async () => { + const fileSet = { + ...mockFileSets[3], + representativeImageUrl: null, + }; + + render( + + + , + ); + + const toggleEl = screen.queryByTestId("work-image-selector"); + expect(toggleEl).not.toBeInTheDocument(); + }); }); describe("Audio work type", () => { @@ -70,14 +122,14 @@ describe("Fileset component", () => { it("doesn't render the Work image toggle", () => { render( - - + , ); expect( - screen.queryByTestId("work-image-selector") + screen.queryByTestId("work-image-selector"), ).not.toBeInTheDocument(); }); }); @@ -85,7 +137,7 @@ describe("Fileset component", () => { describe("when editing", () => { beforeEach(() => { - const Wrapped = withReactBeautifulDND(WorkFilesetListItemImage, { + const Wrapped = withReactBeautifulDND(WorkFilesetList, { fileSet: mockFileSets[0], index: 0, isEditing: true, diff --git a/app/assets/js/hooks/useFileSet.js b/app/assets/js/hooks/useFileSet.js index d19ef985b..d364ac968 100644 --- a/app/assets/js/hooks/useFileSet.js +++ b/app/assets/js/hooks/useFileSet.js @@ -19,6 +19,10 @@ export default function useFileSet() { return webVtt; } + function hasRepresentativeImage(fileSet = {}) { + return !!fileSet.representativeImageUrl; + } + function isEmpty(fileSet = {}) { return !fileSet || Object.keys(fileSet).length === 0; } @@ -78,6 +82,7 @@ export default function useFileSet() { altFileFormat, filterFileSets, getWebVttString, + hasRepresentativeImage, isAltFormat, isEmpty, isImage, diff --git a/app/assets/js/mock-data/filesets.js b/app/assets/js/mock-data/filesets.js index ee69ee538..947d43500 100644 --- a/app/assets/js/mock-data/filesets.js +++ b/app/assets/js/mock-data/filesets.js @@ -1,57 +1,109 @@ export const mockFileSets = [ { - id: "45226a50-87ca-443e-bc05-f47884e14505", - role: { id: "A", scheme: "FILE_SET_ROLE" }, accessionNumber: "Voyager:2569254_FILE_0", coreMetadata: { description: "inu-dil-9d35d0ba-a84b-4e0a-99e6-9c6b548a46db.tif", - originalFilename: "inu-dil-9d35d0ba-a84b-4e0a-99e6-9c6b548a46db.jpg", - label: "inu-dil-9d35d0ba-a84b-4e0a-99e6-9c6b548a46db.jpg", - location: - "s3://dev-preservation/45/22/6a/50/6be181760c0adb1f3425a0ae3438f3633b0baa9a6f74afa973c94ae6de6f45cb", - mimeType: "image/jpeg", digests: { sha256: "6be181760c0adb1f3425a0ae3438f3633b0baa9a6f74afa973c94ae6de6f45cb", }, + label: "inu-dil-9d35d0ba-a84b-4e0a-99e6-9c6b548a46db.jpg", + location: + "s3://dev-preservation/45/22/6a/50/6be181760c0adb1f3425a0ae3438f3633b0baa9a6f74afa973c94ae6de6f45cb", + mimeType: "image/jpeg", + originalFilename: "inu-dil-9d35d0ba-a84b-4e0a-99e6-9c6b548a46db.jpg", + }, + id: "45226a50-87ca-443e-bc05-f47884e14505", + representativeImageUrl: + "https://iiif.dev.rdc.library.northwestern.edu/iiif/2/wildcat-dev/posters/6d6bb649-2a5c-40d2-8d1b-23835de1c40a", + role: { + id: "A", + scheme: "FILE_SET_ROLE", }, }, { __typename: "FileSet", - id: "109b9a5c-3c6f-4a98-b98b-12402b871dc7", - role: { id: "A", scheme: "FILE_SET_ROLE" }, accessionNumber: "Voyager:2572813_FILE_0", coreMetadata: { __typename: "FileSetCoreMetadata", description: "inu-dil-41913a91-037f-494b-9113-06004a8a98fb.tif", - originalFilename: "inu-dil-41913a91-037f-494b-9113-06004a8a98fb.jpg", - label: "inu-dil-41913a91-037f-494b-9113-06004a8a98fb.jpg", - location: - "s3://dev-preservation/10/9b/9a/5c/1477fbefbeeb04f0d02ac3cbd9594df0d9e7edca993ec076272d7fea67ab26a8", - mimeType: "image/jpeg", digests: { sha256: "1477fbefbeeb04f0d02ac3cbd9594df0d9e7edca993ec076272d7fea67ab26a8", }, + label: "inu-dil-41913a91-037f-494b-9113-06004a8a98fb.jpg", + location: + "s3://dev-preservation/10/9b/9a/5c/1477fbefbeeb04f0d02ac3cbd9594df0d9e7edca993ec076272d7fea67ab26a8", + mimeType: "image/jpeg", + originalFilename: "inu-dil-41913a91-037f-494b-9113-06004a8a98fb.jpg", + }, + id: "109b9a5c-3c6f-4a98-b98b-12402b871dc7", + representativeImageUrl: + "https://iiif.dev.rdc.library.northwestern.edu/iiif/2/wildcat-dev/posters/6d6bb649-2a5c-40d2-8d1b-23835de1c40a", + role: { + id: "A", + scheme: "FILE_SET_ROLE", }, }, { __typename: "FileSet", - id: "d414d3d4-b72c-49cc-b7cc-faa9bc0f256e", - role: { id: "A", scheme: "FILE_SET_ROLE" }, accessionNumber: "Voyager:2553177_FILE_0", coreMetadata: { __typename: "FileSetCoreMetadata", description: "inu-dil-96e6d167-5022-42e7-9de7-7f851a866f44.tif", - originalFilename: "inu-dil-96e6d167-5022-42e7-9de7-7f851a866f44.jpg", + digests: { + sha256: + "f7f1324a418e2c7c6ef17c45fc14ec6ce5a6124e636cb96272a7f35dc72d9664", + }, label: "inu-dil-96e6d167-5022-42e7-9de7-7f851a866f44.jpg", location: "s3://dev-preservation/d4/14/d3/d4/f7f1324a418e2c7c6ef17c45fc14ec6ce5a6124e636cb96272a7f35dc72d9664", mimeType: "image/jpeg", + originalFilename: "inu-dil-96e6d167-5022-42e7-9de7-7f851a866f44.jpg", + }, + id: "d414d3d4-b72c-49cc-b7cc-faa9bc0f256e", + representativeImageUrl: + "https://iiif.dev.rdc.library.northwestern.edu/iiif/2/wildcat-dev/posters/6d6bb649-2a5c-40d2-8d1b-23835de1c40a", + role: { + id: "A", + scheme: "FILE_SET_ROLE", + }, + }, + { + __typename: "FileSet", + id: "6d6bb649-2a5c-40d2-8d1b-23835de1c40a", + accessionNumber: "asdf45764567", + coreMetadata: { + __typename: "FileSetCoreMetadata", + description: "asdf", + label: "Big buck", + location: + "s3://adam-dev-preservation/6d/6b/b6/49/6d6bb649-2a5c-40d2-8d1b-23835de1c40a", + mimeType: "video/mp4", + originalFilename: "Big_Buck_Bunny_720_10s_1MB.mp4", digests: { - sha256: - "f7f1324a418e2c7c6ef17c45fc14ec6ce5a6124e636cb96272a7f35dc72d9664", + __typename: "Digests", + md5: "626cc0e47eda47c080553ac8d25c3d3d", + sha1: null, + sha256: null, }, }, + extractedMetadata: "", + insertedAt: "2024-05-10T15:54:20.611963Z", + role: { + __typename: "CodedTerm", + id: "A", + label: "Access", + }, + representativeImageUrl: + "https://iiif.dev.rdc.library.northwestern.edu/iiif/2/adam-dev/posters/6d6bb649-2a5c-40d2-8d1b-23835de1c40a", + streamingUrl: + "https://adam-dev-streaming.s3.amazonaws.com/6d/6b/b6/49/-2/a5/c-/40/d2/-8/d1/b-/23/83/5d/e1/c4/0a/6d6bb649-2a5c-40d2-8d1b-23835de1c40a.m3u8", + structuralMetadata: { + __typename: "FileSetStructuralMetadata", + type: null, + value: null, + }, + updatedAt: "2024-05-10T15:57:25.290859Z", }, ]; diff --git a/app/assets/package-lock.json b/app/assets/package-lock.json index d40bb15b6..7fd9109c1 100644 --- a/app/assets/package-lock.json +++ b/app/assets/package-lock.json @@ -7,7 +7,7 @@ "license": "MIT", "dependencies": { "@absinthe/socket-apollo-link": "^0.2.1", - "@apollo/client": "*", + "@apollo/client": "latest", "@apollo/react-hooks": "^4.0.0", "@apollo/react-testing": "^4.0.0", "@appbaseio/reactivesearch": "3.23.1", From fc745a487012b90c709f6cab295149d3ce2c46aa Mon Sep 17 00:00:00 2001 From: "Adam J. Arling" Date: Thu, 24 Feb 2022 13:23:28 -0800 Subject: [PATCH 12/19] Batch update of Terms of Use supported in the UI --- .../BatchEdit/About/RightsMetadata.jsx | 33 ++++++++++++------- .../BatchEdit/About/RightsMetadata.test.jsx | 15 ++++++--- app/assets/js/components/BatchEdit/Tabs.jsx | 9 ++--- app/assets/js/components/Work/Tabs/About.jsx | 9 +++-- .../Work/Tabs/About/RightsMetadata.jsx | 5 +-- .../Work/Tabs/About/RightsMetadata.test.js | 4 +-- app/assets/js/services/metadata.ts | 8 +++++ 7 files changed, 54 insertions(+), 29 deletions(-) diff --git a/app/assets/js/components/BatchEdit/About/RightsMetadata.jsx b/app/assets/js/components/BatchEdit/About/RightsMetadata.jsx index 9e30e2b13..411283b45 100644 --- a/app/assets/js/components/BatchEdit/About/RightsMetadata.jsx +++ b/app/assets/js/components/BatchEdit/About/RightsMetadata.jsx @@ -1,12 +1,14 @@ -import React from "react"; -import PropTypes from "prop-types"; -import UIFormBatchFieldArray from "@js/components/UI/Form/BatchFieldArray"; -import UIFormSelect from "@js/components/UI/Form/Select"; import { RIGHTS_METADATA, getCodedTermSelectOptions, } from "@js/services/metadata"; + +import PropTypes from "prop-types"; +import React from "react"; +import UIFormBatchFieldArray from "@js/components/UI/Form/BatchFieldArray"; import UIFormField from "@js/components/UI/Form/Field"; +import UIFormSelect from "@js/components/UI/Form/Select"; +import UIFormTextarea from "@js/components/UI/Form/Textarea"; import { useCodeLists } from "@js/context/code-list-context"; const BatchEditAboutRightsMetadata = ({ ...restProps }) => { @@ -20,16 +22,15 @@ const BatchEditAboutRightsMetadata = ({ ...restProps }) => { > {RIGHTS_METADATA.map((item) => (
-
))}
- {/* License */} { codeLists.licenseData ? getCodedTermSelectOptions( codeLists.licenseData.codeList, - "LICENSE" + "LICENSE", ) : [] } @@ -48,6 +49,16 @@ const BatchEditAboutRightsMetadata = ({ ...restProps }) => { />
+ +
+ + + +
); }; diff --git a/app/assets/js/components/BatchEdit/About/RightsMetadata.test.jsx b/app/assets/js/components/BatchEdit/About/RightsMetadata.test.jsx index ab75e5d72..fcc61c02e 100644 --- a/app/assets/js/components/BatchEdit/About/RightsMetadata.test.jsx +++ b/app/assets/js/components/BatchEdit/About/RightsMetadata.test.jsx @@ -1,13 +1,14 @@ -import React from "react"; -import { screen } from "@testing-library/react"; import { renderWithRouterApollo, withReactHookForm, -} from "../../../services/testing-helpers"; +} from "@js/services/testing-helpers"; + import BatchEditAboutRightsMetadata from "./RightsMetadata"; -import { RIGHTS_METADATA } from "../../../services/metadata"; import { CodeListProvider } from "@js/context/code-list-context"; +import { RIGHTS_METADATA } from "@js/services/metadata"; +import React from "react"; import { allCodeListMocks } from "@js/components/Work/controlledVocabulary.gql.mock"; +import { screen } from "@testing-library/react"; describe("BatchEditAboutRightsMetadata component", () => { beforeEach(() => { @@ -18,7 +19,7 @@ describe("BatchEditAboutRightsMetadata component", () => { , { mocks: allCodeListMocks, - } + }, ); }); @@ -32,4 +33,8 @@ describe("BatchEditAboutRightsMetadata component", () => { } expect(screen.getByTestId("license-select")); }); + + it("renders Terms of Use field", async () => { + expect(screen.getByTestId("terms-of-use")); + }); }); diff --git a/app/assets/js/components/BatchEdit/Tabs.jsx b/app/assets/js/components/BatchEdit/Tabs.jsx index dc18827be..3c73ba7bf 100644 --- a/app/assets/js/components/BatchEdit/Tabs.jsx +++ b/app/assets/js/components/BatchEdit/Tabs.jsx @@ -118,7 +118,8 @@ export default function BatchEditTabs() { } }); - ["title"].forEach((item) => { + /** Single value fields */ + ["title", "termsOfUse"].forEach((item) => { if (currentFormValues[item]) { replaceItems.descriptive[item] = currentFormValues[item]; } @@ -146,14 +147,14 @@ export default function BatchEditTabs() { addItems.descriptive[term.name] = prepControlledTermInput( term, currentFormValues[term.name], - true + true, ); } // Include only active removals if (batchState.removeItems && batchState.removeItems[term.name]) { deleteReadyItems[term.name] = prepFacetKey( term, - batchState.removeItems[term.name] + batchState.removeItems[term.name], ); } } @@ -164,7 +165,7 @@ export default function BatchEditTabs() { // Now we need to split this up between Descriptive and Administrative let administrativeMultiValues = parseMultiValues( multiValues, - "administrative" + "administrative", ); let descriptiveMultiValues = parseMultiValues(multiValues, "descriptive"); diff --git a/app/assets/js/components/Work/Tabs/About.jsx b/app/assets/js/components/Work/Tabs/About.jsx index 1c0e4a6d4..e0410088d 100644 --- a/app/assets/js/components/Work/Tabs/About.jsx +++ b/app/assets/js/components/Work/Tabs/About.jsx @@ -48,7 +48,7 @@ function prepFormData(work) { ]) { for (let obj of group) { resetValues[obj.name] = descriptiveMetadata[obj.name].map((value) => - convertFieldArrayValToHookFormVal(value) + convertFieldArrayValToHookFormVal(value), ); } } @@ -111,8 +111,7 @@ const WorkTabsAbout = ({ work }) => { const onSubmit = (data) => { // "data" here returns everything (which was set above in the useEffect()), // including fields that are either outdated or which no values were ever registered - // with React Hook Form's register(). So, we'll use getValues() to get the real data - // updated. + // with React Hook Form's register(). So, we'll use getValues() to get the most accurate data. let currentFormValues = methods.getValues(); @@ -121,7 +120,7 @@ const WorkTabsAbout = ({ work }) => { let workUpdateInput = { descriptiveMetadata: { alternateTitle: prepFieldArrayItemsForPost( - currentFormValues.alternateTitle + currentFormValues.alternateTitle, ), dateCreated: prepEDTFforPost(currentFormValues.dateCreated), description: prepFieldArrayItemsForPost(currentFormValues.description), @@ -161,7 +160,7 @@ const WorkTabsAbout = ({ work }) => { for (let term of CONTROLLED_METADATA) { workUpdateInput.descriptiveMetadata[term.name] = prepControlledTermInput( term, - currentFormValues[term.name] + currentFormValues[term.name], ); } diff --git a/app/assets/js/components/Work/Tabs/About/RightsMetadata.jsx b/app/assets/js/components/Work/Tabs/About/RightsMetadata.jsx index 4cdea9d52..5330c5752 100644 --- a/app/assets/js/components/Work/Tabs/About/RightsMetadata.jsx +++ b/app/assets/js/components/Work/Tabs/About/RightsMetadata.jsx @@ -6,6 +6,7 @@ import UIFormField from "@js/components/UI/Form/Field"; import UIFormFieldArray from "@js/components/UI/Form/FieldArray"; import UIFormFieldArrayDisplay from "@js/components/UI/Form/FieldArrayDisplay"; import UIFormInput from "@js/components/UI/Form/Input"; +import UIFormTextarea from "@js/components/UI/Form/Textarea"; import UIFormSelect from "@js/components/UI/Form/Select"; import { useCodeLists } from "@js/context/code-list-context"; @@ -57,10 +58,10 @@ const WorkTabsAboutRightsMetadata = ({ descriptiveMetadata, isEditing }) => { -
+
{isEditing ? ( - { , { mocks: allCodeListMocks, - } + }, ); }); @@ -41,6 +41,6 @@ describe.only("Work About tab Idenfiers Metadata component", () => { expect(await screen.findByTestId("license")).toBeInTheDocument(); }); it("renders terms of use field", async () => { - expect(await screen.findByTestId("input-terms-of-use")).toBeInTheDocument(); + expect(await screen.findByTestId("terms-of-use")); }); }); diff --git a/app/assets/js/services/metadata.ts b/app/assets/js/services/metadata.ts index 4f1f42883..63f2224fb 100644 --- a/app/assets/js/services/metadata.ts +++ b/app/assets/js/services/metadata.ts @@ -244,6 +244,12 @@ export const METADATA_FIELDS: MetadataFields = { name: "technique", metadataClass: "descriptive", }, + TERMS_OF_USE: { + inputEl: "textarea", + label: "Terms of Use", + name: "termsOfUse", + metadataClass: "descriptive", + }, TITLE: { name: "title", label: "Title", metadataClass: "descriptive" }, VISIBILITY: { name: "visibility", @@ -299,6 +305,7 @@ const { SUBJECT_ROLE, TABLE_OF_CONTENTS, TECHNIQUE, + TERMS_OF_USE, TITLE, VISIBILITY, } = METADATA_FIELDS; @@ -341,6 +348,7 @@ export const UNCONTROLLED_MULTI_VALUE_METADATA = [ SOURCE, STATUS, TABLE_OF_CONTENTS, + TERMS_OF_USE, VISIBILITY, ]; From fb589368c880915ce66f3193ce5499db4db341d5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 May 2024 11:20:42 +0000 Subject: [PATCH 13/19] Bump @apollo/client from 3.10.2 to 3.10.4 in /app/assets Bumps [@apollo/client](https://github.com/apollographql/apollo-client) from 3.10.2 to 3.10.4. - [Release notes](https://github.com/apollographql/apollo-client/releases) - [Changelog](https://github.com/apollographql/apollo-client/blob/main/CHANGELOG.md) - [Commits](https://github.com/apollographql/apollo-client/compare/v3.10.2...v3.10.4) --- updated-dependencies: - dependency-name: "@apollo/client" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- app/assets/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/assets/package-lock.json b/app/assets/package-lock.json index 7fd9109c1..e422f77d4 100644 --- a/app/assets/package-lock.json +++ b/app/assets/package-lock.json @@ -247,9 +247,9 @@ } }, "node_modules/@apollo/client": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.10.2.tgz", - "integrity": "sha512-J4e2RQN4DgMthCqBtBOXOawYTWmdJprAWqv8rdYLmeW4/Pnrlrl4Hvb/zvENlitDAiRUU33Dc/3OJqIMEJAxNw==", + "version": "3.10.4", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.10.4.tgz", + "integrity": "sha512-51gk0xOwN6Ls1EbTG5svFva1kdm2APHYTzmFhaAdvUQoJFDxfc0UwQgDxGptzH84vkPlo1qunY1FuboyF9LI3Q==", "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", "@wry/caches": "^1.0.0", From 02112a562a929cd0014a1aec36baad2449c1ee55 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 May 2024 11:21:13 +0000 Subject: [PATCH 14/19] Bump phoenix_ecto from 4.5.1 to 4.6.1 in /app Bumps [phoenix_ecto](https://github.com/phoenixframework/phoenix_ecto) from 4.5.1 to 4.6.1. - [Changelog](https://github.com/phoenixframework/phoenix_ecto/blob/main/CHANGELOG.md) - [Commits](https://github.com/phoenixframework/phoenix_ecto/compare/v4.5.1...v4.6.1) --- updated-dependencies: - dependency-name: phoenix_ecto dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- app/mix.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/mix.lock b/app/mix.lock index 74e0b4ad3..52e1e8089 100644 --- a/app/mix.lock +++ b/app/mix.lock @@ -67,7 +67,7 @@ "nimble_parsec": {:hex, :nimble_parsec, "1.4.0", "51f9b613ea62cfa97b25ccc2c1b4216e81df970acd8e16e8d1bdc58fef21370d", [:mix], [], "hexpm", "9c565862810fb383e9838c1dd2d7d2c437b3d13b267414ba6af33e50d2d1cf28"}, "parse_trans": {:hex, :parse_trans, "3.4.1", "6e6aa8167cb44cc8f39441d05193be6e6f4e7c2946cb2759f015f8c56b76e5ff", [:rebar3], [], "hexpm", "620a406ce75dada827b82e453c19cf06776be266f5a67cff34e1ef2cbb60e49a"}, "phoenix": {:hex, :phoenix, "1.7.12", "1cc589e0eab99f593a8aa38ec45f15d25297dd6187ee801c8de8947090b5a9d3", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.1", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.7", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:websock_adapter, "~> 0.5.3", [hex: :websock_adapter, repo: "hexpm", optional: false]}], "hexpm", "d646192fbade9f485b01bc9920c139bfdd19d0f8df3d73fd8eaf2dfbe0d2837c"}, - "phoenix_ecto": {:hex, :phoenix_ecto, "4.5.1", "6fdbc334ea53620e71655664df6f33f670747b3a7a6c4041cdda3e2c32df6257", [:mix], [{:ecto, "~> 3.5", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.1", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "ebe43aa580db129e54408e719fb9659b7f9e0d52b965c5be26cdca416ecead28"}, + "phoenix_ecto": {:hex, :phoenix_ecto, "4.6.1", "96798325fab2fed5a824ca204e877b81f9afd2e480f581e81f7b4b64a5a477f2", [:mix], [{:ecto, "~> 3.5", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.1", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.17", [hex: :postgrex, repo: "hexpm", optional: true]}], "hexpm", "0ae544ff99f3c482b0807c5cec2c8289e810ecacabc04959d82c3337f4703391"}, "phoenix_html": {:hex, :phoenix_html, "3.3.3", "380b8fb45912b5638d2f1d925a3771b4516b9a78587249cabe394e0a5d579dc9", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "923ebe6fec6e2e3b3e569dfbdc6560de932cd54b000ada0208b5f45024bdd76c"}, "phoenix_live_dashboard": {:hex, :phoenix_live_dashboard, "0.7.2", "97cc4ff2dba1ebe504db72cb45098cb8e91f11160528b980bd282cc45c73b29c", [:mix], [{:ecto, "~> 3.6.2 or ~> 3.7", [hex: :ecto, repo: "hexpm", optional: true]}, {:ecto_mysql_extras, "~> 0.5", [hex: :ecto_mysql_extras, repo: "hexpm", optional: true]}, {:ecto_psql_extras, "~> 0.7", [hex: :ecto_psql_extras, repo: "hexpm", optional: true]}, {:mime, "~> 1.6 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:phoenix_live_view, "~> 0.18.3", [hex: :phoenix_live_view, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 0.6 or ~> 1.0", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}], "hexpm", "0e5fdf063c7a3b620c566a30fcf68b7ee02e5e46fe48ee46a6ec3ba382dc05b7"}, "phoenix_live_reload": {:hex, :phoenix_live_reload, "1.5.3", "f2161c207fda0e4fb55165f650f7f8db23f02b29e3bff00ff7ef161d6ac1f09d", [:mix], [{:file_system, "~> 0.3 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.4", [hex: :phoenix, repo: "hexpm", optional: false]}], "hexpm", "b4ec9cd73cb01ff1bd1cac92e045d13e7030330b74164297d1aee3907b54803c"}, @@ -77,7 +77,7 @@ "phoenix_view": {:hex, :phoenix_view, "2.0.3", "4d32c4817fce933693741deeb99ef1392619f942633dde834a5163124813aad3", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}], "hexpm", "cd34049af41be2c627df99cd4eaa71fc52a328c0c3d8e7d4aa28f880c30e7f64"}, "plug": {:hex, :plug, "1.15.3", "712976f504418f6dff0a3e554c40d705a9bcf89a7ccef92fc6a5ef8f16a30a97", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "cc4365a3c010a56af402e0809208873d113e9c38c401cabd88027ef4f5c01fd2"}, "plug_cowboy": {:hex, :plug_cowboy, "2.7.1", "87677ffe3b765bc96a89be7960f81703223fe2e21efa42c125fcd0127dd9d6b2", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "02dbd5f9ab571b864ae39418db7811618506256f6d13b4a45037e5fe78dc5de3"}, - "plug_crypto": {:hex, :plug_crypto, "2.0.0", "77515cc10af06645abbfb5e6ad7a3e9714f805ae118fa1a70205f80d2d70fe73", [:mix], [], "hexpm", "53695bae57cc4e54566d993eb01074e4d894b65a3766f1c43e2c61a1b0f45ea9"}, + "plug_crypto": {:hex, :plug_crypto, "2.1.0", "f44309c2b06d249c27c8d3f65cfe08158ade08418cf540fd4f72d4d6863abb7b", [:mix], [], "hexpm", "131216a4b030b8f8ce0f26038bc4421ae60e4bb95c5cf5395e1421437824c4fa"}, "poison": {:hex, :poison, "4.0.1", "bcb755a16fac91cad79bfe9fc3585bb07b9331e50cfe3420a24bcc2d735709ae", [:mix], [], "hexpm", "ba8836feea4b394bb718a161fc59a288fe0109b5006d6bdf97b6badfcf6f0f25"}, "postgrex": {:hex, :postgrex, "0.17.5", "0483d054938a8dc069b21bdd636bf56c487404c241ce6c319c1f43588246b281", [:mix], [{:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "50b8b11afbb2c4095a3ba675b4f055c416d0f3d7de6633a595fc131a828a67eb"}, "quantum": {:hex, :quantum, "3.5.3", "ee38838a07761663468145f489ad93e16a79440bebd7c0f90dc1ec9850776d99", [:mix], [{:crontab, "~> 1.1", [hex: :crontab, repo: "hexpm", optional: false]}, {:gen_stage, "~> 0.14 or ~> 1.0", [hex: :gen_stage, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:telemetry_registry, "~> 0.2", [hex: :telemetry_registry, repo: "hexpm", optional: false]}], "hexpm", "500fd3fa77dcd723ed9f766d4a175b684919ff7b6b8cfd9d7d0564d58eba8734"}, From 4e2be46e70ad2a5d34a5c819e5f5d81e3f79a6cc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 May 2024 12:00:10 +0000 Subject: [PATCH 15/19] Bump downshift from 9.0.4 to 9.0.6 in /app/assets Bumps [downshift](https://github.com/downshift-js/downshift) from 9.0.4 to 9.0.6. - [Release notes](https://github.com/downshift-js/downshift/releases) - [Changelog](https://github.com/downshift-js/downshift/blob/master/CHANGELOG.md) - [Commits](https://github.com/downshift-js/downshift/compare/v9.0.4...v9.0.6) --- updated-dependencies: - dependency-name: downshift dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- app/assets/package-lock.json | 16 ++++++++-------- app/assets/package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/assets/package-lock.json b/app/assets/package-lock.json index 7fd9109c1..529234029 100644 --- a/app/assets/package-lock.json +++ b/app/assets/package-lock.json @@ -7,7 +7,7 @@ "license": "MIT", "dependencies": { "@absinthe/socket-apollo-link": "^0.2.1", - "@apollo/client": "latest", + "@apollo/client": "*", "@apollo/react-hooks": "^4.0.0", "@apollo/react-testing": "^4.0.0", "@appbaseio/reactivesearch": "3.23.1", @@ -28,7 +28,7 @@ "bulma-switch": "^2.0.0", "bulma-toast": "^2.4.4", "classnames": "^2.5.1", - "downshift": "^9.0.4", + "downshift": "^9.0.6", "edtf": "^4.6.0", "esbuild-plugin-svgr": "^2.1.0", "faker": "^5.5.3", @@ -11025,14 +11025,14 @@ } }, "node_modules/downshift": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/downshift/-/downshift-9.0.4.tgz", - "integrity": "sha512-6XV/p6+4177d8e8dJ6PoLNSDG1bv52FL18yilKD06oZCb6dFG6f6dXcn3h0B1ggcrOkN3hIvL11Qt15Y5McbXw==", + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/downshift/-/downshift-9.0.6.tgz", + "integrity": "sha512-lkqWh0eb34XuH+3z3/BH/LGVRV7ur0rielSlxtlQKsjAFF/wc/c0wsM9phUGXyzK2g1QWHoNHQyc+vVAheI17Q==", "dependencies": { - "@babel/runtime": "^7.22.15", - "compute-scroll-into-view": "^3.0.3", + "@babel/runtime": "^7.24.5", + "compute-scroll-into-view": "^3.1.0", "prop-types": "^15.8.1", - "react-is": "^18.2.0", + "react-is": "18.2.0", "tslib": "^2.6.2" }, "peerDependencies": { diff --git a/app/assets/package.json b/app/assets/package.json index 695896fef..a35f3eb4d 100644 --- a/app/assets/package.json +++ b/app/assets/package.json @@ -38,7 +38,7 @@ "bulma-switch": "^2.0.0", "bulma-toast": "^2.4.4", "classnames": "^2.5.1", - "downshift": "^9.0.4", + "downshift": "^9.0.6", "edtf": "^4.6.0", "esbuild-plugin-svgr": "^2.1.0", "faker": "^5.5.3", From 8d247788139cb1b365f05d849b794505e55c6a9c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 May 2024 12:00:46 +0000 Subject: [PATCH 16/19] Bump @graphql-codegen/client-preset from 4.2.5 to 4.2.6 in /app/assets Bumps [@graphql-codegen/client-preset](https://github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/presets/client) from 4.2.5 to 4.2.6. - [Release notes](https://github.com/dotansimha/graphql-code-generator/releases) - [Changelog](https://github.com/dotansimha/graphql-code-generator/blob/master/packages/presets/client/CHANGELOG.md) - [Commits](https://github.com/dotansimha/graphql-code-generator/commits/@graphql-codegen/client-preset@4.2.6/packages/presets/client) --- updated-dependencies: - dependency-name: "@graphql-codegen/client-preset" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- app/assets/package-lock.json | 78 ++++++++++++++++++------------------ app/assets/package.json | 2 +- 2 files changed, 40 insertions(+), 40 deletions(-) diff --git a/app/assets/package-lock.json b/app/assets/package-lock.json index 7fd9109c1..db41b42d8 100644 --- a/app/assets/package-lock.json +++ b/app/assets/package-lock.json @@ -7,7 +7,7 @@ "license": "MIT", "dependencies": { "@absinthe/socket-apollo-link": "^0.2.1", - "@apollo/client": "latest", + "@apollo/client": "*", "@apollo/react-hooks": "^4.0.0", "@apollo/react-testing": "^4.0.0", "@appbaseio/reactivesearch": "3.23.1", @@ -70,7 +70,7 @@ "@creativebulma/bulma-tooltip": "^1.2.0", "@elastic/elasticsearch-mock": "^2.0.0", "@graphql-codegen/cli": "^5.0.2", - "@graphql-codegen/client-preset": "^4.2.4", + "@graphql-codegen/client-preset": "^4.2.6", "@graphql-typed-document-node/core": "^3.2.0", "@nulib/dcapi-types": "^2.1.0", "@nulib/prettier-config": "^1.2.0", @@ -3399,20 +3399,20 @@ } }, "node_modules/@graphql-codegen/client-preset": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@graphql-codegen/client-preset/-/client-preset-4.2.5.tgz", - "integrity": "sha512-hAdB6HN8EDmkoBtr0bPUN/7NH6svzqbcTDMWBCRXPESXkl7y80po+IXrXUjsSrvhKG8xkNXgJNz/2mjwHzywcA==", + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/@graphql-codegen/client-preset/-/client-preset-4.2.6.tgz", + "integrity": "sha512-e7SzPb+nxNJfsD0uG+NSyzIeTtCXTouX5VThmcCoqGMDLgF5Lo7932B3HtZCvzmzqcXxRjJ81CmkA2LhlqIbCw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", "@babel/template": "^7.20.7", "@graphql-codegen/add": "^5.0.2", - "@graphql-codegen/gql-tag-operations": "4.0.6", - "@graphql-codegen/plugin-helpers": "^5.0.3", - "@graphql-codegen/typed-document-node": "^5.0.6", - "@graphql-codegen/typescript": "^4.0.6", - "@graphql-codegen/typescript-operations": "^4.2.0", - "@graphql-codegen/visitor-plugin-common": "^5.1.0", + "@graphql-codegen/gql-tag-operations": "4.0.7", + "@graphql-codegen/plugin-helpers": "^5.0.4", + "@graphql-codegen/typed-document-node": "^5.0.7", + "@graphql-codegen/typescript": "^4.0.7", + "@graphql-codegen/typescript-operations": "^4.2.1", + "@graphql-codegen/visitor-plugin-common": "^5.2.0", "@graphql-tools/documents": "^1.0.0", "@graphql-tools/utils": "^10.0.0", "@graphql-typed-document-node/core": "3.2.0", @@ -3438,13 +3438,13 @@ } }, "node_modules/@graphql-codegen/gql-tag-operations": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@graphql-codegen/gql-tag-operations/-/gql-tag-operations-4.0.6.tgz", - "integrity": "sha512-y6iXEDpDNjwNxJw3WZqX1/Znj0QHW7+y8O+t2V8qvbTT+3kb2lr9ntc8By7vCr6ctw9tXI4XKaJgpTstJDOwFA==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/@graphql-codegen/gql-tag-operations/-/gql-tag-operations-4.0.7.tgz", + "integrity": "sha512-2I69+IDC8pqAohH6cgKse/vPfJ/4TRTJX96PkAKz8S4RD54PUHtBmzCdBInIFEP/vQuH5mFUAaIKXXjznmGOsg==", "dev": true, "dependencies": { - "@graphql-codegen/plugin-helpers": "^5.0.3", - "@graphql-codegen/visitor-plugin-common": "5.1.0", + "@graphql-codegen/plugin-helpers": "^5.0.4", + "@graphql-codegen/visitor-plugin-common": "5.2.0", "@graphql-tools/utils": "^10.0.0", "auto-bind": "~4.0.0", "tslib": "~2.6.0" @@ -3454,9 +3454,9 @@ } }, "node_modules/@graphql-codegen/plugin-helpers": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-5.0.3.tgz", - "integrity": "sha512-yZ1rpULIWKBZqCDlvGIJRSyj1B2utkEdGmXZTBT/GVayP4hyRYlkd36AJV/LfEsVD8dnsKL5rLz2VTYmRNlJ5Q==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-5.0.4.tgz", + "integrity": "sha512-MOIuHFNWUnFnqVmiXtrI+4UziMTYrcquljaI5f/T/Bc7oO7sXcfkAvgkNWEEi9xWreYwvuer3VHCuPI/lAFWbw==", "dev": true, "dependencies": { "@graphql-tools/utils": "^10.0.0", @@ -3485,13 +3485,13 @@ } }, "node_modules/@graphql-codegen/typed-document-node": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@graphql-codegen/typed-document-node/-/typed-document-node-5.0.6.tgz", - "integrity": "sha512-US0J95hOE2/W/h42w4oiY+DFKG7IetEN1mQMgXXeat1w6FAR5PlIz4JrRrEkiVfVetZ1g7K78SOwBD8/IJnDiA==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typed-document-node/-/typed-document-node-5.0.7.tgz", + "integrity": "sha512-rgFh96hAbNwPUxLVlRcNhGaw2+y7ZGx7giuETtdO8XzPasTQGWGRkZ3wXQ5UUiTX4X3eLmjnuoXYKT7HoxSznQ==", "dev": true, "dependencies": { - "@graphql-codegen/plugin-helpers": "^5.0.3", - "@graphql-codegen/visitor-plugin-common": "5.1.0", + "@graphql-codegen/plugin-helpers": "^5.0.4", + "@graphql-codegen/visitor-plugin-common": "5.2.0", "auto-bind": "~4.0.0", "change-case-all": "1.0.15", "tslib": "~2.6.0" @@ -3501,14 +3501,14 @@ } }, "node_modules/@graphql-codegen/typescript": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-4.0.6.tgz", - "integrity": "sha512-IBG4N+Blv7KAL27bseruIoLTjORFCT3r+QYyMC3g11uY3/9TPpaUyjSdF70yBe5GIQ6dAgDU+ENUC1v7EPi0rw==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-4.0.7.tgz", + "integrity": "sha512-Gn+JNvQBJhBqH7s83piAJ6UeU/MTj9GXWFO9bdbl8PMLCAM1uFAtg04iHfkGCtDKXcUg5a3Dt/SZG85uk5KuhA==", "dev": true, "dependencies": { - "@graphql-codegen/plugin-helpers": "^5.0.3", + "@graphql-codegen/plugin-helpers": "^5.0.4", "@graphql-codegen/schema-ast": "^4.0.2", - "@graphql-codegen/visitor-plugin-common": "5.1.0", + "@graphql-codegen/visitor-plugin-common": "5.2.0", "auto-bind": "~4.0.0", "tslib": "~2.6.0" }, @@ -3517,14 +3517,14 @@ } }, "node_modules/@graphql-codegen/typescript-operations": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-operations/-/typescript-operations-4.2.0.tgz", - "integrity": "sha512-lmuwYb03XC7LNRS8oo9M4/vlOrq/wOKmTLBHlltK2YJ1BO/4K/Q9Jdv/jDmJpNydHVR1fmeF4wAfsIp1f9JibA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-operations/-/typescript-operations-4.2.1.tgz", + "integrity": "sha512-LhEPsaP+AI65zfK2j6CBAL4RT0bJL/rR9oRWlvwtHLX0t7YQr4CP4BXgvvej9brYdedAxHGPWeV1tPHy5/z9KQ==", "dev": true, "dependencies": { - "@graphql-codegen/plugin-helpers": "^5.0.3", - "@graphql-codegen/typescript": "^4.0.6", - "@graphql-codegen/visitor-plugin-common": "5.1.0", + "@graphql-codegen/plugin-helpers": "^5.0.4", + "@graphql-codegen/typescript": "^4.0.7", + "@graphql-codegen/visitor-plugin-common": "5.2.0", "auto-bind": "~4.0.0", "tslib": "~2.6.0" }, @@ -3533,12 +3533,12 @@ } }, "node_modules/@graphql-codegen/visitor-plugin-common": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-5.1.0.tgz", - "integrity": "sha512-eamQxtA9bjJqI2lU5eYoA1GbdMIRT2X8m8vhWYsVQVWD3qM7sx/IqJU0kx0J3Vd4/CSd36BzL6RKwksibytDIg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-5.2.0.tgz", + "integrity": "sha512-0p8AwmARaZCAlDFfQu6Sz+JV6SjbPDx3y2nNM7WAAf0au7Im/GpJ7Ke3xaIYBc1b2rTZ+DqSTJI/zomENGD9NA==", "dev": true, "dependencies": { - "@graphql-codegen/plugin-helpers": "^5.0.3", + "@graphql-codegen/plugin-helpers": "^5.0.4", "@graphql-tools/optimize": "^2.0.0", "@graphql-tools/relay-operation-optimizer": "^7.0.0", "@graphql-tools/utils": "^10.0.0", diff --git a/app/assets/package.json b/app/assets/package.json index 695896fef..90ac4af7d 100644 --- a/app/assets/package.json +++ b/app/assets/package.json @@ -80,7 +80,7 @@ "@creativebulma/bulma-tooltip": "^1.2.0", "@elastic/elasticsearch-mock": "^2.0.0", "@graphql-codegen/cli": "^5.0.2", - "@graphql-codegen/client-preset": "^4.2.4", + "@graphql-codegen/client-preset": "^4.2.6", "@graphql-typed-document-node/core": "^3.2.0", "@nulib/dcapi-types": "^2.1.0", "@nulib/prettier-config": "^1.2.0", From 03f37e9c49b8a12d4d29abcc694a39b03c248f5b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 May 2024 12:01:07 +0000 Subject: [PATCH 17/19] Bump sass from 1.77.0 to 1.77.2 in /app/assets Bumps [sass](https://github.com/sass/dart-sass) from 1.77.0 to 1.77.2. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.77.0...1.77.2) --- updated-dependencies: - dependency-name: sass dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- app/assets/package-lock.json | 10 +++++----- app/assets/package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/assets/package-lock.json b/app/assets/package-lock.json index 7fd9109c1..52ff8a440 100644 --- a/app/assets/package-lock.json +++ b/app/assets/package-lock.json @@ -7,7 +7,7 @@ "license": "MIT", "dependencies": { "@absinthe/socket-apollo-link": "^0.2.1", - "@apollo/client": "latest", + "@apollo/client": "*", "@apollo/react-hooks": "^4.0.0", "@apollo/react-testing": "^4.0.0", "@appbaseio/reactivesearch": "3.23.1", @@ -99,7 +99,7 @@ "react-dom": "^18.3.1", "react-router-dom": "^5.3.0", "react-router-prop-types": "^1.0.5", - "sass": "^1.77.0", + "sass": "^1.77.2", "ts-node": "^10.9.2", "typescript": "^5.4.2", "use-phoenix-channel": "^1.1.1" @@ -20003,9 +20003,9 @@ } }, "node_modules/sass": { - "version": "1.77.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.0.tgz", - "integrity": "sha512-eGj4HNfXqBWtSnvItNkn7B6icqH14i3CiCGbzMKs3BAPTq62pp9NBYsBgyN4cA+qssqo9r26lW4JSvlaUUWbgw==", + "version": "1.77.2", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.2.tgz", + "integrity": "sha512-eb4GZt1C3avsX3heBNlrc7I09nyT00IUuo4eFhAbeXWU2fvA7oXI53SxODVAA+zgZCk9aunAZgO+losjR3fAwA==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", diff --git a/app/assets/package.json b/app/assets/package.json index 695896fef..d33f343b6 100644 --- a/app/assets/package.json +++ b/app/assets/package.json @@ -109,7 +109,7 @@ "react-dom": "^18.3.1", "react-router-dom": "^5.3.0", "react-router-prop-types": "^1.0.5", - "sass": "^1.77.0", + "sass": "^1.77.2", "ts-node": "^10.9.2", "typescript": "^5.4.2", "use-phoenix-channel": "^1.1.1" From f1cc41baf7e92699750e6821f88d779b1c7b1c7a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 May 2024 12:02:12 +0000 Subject: [PATCH 18/19] Bump @nulib/dcapi-types from 2.1.0 to 2.3.1 in /app/assets Bumps [@nulib/dcapi-types](https://github.com/nulib/dcapi-types) from 2.1.0 to 2.3.1. - [Release notes](https://github.com/nulib/dcapi-types/releases) - [Commits](https://github.com/nulib/dcapi-types/commits) --- updated-dependencies: - dependency-name: "@nulib/dcapi-types" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- app/assets/package-lock.json | 10 +++++----- app/assets/package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/assets/package-lock.json b/app/assets/package-lock.json index 7fd9109c1..fb53da4d2 100644 --- a/app/assets/package-lock.json +++ b/app/assets/package-lock.json @@ -7,7 +7,7 @@ "license": "MIT", "dependencies": { "@absinthe/socket-apollo-link": "^0.2.1", - "@apollo/client": "latest", + "@apollo/client": "*", "@apollo/react-hooks": "^4.0.0", "@apollo/react-testing": "^4.0.0", "@appbaseio/reactivesearch": "3.23.1", @@ -72,7 +72,7 @@ "@graphql-codegen/cli": "^5.0.2", "@graphql-codegen/client-preset": "^4.2.4", "@graphql-typed-document-node/core": "^3.2.0", - "@nulib/dcapi-types": "^2.1.0", + "@nulib/dcapi-types": "^2.3.1", "@nulib/prettier-config": "^1.2.0", "@testing-library/dom": "^10.1.0", "@testing-library/jest-dom": "^6.4.2", @@ -5450,9 +5450,9 @@ } }, "node_modules/@nulib/dcapi-types": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@nulib/dcapi-types/-/dcapi-types-2.1.0.tgz", - "integrity": "sha512-CV0dS65nbjivA/U2Ibgz0kTXzxg4doN96x8YRW7AnzRz0ftDH1DIWsuiTX1xpx3mRQagFFRxiUHp829s2tWT8w==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@nulib/dcapi-types/-/dcapi-types-2.3.1.tgz", + "integrity": "sha512-Puy2264x3K6q7QFLD9dAXw2KDrNOm2i61OxbLGQ/dVO9DxvsTghCwv7W3+//yRnVD/BFdHYwBNzxA3+X7K07Rg==", "dev": true }, "node_modules/@nulib/design-system": { diff --git a/app/assets/package.json b/app/assets/package.json index 695896fef..15f4fefa0 100644 --- a/app/assets/package.json +++ b/app/assets/package.json @@ -82,7 +82,7 @@ "@graphql-codegen/cli": "^5.0.2", "@graphql-codegen/client-preset": "^4.2.4", "@graphql-typed-document-node/core": "^3.2.0", - "@nulib/dcapi-types": "^2.1.0", + "@nulib/dcapi-types": "^2.3.1", "@nulib/prettier-config": "^1.2.0", "@testing-library/dom": "^10.1.0", "@testing-library/jest-dom": "^6.4.2", From 73391eb9607558356edf3a1a273b83b0a223d23e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 11:06:11 +0000 Subject: [PATCH 19/19] Bump ecto_sql from 3.11.1 to 3.11.2 in /app Bumps [ecto_sql](https://github.com/elixir-ecto/ecto_sql) from 3.11.1 to 3.11.2. - [Changelog](https://github.com/elixir-ecto/ecto_sql/blob/master/CHANGELOG.md) - [Commits](https://github.com/elixir-ecto/ecto_sql/compare/v3.11.1...v3.11.2) --- updated-dependencies: - dependency-name: ecto_sql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- app/mix.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/mix.lock b/app/mix.lock index 74e0b4ad3..e38d70de5 100644 --- a/app/mix.lock +++ b/app/mix.lock @@ -28,7 +28,7 @@ "ecto_enum": {:hex, :ecto_enum, "1.4.0", "d14b00e04b974afc69c251632d1e49594d899067ee2b376277efd8233027aec8", [:mix], [{:ecto, ">= 3.0.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:ecto_sql, "> 3.0.0", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:mariaex, ">= 0.0.0", [hex: :mariaex, repo: "hexpm", optional: true]}, {:postgrex, ">= 0.0.0", [hex: :postgrex, repo: "hexpm", optional: true]}], "hexpm", "8fb55c087181c2b15eee406519dc22578fa60dd82c088be376d0010172764ee4"}, "ecto_psql_extras": {:hex, :ecto_psql_extras, "0.7.15", "0fc29dbae0e444a29bd6abeee4cf3c4c037e692a272478a234a1cc765077dbb1", [:mix], [{:ecto_sql, "~> 3.7", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16.0 or ~> 0.17.0", [hex: :postgrex, repo: "hexpm", optional: false]}, {:table_rex, "~> 3.1.1 or ~> 4.0.0", [hex: :table_rex, repo: "hexpm", optional: false]}], "hexpm", "b6127f3a5c6fc3d84895e4768cc7c199f22b48b67d6c99b13fbf4a374e73f039"}, "ecto_ranked": {:hex, :ecto_ranked, "0.5.0", "0e428901fe4586f6561b039b90b44940383e90da534b1842a728b56b076fdd68", [:mix], [{:ecto_sql, "~> 3.0", [hex: :ecto_sql, repo: "hexpm", optional: false]}], "hexpm", "7f9e119539aca2cf6d98916409e592c884f89069014b7731db1f42483da7e192"}, - "ecto_sql": {:hex, :ecto_sql, "3.11.1", "e9abf28ae27ef3916b43545f9578b4750956ccea444853606472089e7d169470", [:mix], [{:db_connection, "~> 2.5 or ~> 2.4.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.11.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.6.0", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.16.0 or ~> 0.17.0 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:tds, "~> 2.1.1 or ~> 2.2", [hex: :tds, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "ce14063ab3514424276e7e360108ad6c2308f6d88164a076aac8a387e1fea634"}, + "ecto_sql": {:hex, :ecto_sql, "3.11.2", "c7cc7f812af571e50b80294dc2e535821b3b795ce8008d07aa5f336591a185a8", [:mix], [{:db_connection, "~> 2.4.1 or ~> 2.5", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.11.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.6.0", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.16 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:tds, "~> 2.1.1 or ~> 2.2", [hex: :tds, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "73c07f995ac17dbf89d3cfaaf688fcefabcd18b7b004ac63b0dc4ef39499ed6b"}, "elastix": {:hex, :elastix, "0.10.0", "7567da885677ba9deffc20063db5f3ca8cd10f23cff1ab3ed9c52b7063b7e340", [:mix], [{:httpoison, "~> 1.4", [hex: :httpoison, repo: "hexpm", optional: false]}, {:poison, "~> 3.0 or ~> 4.0", [hex: :poison, repo: "hexpm", optional: true]}, {:retry, "~> 0.8", [hex: :retry, repo: "hexpm", optional: false]}], "hexpm", "5fb342ce068b20f7845f5dd198c2dc80d967deafaa940a6e51b846db82696d1d"}, "eternal": {:hex, :eternal, "1.2.2", "d1641c86368de99375b98d183042dd6c2b234262b8d08dfd72b9eeaafc2a1abd", [:mix], [], "hexpm", "2c9fe32b9c3726703ba5e1d43a1d255a4f3f2d8f8f9bc19f094c7cb1a7a9e782"}, "ets": {:hex, :ets, "0.9.0", "79c6a6c205436780486f72d84230c6cba2f8a9920456750ddd1e47389107d5fd", [:mix], [], "hexpm", "2861fdfb04bcaeff370f1a5904eec864f0a56dcfebe5921ea9aadf2a481c822b"},