From 2401f65c5dc5d030eac82123f9c8b96bc3257c2a Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Wed, 13 Nov 2024 21:13:57 +0000 Subject: [PATCH 01/44] enhanced webpack and pdf support --- .eslintignore | 1 + .prettierignore | 1 + Dockerfile.reviewapp | 1 + Makefile | 1 + config-overrides.js | 2 ++ scripts/README.md | 1 + scripts/copy-react-file-viewer | 7 +++++++ src/.eslintrc.js | 1 + src/components/DocumentViewer/Content/Content.jsx | 2 +- 9 files changed, 16 insertions(+), 1 deletion(-) create mode 100755 scripts/copy-react-file-viewer diff --git a/.eslintignore b/.eslintignore index dff5f036538..f43216f6c93 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,3 +1,4 @@ # Negative filter for storybook config folder as dot folders are ignored by eslint by default # See https://github.com/eslint/eslint/issues/8429#issuecomment-355967308 !/.storybook +public/static/react-file-viewer/* \ No newline at end of file diff --git a/.prettierignore b/.prettierignore index 7aa12310386..30643fa56b3 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,2 +1,3 @@ public/swagger-ui/* !public/swagger-ui/index.html +public/static/react-file-viewer/* \ No newline at end of file diff --git a/Dockerfile.reviewapp b/Dockerfile.reviewapp index 7de62db25f2..c81dd6bcdd4 100644 --- a/Dockerfile.reviewapp +++ b/Dockerfile.reviewapp @@ -99,6 +99,7 @@ COPY public /build/public COPY src /build/src RUN set -x \ && ./scripts/copy-swagger-ui \ + && ./scripts/copy-react-file-viewer \ && yarn build ######### diff --git a/Makefile b/Makefile index 9f86ef2ce78..e370bc2d44a 100644 --- a/Makefile +++ b/Makefile @@ -164,6 +164,7 @@ client_deps: .check_hosts.stamp .client_deps.stamp ## Install client dependencie .client_deps.stamp: yarn.lock .check_node_version.stamp yarn install scripts/copy-swagger-ui + scripts/copy-react-file-viewer touch .client_deps.stamp .client_build.stamp: .client_deps.stamp $(shell find src -type f) diff --git a/config-overrides.js b/config-overrides.js index f7974bdd7e2..abbee24e96a 100644 --- a/config-overrides.js +++ b/config-overrides.js @@ -15,6 +15,8 @@ module.exports = { config.resolve.fallback = { // This is the Node polyfill for process/browser http: require.resolve('stream-http'), + https: false, + fs: false, }; config.plugins.push( new webpack.ProvidePlugin({ diff --git a/scripts/README.md b/scripts/README.md index 708f1c88ea2..87b4f7c69d8 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -141,6 +141,7 @@ This subset of development scripts is used primarily for building the app. | Script Name | Description | | ----------------- | ----------------------------------------------------------------- | | `copy-swagger-ui` | Copies the assets (other than xxx.html) into the public directory | +| `copy-react-file-viewer` | Copies react-file-viewer assets into the public directory to support dynamic importing of the pdfjs-dist library | | `gen-server` | generate swagger code from yaml files | | `openapi` | invokes the openapi redoc swagger tool | diff --git a/scripts/copy-react-file-viewer b/scripts/copy-react-file-viewer new file mode 100755 index 00000000000..51e4984760d --- /dev/null +++ b/scripts/copy-react-file-viewer @@ -0,0 +1,7 @@ +#! /usr/bin/env bash + +# Copies the react file viewer webpack chunks to a public static directory to enable serving +# Without this, the client will attempt to HTTP GET the chunk file, but if it cannot be found (Because it isn't served) +# it will default to MilMove's index.html +# This doesn't serve it, but it enables the backend to serve the static chunk fle +cp node_modules/@transcom/react-file-viewer/dist/{*.js,*.png} public/static/react-file-viewer diff --git a/src/.eslintrc.js b/src/.eslintrc.js index 9973b986a7f..9d562ed979e 100644 --- a/src/.eslintrc.js +++ b/src/.eslintrc.js @@ -1,4 +1,5 @@ module.exports = { + ignorePatterns: ['public/static/react-file-viewer/*'], rules: { // okay to disable because the threat actor (web application user) already controls the execution environment (web browser) 'security/detect-object-injection': 'off', diff --git a/src/components/DocumentViewer/Content/Content.jsx b/src/components/DocumentViewer/Content/Content.jsx index 77f1b39c77d..f1e1e597a21 100644 --- a/src/components/DocumentViewer/Content/Content.jsx +++ b/src/components/DocumentViewer/Content/Content.jsx @@ -33,7 +33,7 @@ const DocViewerContent = ({ fileType, filePath, saveRotation, setRotationValue, Zoom in - {['jpg', 'jpeg', 'gif', 'png'].includes(fileType) && ( + {['jpg', 'jpeg', 'gif', 'png', 'pdf'].includes(fileType) && ( <> - + {fileType !== 'pdf' && ( + + )} )} From 53cdca12f8180a1e5f3bffc9a953d1ecc9264ea2 Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Mon, 18 Nov 2024 14:27:31 -0500 Subject: [PATCH 10/44] e2e pdjfs test --- .../tests/office/documentViewer.spec.js | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/playwright/tests/office/documentViewer.spec.js b/playwright/tests/office/documentViewer.spec.js index 29618b0cb94..348e3573f3b 100644 --- a/playwright/tests/office/documentViewer.spec.js +++ b/playwright/tests/office/documentViewer.spec.js @@ -15,5 +15,66 @@ test.describe('The document viewer', () => { // sign in button not in header await expect(page.locator('#main').getByRole('button', { name: 'Sign in' })).toBeVisible(); }); + test('displays a PDF file correctly', async ({ page, officePage }) => { + test.slow(); // flaky no flaky + + // Build a move that has a PDF document + const move = await officePage.testHarness.buildHHGMoveWithServiceItemsAndPaymentRequestsAndFilesForTOO(); + + // Sign in as a TOO user (Any office user works) + await officePage.signInAsNewTOOUser(); + + // Navigate to the move + await officePage.tooNavigateToMove(move.locator); + await officePage.waitForLoading(); + + // Navigate to the document viewer + await page.getByTestId('edit-orders').click(); + await officePage.waitForLoading(); + + // Verify that the document viewer content is displayed + await expect(page.getByTestId('DocViewerContent')).toBeVisible(); // This can load but the PDF still fail + + // Wait for the PDF canvas to load <- This is the meat and potatoes + const pdfCanvas = page.locator('.pdf-canvas canvas'); + await pdfCanvas.waitFor({ state: 'visible', timeout: 10000 }); + + // Verify that the canvas box has dimensions + const canvasBox = await pdfCanvas.boundingBox(); + expect(canvasBox.width).toBeGreaterThan(0); + expect(canvasBox.height).toBeGreaterThan(0); + + // Test zoom functionality + + // Verify that the zoom in and zoom out buttons are visible + await expect(page.getByRole('button', { name: 'Zoom in' })).toBeVisible(); + await expect(page.getByRole('button', { name: 'Zoom out' })).toBeVisible(); + + // Capture the current canvas dimensions, we compare this later for zoom + const initialWidth = canvasBox.width; + const initialHeight = canvasBox.height; + + // Make it zoom + await page.getByRole('button', { name: 'Zoom in' }).click(); + + // Check that it zoomed in + const zoomedCanvasBox = await pdfCanvas.boundingBox(); + expect(zoomedCanvasBox.width).toBeGreaterThan(initialWidth); + expect(zoomedCanvasBox.height).toBeGreaterThan(initialHeight); + + // Test rotation functionality + + // Verify that rotate buttons are visible + await expect(page.getByRole('button', { name: 'Rotate left' })).toBeVisible(); + await expect(page.getByRole('button', { name: 'Rotate right' })).toBeVisible(); + + // Make it rotate + await page.getByRole('button', { name: 'Rotate right' }).click(); + + // Testing the rotation degree change isn't possible within playwright so instead we verify nothing broke + // The canvas will unload if the rotation breaks something + const rotatedPdfCanvas = page.locator('.pdf-canvas canvas'); + await rotatedPdfCanvas.waitFor({ state: 'visible', timeout: 10000 }); + }); }); }); From b565cb82c76228bdc1e162ff2457312ec142467c Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Mon, 18 Nov 2024 15:05:27 -0500 Subject: [PATCH 11/44] fixed test organization --- playwright/tests/office/documentViewer.spec.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/playwright/tests/office/documentViewer.spec.js b/playwright/tests/office/documentViewer.spec.js index 348e3573f3b..0575f6b5458 100644 --- a/playwright/tests/office/documentViewer.spec.js +++ b/playwright/tests/office/documentViewer.spec.js @@ -15,6 +15,9 @@ test.describe('The document viewer', () => { // sign in button not in header await expect(page.locator('#main').getByRole('button', { name: 'Sign in' })).toBeVisible(); }); + }); + + test.describe('When logged in', () => { test('displays a PDF file correctly', async ({ page, officePage }) => { test.slow(); // flaky no flaky From b832ad9d450643c29b5d578d00dba9558491d4df Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Mon, 18 Nov 2024 15:34:36 -0500 Subject: [PATCH 12/44] try a new testharness endpoint --- playwright/tests/office/documentViewer.spec.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/playwright/tests/office/documentViewer.spec.js b/playwright/tests/office/documentViewer.spec.js index 0575f6b5458..51550c9356e 100644 --- a/playwright/tests/office/documentViewer.spec.js +++ b/playwright/tests/office/documentViewer.spec.js @@ -22,7 +22,7 @@ test.describe('The document viewer', () => { test.slow(); // flaky no flaky // Build a move that has a PDF document - const move = await officePage.testHarness.buildHHGMoveWithServiceItemsAndPaymentRequestsAndFilesForTOO(); + const move = await officePage.testHarness.buildHHGWithAmendedOrders(); // Sign in as a TOO user (Any office user works) await officePage.signInAsNewTOOUser(); @@ -39,7 +39,7 @@ test.describe('The document viewer', () => { await expect(page.getByTestId('DocViewerContent')).toBeVisible(); // This can load but the PDF still fail // Wait for the PDF canvas to load <- This is the meat and potatoes - const pdfCanvas = page.locator('.pdf-canvas canvas'); + const pdfCanvas = page.locator('.pdf-canvas canvas').first(); await pdfCanvas.waitFor({ state: 'visible', timeout: 10000 }); // Verify that the canvas box has dimensions @@ -76,7 +76,7 @@ test.describe('The document viewer', () => { // Testing the rotation degree change isn't possible within playwright so instead we verify nothing broke // The canvas will unload if the rotation breaks something - const rotatedPdfCanvas = page.locator('.pdf-canvas canvas'); + const rotatedPdfCanvas = page.locator('.pdf-canvas canvas').first(); await rotatedPdfCanvas.waitFor({ state: 'visible', timeout: 10000 }); }); }); From ad0e9879bdf56f6d61736b6efec127b4acd0053c Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Tue, 19 Nov 2024 09:40:38 -0500 Subject: [PATCH 13/44] add server deps step to circleci and docker --- .circleci/config.yml | 20 +++++++ Dockerfile | 1 + Dockerfile.dp3 | 1 + Dockerfile.e2e | 1 + Dockerfile.local | 1 + Dockerfile.reviewapp | 1 + Makefile | 6 +++ scripts/README.md | 1 + scripts/fetch-react-file-viewer-from-yarn | 66 +++++++++++++++++++++++ 9 files changed, 98 insertions(+) create mode 100755 scripts/fetch-react-file-viewer-from-yarn diff --git a/.circleci/config.yml b/.circleci/config.yml index 8e4db7fbb44..73aa6da6a49 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1178,6 +1178,19 @@ jobs: command: make bin/swagger - save_cache_for_go - announce_failure + # Persist repository to the workspace for the pre_deps_server step + - persist_to_workspace: + root: . + paths: + - . + + # Prep the public folder for frontend dependency serving + pre_deps_server: + executor: mymove_compiler + steps: + - attach_workspace: + at: . + - run: scripts/fetch-react-file-viewer-from-yarn # `pre_deps_yarn` is used to cache yarn sources pre_deps_yarn: @@ -2293,6 +2306,8 @@ workflows: - pre_deps_golang + - pre_deps_server + - pre_deps_yarn - base_noop @@ -2331,6 +2346,7 @@ workflows: - pre_test: requires: - pre_deps_golang + - pre_deps_server - pre_deps_yarn - check_tls_certificate_dp3 - check_tls_certificate_stg @@ -2369,6 +2385,7 @@ workflows: - integration_tests_devseed: requires: - pre_deps_golang + - pre_deps_server # See comments at the top of this file for configuring/using # this branch config filters: @@ -2447,6 +2464,7 @@ workflows: requires: - anti_virus - pre_deps_golang + - pre_deps_server - build_app: requires: @@ -2531,6 +2549,7 @@ workflows: - deploy_dp3_migrations: requires: - pre_deps_golang + - pre_deps_server - pre_test - client_test - server_test @@ -2596,6 +2615,7 @@ workflows: - check_circle_against_stg_sha: requires: - pre_deps_golang + - pre_deps_server - pre_test - client_test - server_test diff --git a/Dockerfile b/Dockerfile index 9d8fa4fc867..afdf33674c9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,6 +20,7 @@ COPY config/tls/dod-sw-ca-75.pem /config/tls/dod-sw-ca-75.pem COPY swagger/* /swagger/ COPY build /build +COPY public/static/react-file-viewer /public/static/react-file-viewer ENTRYPOINT ["/bin/milmove"] diff --git a/Dockerfile.dp3 b/Dockerfile.dp3 index 6beeaf496d2..e47a0746e27 100644 --- a/Dockerfile.dp3 +++ b/Dockerfile.dp3 @@ -20,6 +20,7 @@ COPY config/tls/api.exp.dp3.us.crt /config/tls/api.exp.dp3.us.crt COPY swagger/* /swagger/ COPY build /build +COPY public/static/react-file-viewer /public/static/react-file-viewer ENTRYPOINT ["/bin/milmove"] diff --git a/Dockerfile.e2e b/Dockerfile.e2e index c88d243eb48..ad5c7417d22 100644 --- a/Dockerfile.e2e +++ b/Dockerfile.e2e @@ -21,6 +21,7 @@ COPY config /config COPY swagger /swagger COPY pkg/testdatagen/testdata /pkg/testdatagen/testdata COPY scripts /scripts +COPY public/static/react-file-viewer /public/static/react-file-viewer # Install tools needed in container # hadolint ignore=DL3018 diff --git a/Dockerfile.local b/Dockerfile.local index d64c11c34b4..bcbcd46c6bc 100644 --- a/Dockerfile.local +++ b/Dockerfile.local @@ -35,6 +35,7 @@ COPY config/tls/devlocal-ca.pem /config/tls/devlocal-ca.pem COPY swagger/* /swagger/ COPY build /build +COPY public/static/react-file-viewer /public/static/react-file-viewer ENTRYPOINT ["/bin/milmove"] diff --git a/Dockerfile.reviewapp b/Dockerfile.reviewapp index c81dd6bcdd4..2949f635093 100644 --- a/Dockerfile.reviewapp +++ b/Dockerfile.reviewapp @@ -33,6 +33,7 @@ ARG GIT_COMMIT COPY cmd /build/cmd COPY swagger /build/swagger COPY pkg /build/pkg +COPY public/static/react-file-viewer /public/static/react-file-viewer # fake src dir to silence make RUN mkdir /build/src diff --git a/Makefile b/Makefile index 5f0d045165a..464aff61b90 100644 --- a/Makefile +++ b/Makefile @@ -159,6 +159,9 @@ check_app: ## Make sure you're running the correct APP client_deps_update: .check_node_version.stamp ## Update client dependencies yarn upgrade +.PHONY: server_deps +server_deps: scripts/fetch-react-file-viewer-from-yarn ## Serve static dependencies for client + .PHONY: client_deps client_deps: .check_hosts.stamp .client_deps.stamp ## Install client dependencies .client_deps.stamp: yarn.lock .check_node_version.stamp @@ -412,6 +415,9 @@ build_tools: bin/gin \ bin/simulate-process-tpps \ bin/tls-checker ## Build all tools +.PHONY: prep_webpack_chunks +prep_webpack_chunks: scripts/copy-react-file-viewer + .PHONY: build build: server_build build_tools client_build ## Build the server, tools, and client diff --git a/scripts/README.md b/scripts/README.md index 16be60fa241..46aa61a74c1 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -143,6 +143,7 @@ This subset of development scripts is used primarily for building the app. | `copy-swagger-ui` | Copies the assets (other than xxx.html) into the public directory | | `copy-react-file-viewer` | Copies react-file-viewer assets into the public directory to support dynamic importing of the pdfjs-dist library | | `rebuild-dependencies-without-binaries` | Creates binaries for installed dependencies that don't come with one | +| `fetch-react-file-viewer-from-yarn` | Fetches react file viewer version from yarn.lock, extracts the /dist/ folder, and stores the output into public/static/react-file-viewer in order to have the ESM chunk be served to the client during runtime | | `gen-server` | generate swagger code from yaml files | | `openapi` | invokes the openapi redoc swagger tool | diff --git a/scripts/fetch-react-file-viewer-from-yarn b/scripts/fetch-react-file-viewer-from-yarn new file mode 100755 index 00000000000..bd8ec6b018f --- /dev/null +++ b/scripts/fetch-react-file-viewer-from-yarn @@ -0,0 +1,66 @@ +#!/bin/bash +set -e + +YARN_LOCK_PATH="yarn.lock" +TARGET_PACKAGE="@transcom/react-file-viewer" +SERVER_PUBLIC_DIR="$(pwd)/public/static/react-file-viewer" + +# Ensure yarn.lock exists +if [ ! -f "$YARN_LOCK_PATH" ]; then + echo "Error: $YARN_LOCK_PATH not found!" + exit 1 +fi + +# Extract the version of @transcom/react-file-viewer from yarn.lock using awk +# We use awk to parse the file instead of yarn because yarn is a client dependency +# and this script is a backend dependency. Yarn will not be available +PACKAGE_VERSION=$(awk -v package="$TARGET_PACKAGE" ' + $0 ~ "^\"" package "@" { + getline + if ($1 == "version") { + gsub(/"/, "", $2) + print $2 + exit + } + }' "$YARN_LOCK_PATH") + +if [ -z "$PACKAGE_VERSION" ]; then + echo "Error: Could not find $TARGET_PACKAGE version in $YARN_LOCK_PATH" + exit 1 +fi + +echo "Found $TARGET_PACKAGE version: $PACKAGE_VERSION" + +# Create a temporary directory to clone into +# We download the react file-viewer version outlined in yarn +# and then serve the ESM chunk +TEMP_DIR=$(mktemp -d) +echo "Created temporary directory at $TEMP_DIR" + +# Clone the repository +cd "$TEMP_DIR" +git clone https://github.com/transcom/react-file-viewer.git +cd react-file-viewer + +# Checkout the specific version +git checkout "v$PACKAGE_VERSION" 2>/dev/null || git checkout "$PACKAGE_VERSION" 2>/dev/null + +# Check if dist directory exists +if [ ! -d "dist" ]; then + echo "Error: 'dist' directory not found" + exit 1 +fi + +# Create the target directory if it doesn't exist +mkdir -p "$SERVER_PUBLIC_DIR" + +# Copy dist/*.js to the server's public directory +cp -r dist/*.js "$SERVER_PUBLIC_DIR" +echo "Copied dist/*.js to $SERVER_PUBLIC_DIR" + +# Remove temp +cd +rm -rf "$TEMP_DIR" +echo "Cleaned up temporary files" + +echo "Script completed successfully" From 9fd83e15f7372b4ba4dcd38d3508e08a73d3af30 Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Tue, 19 Nov 2024 09:53:46 -0500 Subject: [PATCH 14/44] requires step --- .circleci/config.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 73aa6da6a49..3b19a7f77fa 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2306,7 +2306,9 @@ workflows: - pre_deps_golang - - pre_deps_server + - pre_deps_server: + requires: + - pre_deps_golang - pre_deps_yarn From 24950796be312d2bdf79fc260714b06810a5c080 Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Tue, 19 Nov 2024 11:29:51 -0500 Subject: [PATCH 15/44] maintain original dir --- scripts/fetch-react-file-viewer-from-yarn | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/fetch-react-file-viewer-from-yarn b/scripts/fetch-react-file-viewer-from-yarn index bd8ec6b018f..c52216463dd 100755 --- a/scripts/fetch-react-file-viewer-from-yarn +++ b/scripts/fetch-react-file-viewer-from-yarn @@ -3,7 +3,8 @@ set -e YARN_LOCK_PATH="yarn.lock" TARGET_PACKAGE="@transcom/react-file-viewer" -SERVER_PUBLIC_DIR="$(pwd)/public/static/react-file-viewer" +ORIGINAL_DIR="$(pwd)" +SERVER_PUBLIC_DIR="$ORIGINAL_DIR/public/static/react-file-viewer" # Ensure yarn.lock exists if [ ! -f "$YARN_LOCK_PATH" ]; then @@ -59,7 +60,7 @@ cp -r dist/*.js "$SERVER_PUBLIC_DIR" echo "Copied dist/*.js to $SERVER_PUBLIC_DIR" # Remove temp -cd +cd "$ORIGINAL_DIR" rm -rf "$TEMP_DIR" echo "Cleaned up temporary files" From 88f06b6fd566fef303349867a6ae1bc3a024a932 Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Tue, 19 Nov 2024 11:53:21 -0500 Subject: [PATCH 16/44] test path persist --- .circleci/config.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3b19a7f77fa..2852962d0fd 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1759,6 +1759,8 @@ jobs: # save scripts for deploy - scripts - swagger + # Client dependency for PDF enabling + - public/static/react-file-viewer - pkg/testdatagen/testdata - announce_failure From 84a197d293e5dabf1bd0b8f56a5bec3e39ee2fee Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Tue, 19 Nov 2024 11:59:06 -0500 Subject: [PATCH 17/44] add extra step to compile app server --- .circleci/config.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 2852962d0fd..7e3e3436c3d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1738,6 +1738,9 @@ jobs: steps: - checkout - restore_cache_for_go + - run: + name: Manually setup react-file-viewer dependency for the client + command: scripts/fetch-react-file-viewer-from-yarn # make -j 4 tells make to run 4 simultaneous builds - run: make -j 4 server_build build_tools - persist_to_workspace: From c550d0e1ef4de6482455a532baced99142bd181b Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Tue, 19 Nov 2024 12:25:11 -0500 Subject: [PATCH 18/44] persist workspace changes --- .circleci/config.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 7e3e3436c3d..9cfbe1cee07 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1180,9 +1180,11 @@ jobs: - announce_failure # Persist repository to the workspace for the pre_deps_server step - persist_to_workspace: - root: . + root: ~/transcom/mymove paths: - - . + - scripts + - public + - yarn.lock # Prep the public folder for frontend dependency serving pre_deps_server: From ace782901d85aef7673e2b81bc9ff2a09c7666c2 Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Tue, 19 Nov 2024 12:44:32 -0500 Subject: [PATCH 19/44] change persisted files --- .circleci/config.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9cfbe1cee07..70ebc77f9dd 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1182,9 +1182,7 @@ jobs: - persist_to_workspace: root: ~/transcom/mymove paths: - - scripts - public - - yarn.lock # Prep the public folder for frontend dependency serving pre_deps_server: From 6464c1dfb3f3967c2edf65e5a43dd17b1b251cc0 Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Tue, 19 Nov 2024 12:51:11 -0500 Subject: [PATCH 20/44] remove pre deps server for testing --- .circleci/config.yml | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 70ebc77f9dd..4a38a9c102e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1173,25 +1173,17 @@ jobs: name: Install dependencies command: for i in $(seq 1 5); do go mod download && break || s=$? && sleep 5; done; (exit $s) - run: scripts/check-generated-code go.sum + - run: scripts/fetch-react-file-viewer-from-yarn - run: name: Install go-swagger command: make bin/swagger - save_cache_for_go - announce_failure - # Persist repository to the workspace for the pre_deps_server step - persist_to_workspace: root: ~/transcom/mymove paths: - public - # Prep the public folder for frontend dependency serving - pre_deps_server: - executor: mymove_compiler - steps: - - attach_workspace: - at: . - - run: scripts/fetch-react-file-viewer-from-yarn - # `pre_deps_yarn` is used to cache yarn sources pre_deps_yarn: executor: mymove_compiler @@ -2311,10 +2303,6 @@ workflows: - pre_deps_golang - - pre_deps_server: - requires: - - pre_deps_golang - - pre_deps_yarn - base_noop @@ -2353,7 +2341,6 @@ workflows: - pre_test: requires: - pre_deps_golang - - pre_deps_server - pre_deps_yarn - check_tls_certificate_dp3 - check_tls_certificate_stg @@ -2392,7 +2379,6 @@ workflows: - integration_tests_devseed: requires: - pre_deps_golang - - pre_deps_server # See comments at the top of this file for configuring/using # this branch config filters: @@ -2471,7 +2457,6 @@ workflows: requires: - anti_virus - pre_deps_golang - - pre_deps_server - build_app: requires: @@ -2556,7 +2541,6 @@ workflows: - deploy_dp3_migrations: requires: - pre_deps_golang - - pre_deps_server - pre_test - client_test - server_test @@ -2622,7 +2606,6 @@ workflows: - check_circle_against_stg_sha: requires: - pre_deps_golang - - pre_deps_server - pre_test - client_test - server_test From 6475c8fa0a52d75e507bcda11abf195147a49b75 Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Tue, 19 Nov 2024 13:33:05 -0500 Subject: [PATCH 21/44] adjust e2e workspace --- .circleci/config.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 4a38a9c102e..4711aa22f84 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -226,9 +226,7 @@ executors: # maybe don't need xlarge, but getting many timeouts with large # ahobson - 2023-02-07 resource_class: xlarge - # use ~/project as that already exists in cimg/node and is owned - # by circleci - working_directory: ~/project + working_directory: ~/transcom/mymove docker: - image: *playwright auth: @@ -1382,6 +1380,13 @@ jobs: executor: milmove_playwright_tester parallelism: 10 steps: + - run: + name: Verify react-file-viewer exists + command: | + if [ ! -d "public/static/react-file-viewer" ]; then + echo "Error: public/static/react-file-viewer not found, the server will not be able to serve frontend dependencies" + exit 1 + fi - e2e_tests_playwright: path: playwright/tests/office - announce_failure From e8ccfb705f57ade29e4621fc502fb3cc3061ea22 Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Tue, 19 Nov 2024 13:53:56 -0500 Subject: [PATCH 22/44] extra e2e script --- .circleci/config.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 4711aa22f84..f29966424bc 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -883,6 +883,8 @@ commands: make db_dev_create bin/milmove migrate + # Setup frontend dependency hosting + scripts/fetch-react-file-viewer-from-yarn # playwright tests DO NOT NEED SEED DATA bin/milmove serve 2>&1 | fmt - run: From 4b5dcc70c1cd9032df1b818f05ba7a544ac58055 Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Tue, 19 Nov 2024 14:39:20 -0500 Subject: [PATCH 23/44] move react file check location --- .circleci/config.yml | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index f29966424bc..a58eef9eaf2 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -226,7 +226,9 @@ executors: # maybe don't need xlarge, but getting many timeouts with large # ahobson - 2023-02-07 resource_class: xlarge - working_directory: ~/transcom/mymove + # project holds the root of transcom/mymove + # eg, circleci/project/pkg/handlers <- API location + working_directory: ~/project docker: - image: *playwright auth: @@ -803,6 +805,16 @@ commands: - restore_cache: keys: - v4-cache-yarn-v4-{{ checksum "yarn.lock" }} + - run: + name: Verify react-file-viewer exists + command: | + if [ ! -d "/home/circleci/project/public/static/react-file-viewer" ]; then + echo "Error: /home/circleci/project/public/static/react-file-viewer not found, the server will not be able to serve frontend dependencies" + exit 1 + fi + - run: + name: What is here + command: ls - run: name: setup hosts command: | @@ -1382,13 +1394,6 @@ jobs: executor: milmove_playwright_tester parallelism: 10 steps: - - run: - name: Verify react-file-viewer exists - command: | - if [ ! -d "public/static/react-file-viewer" ]; then - echo "Error: public/static/react-file-viewer not found, the server will not be able to serve frontend dependencies" - exit 1 - fi - e2e_tests_playwright: path: playwright/tests/office - announce_failure From c1b87cec5beac43f03111769cd3ebb1da215e0ce Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Tue, 19 Nov 2024 15:49:00 -0500 Subject: [PATCH 24/44] server pre deps organization --- .circleci/config.yml | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a58eef9eaf2..63de98c9713 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -226,8 +226,6 @@ executors: # maybe don't need xlarge, but getting many timeouts with large # ahobson - 2023-02-07 resource_class: xlarge - # project holds the root of transcom/mymove - # eg, circleci/project/pkg/handlers <- API location working_directory: ~/project docker: - image: *playwright @@ -806,15 +804,13 @@ commands: keys: - v4-cache-yarn-v4-{{ checksum "yarn.lock" }} - run: - name: Verify react-file-viewer exists + # Needed for PDF e2e + name: Verify react-file-viewer client dependency exists command: | if [ ! -d "/home/circleci/project/public/static/react-file-viewer" ]; then echo "Error: /home/circleci/project/public/static/react-file-viewer not found, the server will not be able to serve frontend dependencies" exit 1 fi - - run: - name: What is here - command: ls - run: name: setup hosts command: | @@ -1185,12 +1181,19 @@ jobs: name: Install dependencies command: for i in $(seq 1 5); do go mod download && break || s=$? && sleep 5; done; (exit $s) - run: scripts/check-generated-code go.sum - - run: scripts/fetch-react-file-viewer-from-yarn - run: name: Install go-swagger command: make bin/swagger - save_cache_for_go - announce_failure + + # Prep the public folder for frontend dependency serving + pre_deps_server: + executor: mymove_compiler + steps: + - attach_workspace: + at: . + - run: scripts/fetch-react-file-viewer-from-yarn - persist_to_workspace: root: ~/transcom/mymove paths: @@ -2315,6 +2318,10 @@ workflows: - pre_deps_golang + - pre_deps_server: + requires: + - pre_deps_golang + - pre_deps_yarn - base_noop @@ -2391,6 +2398,7 @@ workflows: - integration_tests_devseed: requires: - pre_deps_golang + - pre_deps_server # See comments at the top of this file for configuring/using # this branch config filters: @@ -2469,6 +2477,7 @@ workflows: requires: - anti_virus - pre_deps_golang + - pre_deps_server - build_app: requires: From e30810b6b1d0bab82b4c58cb2ef22104757eb773 Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Tue, 19 Nov 2024 15:52:36 -0500 Subject: [PATCH 25/44] rename server pre deps --- .circleci/config.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 63de98c9713..114576f67d3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1188,7 +1188,8 @@ jobs: - announce_failure # Prep the public folder for frontend dependency serving - pre_deps_server: + # This is needed for things like pdfjs-dist + prep_server_for_client_deps: executor: mymove_compiler steps: - attach_workspace: @@ -2318,7 +2319,7 @@ workflows: - pre_deps_golang - - pre_deps_server: + - prep_server_for_client_deps: requires: - pre_deps_golang @@ -2398,7 +2399,7 @@ workflows: - integration_tests_devseed: requires: - pre_deps_golang - - pre_deps_server + - prep_server_for_client_deps # See comments at the top of this file for configuring/using # this branch config filters: @@ -2477,7 +2478,7 @@ workflows: requires: - anti_virus - pre_deps_golang - - pre_deps_server + - prep_server_for_client_deps - build_app: requires: From ddbfddcd51edc439b923e7b61e5082c65660b244 Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Tue, 19 Nov 2024 15:55:17 -0500 Subject: [PATCH 26/44] support prep client deps --- .circleci/config.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 114576f67d3..946b4658cd9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1186,6 +1186,11 @@ jobs: command: make bin/swagger - save_cache_for_go - announce_failure + # Persist scripts for client deps prep + - persist_to_workspace: + root: ~/transcom/mymove + paths: + - scripts # Prep the public folder for frontend dependency serving # This is needed for things like pdfjs-dist From 597cb2984942cf9f6cacad3896ae20fe571390dd Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Tue, 19 Nov 2024 15:56:52 -0500 Subject: [PATCH 27/44] make prep server for client deps independent --- .circleci/config.yml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 946b4658cd9..ab9ddae553a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1186,17 +1186,13 @@ jobs: command: make bin/swagger - save_cache_for_go - announce_failure - # Persist scripts for client deps prep - - persist_to_workspace: - root: ~/transcom/mymove - paths: - - scripts # Prep the public folder for frontend dependency serving # This is needed for things like pdfjs-dist prep_server_for_client_deps: executor: mymove_compiler steps: + - checkout - attach_workspace: at: . - run: scripts/fetch-react-file-viewer-from-yarn @@ -2324,9 +2320,7 @@ workflows: - pre_deps_golang - - prep_server_for_client_deps: - requires: - - pre_deps_golang + - prep_server_for_client_deps - pre_deps_yarn From a51d26cfb706702637589a48560bd6e07ddce726 Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Tue, 19 Nov 2024 15:57:59 -0500 Subject: [PATCH 28/44] remove duplicate script calls --- .circleci/config.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ab9ddae553a..b91fed13958 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -891,8 +891,7 @@ commands: make db_dev_create bin/milmove migrate - # Setup frontend dependency hosting - scripts/fetch-react-file-viewer-from-yarn + # playwright tests DO NOT NEED SEED DATA bin/milmove serve 2>&1 | fmt - run: @@ -1747,9 +1746,6 @@ jobs: steps: - checkout - restore_cache_for_go - - run: - name: Manually setup react-file-viewer dependency for the client - command: scripts/fetch-react-file-viewer-from-yarn # make -j 4 tells make to run 4 simultaneous builds - run: make -j 4 server_build build_tools - persist_to_workspace: From 429295d9cb5636537549b7e0bb1a9512ead1b74b Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Wed, 20 Nov 2024 08:26:38 -0500 Subject: [PATCH 29/44] add brew requirement for canvas and pdfjs-dist --- Brewfile.local | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Brewfile.local b/Brewfile.local index 84f997ce601..6050c7e1f02 100644 --- a/Brewfile.local +++ b/Brewfile.local @@ -12,6 +12,13 @@ brew 'pre-commit' brew 'shellcheck' brew 'watchman' brew 'yarn' +brew 'pkg-config' +brew 'cairo' +brew 'pango' +brew 'libpng' +brew 'jpeg' +brew 'giflib' +brew 'librsvg' cask 'aws-vault' cask 'opensc' From e748922f14b01440bbb34ce631b907f7decaa54a Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Wed, 20 Nov 2024 08:32:44 -0500 Subject: [PATCH 30/44] script organization --- .circleci/config.yml | 8 ++++---- Makefile | 4 ++-- scripts/copy-react-file-viewer | 7 ++++++- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index b91fed13958..f5e6410c3bf 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1188,7 +1188,7 @@ jobs: # Prep the public folder for frontend dependency serving # This is needed for things like pdfjs-dist - prep_server_for_client_deps: + prep_server_hosted_client_deps: executor: mymove_compiler steps: - checkout @@ -2316,7 +2316,7 @@ workflows: - pre_deps_golang - - prep_server_for_client_deps + - prep_server_hosted_client_deps - pre_deps_yarn @@ -2394,7 +2394,7 @@ workflows: - integration_tests_devseed: requires: - pre_deps_golang - - prep_server_for_client_deps + - prep_server_hosted_client_deps # See comments at the top of this file for configuring/using # this branch config filters: @@ -2473,7 +2473,7 @@ workflows: requires: - anti_virus - pre_deps_golang - - prep_server_for_client_deps + - prep_server_hosted_client_deps - build_app: requires: diff --git a/Makefile b/Makefile index 464aff61b90..1e284a1c865 100644 --- a/Makefile +++ b/Makefile @@ -159,8 +159,8 @@ check_app: ## Make sure you're running the correct APP client_deps_update: .check_node_version.stamp ## Update client dependencies yarn upgrade -.PHONY: server_deps -server_deps: scripts/fetch-react-file-viewer-from-yarn ## Serve static dependencies for client +.PHONY: server_hosted_client_deps +server_hosted_client_deps: scripts/fetch-react-file-viewer-from-yarn ## Serve static dependencies for client. This can be used by devs, but is pretty much exclusively used by CI/CD for compiler reasons .PHONY: client_deps client_deps: .check_hosts.stamp .client_deps.stamp ## Install client dependencies diff --git a/scripts/copy-react-file-viewer b/scripts/copy-react-file-viewer index 45e82bc7984..db2d56aec00 100755 --- a/scripts/copy-react-file-viewer +++ b/scripts/copy-react-file-viewer @@ -3,5 +3,10 @@ # Copies the react file viewer webpack chunks to a public static directory to enable serving # Without this, the client will attempt to HTTP GET the chunk file, but if it cannot be found (Because it isn't served) # it will default to MilMove's index.html -# This doesn't serve it, but it enables the backend to serve the static chunk fle +# This doesn't serve it, but it enables the backend to serve the static chunk file +# README!: CI/CD does not use this script. +# If you are wondering the diff between this and CI/CD, it's this: +# This script works at any point in the configuration. It enables the public folder to hold the client dependency properly +# CI/CD needs a separate script "`fetch-react-file-viewer-from-yarn" because CI/CD must have its deps configured DURING compile +# This script only works AFTER compile. This is a dev friendly script cp node_modules/@transcom/react-file-viewer/dist/*.js public/static/react-file-viewer From 3248654f815833021549045bb92703f5dac777bc Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Thu, 21 Nov 2024 15:23:13 -0500 Subject: [PATCH 31/44] point to latest react-file-viewer release --- package.json | 2 +- yarn.lock | 676 ++++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 610 insertions(+), 68 deletions(-) diff --git a/package.json b/package.json index c0e449fb88e..333d21bb2f2 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "@opentelemetry/core": "^1.15.1", "@tanstack/react-query": "^4.29.12", "@tanstack/react-query-devtools": "^5.17.12", - "@transcom/react-file-viewer": "git+https://github.com/transcom/react-file-viewer#v1.2.4", + "@transcom/react-file-viewer": "git+https://github.com/transcom/react-file-viewer#v1.4.1", "@trussworks/react-uswds": "3.2.0", "axe-playwright": "^1.2.3", "bytes": "^3.1.2", diff --git a/yarn.lock b/yarn.lock index 4d2683f08bd..ba97a6cd777 100644 --- a/yarn.lock +++ b/yarn.lock @@ -44,6 +44,15 @@ "@babel/highlight" "^7.23.4" chalk "^2.4.2" +"@babel/code-frame@^7.25.9": + version "7.26.2" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85" + integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== + dependencies: + "@babel/helper-validator-identifier" "^7.25.9" + js-tokens "^4.0.0" + picocolors "^1.0.0" + "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" @@ -110,6 +119,17 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" +"@babel/generator@^7.25.9": + version "7.26.2" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.2.tgz#87b75813bec87916210e5e01939a4c823d6bb74f" + integrity sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw== + dependencies: + "@babel/parser" "^7.26.2" + "@babel/types" "^7.26.0" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^3.0.2" + "@babel/helper-annotate-as-pure@^7.12.10", "@babel/helper-annotate-as-pure@^7.22.5", "@babel/helper-annotate-as-pure@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz#5373c7bc8366b12a033b4be1ac13a206c6656aab" @@ -117,6 +137,13 @@ dependencies: "@babel/types" "^7.24.7" +"@babel/helper-annotate-as-pure@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz#d8eac4d2dc0d7b6e11fa6e535332e0d3184f06b4" + integrity sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g== + dependencies: + "@babel/types" "^7.25.9" + "@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" @@ -167,6 +194,19 @@ "@babel/helper-split-export-declaration" "^7.22.6" semver "^6.3.1" +"@babel/helper-create-class-features-plugin@^7.21.0": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz#7644147706bb90ff613297d49ed5266bde729f83" + integrity sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.25.9" + "@babel/helper-member-expression-to-functions" "^7.25.9" + "@babel/helper-optimise-call-expression" "^7.25.9" + "@babel/helper-replace-supers" "^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" + "@babel/traverse" "^7.25.9" + semver "^6.3.1" + "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.15", "@babel/helper-create-regexp-features-plugin@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" @@ -228,6 +268,14 @@ dependencies: "@babel/types" "^7.23.0" +"@babel/helper-member-expression-to-functions@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz#9dfffe46f727005a5ea29051ac835fb735e4c1a3" + integrity sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ== + dependencies: + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.25.9" + "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.12.5", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" @@ -253,11 +301,23 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-optimise-call-expression@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz#3324ae50bae7e2ab3c33f60c9a877b6a0146b54e" + integrity sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ== + dependencies: + "@babel/types" "^7.25.9" + "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.17.12", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== +"@babel/helper-plugin-utils@^7.20.2": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz#9cbdd63a9443a2c92a725cca7ebca12cc8dd9f46" + integrity sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw== + "@babel/helper-remap-async-to-generator@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" @@ -276,6 +336,15 @@ "@babel/helper-member-expression-to-functions" "^7.22.15" "@babel/helper-optimise-call-expression" "^7.22.5" +"@babel/helper-replace-supers@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz#ba447224798c3da3f8713fc272b145e33da6a5c5" + integrity sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.25.9" + "@babel/helper-optimise-call-expression" "^7.25.9" + "@babel/traverse" "^7.25.9" + "@babel/helper-simple-access@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" @@ -290,6 +359,14 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-skip-transparent-expression-wrappers@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz#0b2e1b62d560d6b1954893fd2b705dc17c91f0c9" + integrity sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA== + dependencies: + "@babel/traverse" "^7.25.9" + "@babel/types" "^7.25.9" + "@babel/helper-split-export-declaration@^7.16.7", "@babel/helper-split-export-declaration@^7.22.6": version "7.22.6" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" @@ -302,6 +379,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz#4d2d0f14820ede3b9807ea5fc36dfc8cd7da07f2" integrity sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg== +"@babel/helper-string-parser@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c" + integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== + "@babel/helper-validator-identifier@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" @@ -312,6 +394,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== +"@babel/helper-validator-identifier@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" + integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== + "@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.22.5", "@babel/helper-validator-option@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" @@ -349,6 +436,13 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b" integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA== +"@babel/parser@^7.25.9", "@babel/parser@^7.26.2": + version "7.26.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.2.tgz#fd7b6f487cfea09889557ef5d4eeb9ff9a5abd11" + integrity sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ== + dependencies: + "@babel/types" "^7.26.0" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a" @@ -381,6 +475,15 @@ "@babel/helper-create-class-features-plugin" "^7.17.12" "@babel/helper-plugin-utils" "^7.17.12" +"@babel/plugin-proposal-class-static-block@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz#77bdd66fb7b605f3a61302d224bdfacf5547977d" + integrity sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.21.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-proposal-decorators@^7.16.4": version "7.18.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.18.2.tgz#dbe4086d2d42db489399783c3aa9272e9700afd4" @@ -1219,6 +1322,15 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" +"@babel/template@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.9.tgz#ecb62d81a8a6f5dc5fe8abfc3901fc52ddf15016" + integrity sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg== + dependencies: + "@babel/code-frame" "^7.25.9" + "@babel/parser" "^7.25.9" + "@babel/types" "^7.25.9" + "@babel/traverse@^7.1.6", "@babel/traverse@^7.13.0", "@babel/traverse@^7.22.8", "@babel/traverse@^7.23.2", "@babel/traverse@^7.23.7", "@babel/traverse@^7.7.2": version "7.23.9" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.9.tgz#2f9d6aead6b564669394c5ce0f9302bb65b9d950" @@ -1235,6 +1347,19 @@ debug "^4.3.1" globals "^11.1.0" +"@babel/traverse@^7.25.9": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.9.tgz#a50f8fe49e7f69f53de5bea7e413cd35c5e13c84" + integrity sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw== + dependencies: + "@babel/code-frame" "^7.25.9" + "@babel/generator" "^7.25.9" + "@babel/parser" "^7.25.9" + "@babel/template" "^7.25.9" + "@babel/types" "^7.25.9" + debug "^4.3.1" + globals "^11.1.0" + "@babel/types@^7.0.0", "@babel/types@^7.12.11", "@babel/types@^7.12.6", "@babel/types@^7.18.4", "@babel/types@^7.2.0", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6", "@babel/types@^7.23.9", "@babel/types@^7.24.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.7.tgz#6027fe12bc1aa724cd32ab113fb7f1988f1f66f2" @@ -1244,6 +1369,14 @@ "@babel/helper-validator-identifier" "^7.24.7" to-fast-properties "^2.0.0" +"@babel/types@^7.25.9", "@babel/types@^7.26.0": + version "7.26.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.0.tgz#deabd08d6b753bc8e0f198f8709fb575e31774ff" + integrity sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA== + dependencies: + "@babel/helper-string-parser" "^7.25.9" + "@babel/helper-validator-identifier" "^7.25.9" + "@base2/pretty-print-object@1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@base2/pretty-print-object/-/pretty-print-object-1.0.1.tgz#371ba8be66d556812dc7fb169ebc3c08378f69d4" @@ -2032,6 +2165,15 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + "@jridgewell/resolve-uri@^3.1.0": version "3.1.1" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" @@ -2042,6 +2184,11 @@ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + "@jridgewell/source-map@^0.3.3": version "0.3.5" resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" @@ -2063,6 +2210,14 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@jsep-plugin/regex@^1.0.1": version "1.0.2" resolved "https://registry.yarnpkg.com/@jsep-plugin/regex/-/regex-1.0.2.tgz#a9d5b61bf9975fe6563ba13be4003773db9dfc4a" @@ -2083,6 +2238,21 @@ resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz#0300943770e04231041a51bd39f0439b5c7ab4f0" integrity sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg== +"@mapbox/node-pre-gyp@^1.0.0": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz#417db42b7f5323d79e93b34a6d7a2a12c0df43fa" + integrity sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ== + dependencies: + detect-libc "^2.0.0" + https-proxy-agent "^5.0.0" + make-dir "^3.1.0" + node-fetch "^2.6.7" + nopt "^5.0.0" + npmlog "^5.0.1" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.11" + "@material-ui/core@^4.12.4": version "4.12.4" resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-4.12.4.tgz#4ac17488e8fcaf55eb6a7f5efb2a131e10138a73" @@ -4583,15 +4753,23 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== -"@transcom/react-file-viewer@git+https://github.com/transcom/react-file-viewer#v1.2.4": - version "1.2.4" - resolved "git+https://github.com/transcom/react-file-viewer#d4396dc8bf0acdd646e93ea82d23acf3bc0d5b0f" - dependencies: - pdfjs-dist "1.8.357" +"@transcom/react-file-viewer@git+https://github.com/transcom/react-file-viewer#v1.4.1": + version "1.4.1" + resolved "git+https://github.com/transcom/react-file-viewer#ac31f65d7f0338a3072ac328c6670f8f64eaad25" + dependencies: + "@babel/plugin-proposal-class-static-block" "^7.21.0" + comma-separated-values "^3.6.4" + mammoth "^1.8.0" + path2d-polyfill "^3.1.2" + pdfjs-dist "^4.6.82" + playwright "^1.48.0" + process "^0.11.10" prop-types "^15.5.10" + react-data-grid "^6.1.0" react-visibility-sensor "^5.0.2" sass "^1.77.2" - three "0.137.0" + three "^0.169.0" + xlsx "^0.18.5" "@trussworks/react-uswds@3.2.0": version "3.2.0" @@ -5449,6 +5627,11 @@ object.fromentries "^2.0.0" prop-types "^15.7.0" +"@xmldom/xmldom@^0.8.6": + version "0.8.10" + resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz#a1337ca426aa61cef9fe15b5b28e340a72f6fa99" + integrity sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw== + "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -5487,6 +5670,11 @@ abab@^2.0.3, abab@^2.0.5: resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + abort-controller@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" @@ -5567,6 +5755,11 @@ adjust-sourcemap-loader@^4.0.0: loader-utils "^2.0.0" regex-parser "^2.2.11" +adler-32@~1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/adler-32/-/adler-32-1.3.1.tgz#1dbf0b36dda0012189a32b3679061932df1821e2" + integrity sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A== + agent-base@5: version "5.1.1" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c" @@ -5616,16 +5809,6 @@ ajv-keywords@^5.0.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^5.0.0: - version "5.5.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" - integrity sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw== - dependencies: - co "^4.6.0" - fast-deep-equal "^1.0.0" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - ajv@^6.10.0, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" @@ -5712,6 +5895,11 @@ app-root-dir@^1.0.2: resolved "https://registry.yarnpkg.com/app-root-dir/-/app-root-dir-1.0.2.tgz#38187ec2dea7577fff033ffcb12172692ff6e118" integrity sha1-OBh+wt6nV3//Az/8sSFyaS/24Rg= +"aproba@^1.0.3 || ^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + archiver-utils@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" @@ -5754,12 +5942,20 @@ archiver@^5.0.2: tar-stream "^2.2.0" zip-stream "^4.1.0" +are-we-there-yet@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" + integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== + dependencies: + delegates "^1.0.0" + readable-stream "^3.6.0" + arg@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.1.tgz#eb0c9a8f77786cad2af8ff2b862899842d7b6adb" integrity sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA== -argparse@^1.0.7: +argparse@^1.0.7, argparse@~1.0.3: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== @@ -6277,7 +6473,7 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base64-js@^1.3.1: +base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -6338,6 +6534,11 @@ bluebird@^3.5.5: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== +bluebird@~3.4.0: + version "3.4.7" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" + integrity sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA== + body-parser@1.20.3: version "1.20.3" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" @@ -6623,11 +6824,37 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001335, caniuse-lite@^1.0.30001565: resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001636.tgz" integrity sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg== +canvas@^2.11.2: + version "2.11.2" + resolved "https://registry.yarnpkg.com/canvas/-/canvas-2.11.2.tgz#553d87b1e0228c7ac0fc72887c3adbac4abbd860" + integrity sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw== + dependencies: + "@mapbox/node-pre-gyp" "^1.0.0" + nan "^2.17.0" + simple-get "^3.0.3" + +canvas@^3.0.0-rc2: + version "3.0.0-rc2" + resolved "https://registry.yarnpkg.com/canvas/-/canvas-3.0.0-rc2.tgz#710a91520e98b5f6829120f48980ce3fea985d15" + integrity sha512-esx4bYDznnqgRX4G8kaEaf0W3q8xIc51WpmrIitDzmcoEgwnv9wSKdzT6UxWZ4wkVu5+ileofppX0TpyviJRdQ== + dependencies: + node-addon-api "^7.0.0" + prebuild-install "^7.1.1" + simple-get "^3.0.3" + case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw== +cfb@~1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/cfb/-/cfb-1.2.2.tgz#94e687628c700e5155436dac05f74e08df23bc44" + integrity sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA== + dependencies: + adler-32 "~1.3.0" + crc-32 "~1.2.0" + chalk@4.1.2, chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -6854,6 +7081,11 @@ coa@^2.0.2: chalk "^2.4.1" q "^1.1.2" +codepage@~1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/codepage/-/codepage-1.15.0.tgz#2e00519024b39424ec66eeb3ec07227e692618ab" + integrity sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA== + collect-v8-coverage@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" @@ -6883,6 +7115,11 @@ color-name@^1.1.4, color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-support@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + colord@^2.9.1: version "2.9.2" resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.2.tgz#25e2bacbbaa65991422c07ea209e2089428effb1" @@ -6910,6 +7147,11 @@ comma-separated-tokens@^2.0.0: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.2.tgz#d4c25abb679b7751c880be623c1179780fe1dd98" integrity sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg== +comma-separated-values@^3.6.4: + version "3.6.4" + resolved "https://registry.yarnpkg.com/comma-separated-values/-/comma-separated-values-3.6.4.tgz#c309ec7024f74b7ae19223372054242617e35bd2" + integrity sha512-B0mjBHUfu4JqzYM5NurRTBl2QuNqQ9/O62EUfL4+bo2KN81fGsFOFOHbHn5SP65n3lmFPzGLkdg8wfuLKk9HOQ== + commander@^2.15.1, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -7048,6 +7290,11 @@ connected-react-router@^6.9.3: immutable "^3.8.1 || ^4.0.0" seamless-immutable "^7.1.3" +console-control-strings@^1.0.0, console-control-strings@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== + constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" @@ -7156,6 +7403,11 @@ crc-32@^1.2.0: exit-on-epipe "~1.0.1" printj "~1.1.0" +crc-32@~1.2.0, crc-32@~1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + crc32-stream@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-3.0.1.tgz#cae6eeed003b0e44d739d279de5ae63b171b4e85" @@ -7563,6 +7815,13 @@ decompress-response@^3.3.0: dependencies: mimic-response "^1.0.0" +decompress-response@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" + integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== + dependencies: + mimic-response "^2.0.0" + decompress-response@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" @@ -7713,6 +7972,11 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== + depd@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" @@ -7753,6 +8017,11 @@ detect-indent@^6.1.0: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== +detect-libc@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700" + integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== + detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" @@ -7820,6 +8089,11 @@ diff-sequences@^27.5.1: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== +dingbat-to-unicode@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dingbat-to-unicode/-/dingbat-to-unicode-1.0.1.tgz#5091dd673241453e6b5865e26e5a4452cdef5c83" + integrity sha512-98l0sW87ZT58pU4i61wa2OHwxbiYSbuxsCBozaVnYX2iCnr3bLM3fIes1/ej7h1YdOKuKt/MLs706TVnALA65w== + dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -7991,6 +8265,13 @@ dotenv@^16.0.0, dotenv@^16.3.1: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e" integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== +duck@^0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/duck/-/duck-0.1.12.tgz#de7adf758421230b6d7aee799ce42670586b9efa" + integrity sha512-wkctla1O6VfP89gQ+J/yDesM0S7B7XLXjKGzXxMDVFg7uEn706niAtyYovKbyq1oT9YwDcly721/iUWoc8MVRg== + dependencies: + underscore "^1.13.1" + duplexer3@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" @@ -8813,6 +9094,11 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" @@ -8889,11 +9175,6 @@ extract-zip@^1.6.6: mkdirp "^0.5.4" yauzl "^2.10.0" -fast-deep-equal@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" - integrity sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw== - fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -9286,6 +9567,11 @@ forwarded@0.2.0: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== +frac@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/frac/-/frac-1.1.2.tgz#3d74f7f6478c88a1b5020306d747dc6313c74d0b" + integrity sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA== + fraction.js@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" @@ -9381,6 +9667,21 @@ functions-have-names@^1.2.3: resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== +gauge@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" + integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.2" + console-control-strings "^1.0.0" + has-unicode "^2.0.1" + object-assign "^4.1.1" + signal-exit "^3.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.2" + gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -9490,6 +9791,11 @@ git-config-path@^1.0.1: fs-exists-sync "^0.1.0" homedir-polyfill "^1.0.0" +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== + github-slugger@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.4.0.tgz#206eb96cdb22ee56fdc53a28d5a302338463444e" @@ -9790,6 +10096,11 @@ has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: dependencies: has-symbols "^1.0.3" +has-unicode@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== + has-yarn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" @@ -10105,6 +10416,11 @@ imask@^7.6.1: dependencies: "@babel/runtime-corejs3" "^7.24.4" +immediate@~3.0.5: + version "3.0.6" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== + immer@^9.0.2, immer@^9.0.6, immer@^9.0.7: version "9.0.6" resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.6.tgz#7a96bf2674d06c8143e327cbf73539388ddf1a73" @@ -11366,6 +11682,11 @@ jsesc@^2.5.1: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +jsesc@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" + integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== + jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" @@ -11386,11 +11707,6 @@ json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== -json-schema-traverse@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" - integrity sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA== - json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -11538,6 +11854,16 @@ jss@10.8.0, jss@^10.5.1: array-includes "^3.1.4" object.assign "^4.1.2" +jszip@^3.7.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.10.1.tgz#34aee70eb18ea1faec2f589208a157d1feb091c2" + integrity sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g== + dependencies: + lie "~3.3.0" + pako "~1.0.2" + readable-stream "~2.3.6" + setimmediate "^1.0.5" + jwa@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" @@ -11662,6 +11988,13 @@ li@^1.3.0: resolved "https://registry.yarnpkg.com/li/-/li-1.3.0.tgz#22c59bcaefaa9a8ef359cf759784e4bf106aea1b" integrity sha1-IsWbyu+qmo7zWc91l4TkvxBq6hs= +lie@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" + integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== + dependencies: + immediate "~3.0.5" + lilconfig@^2.0.3, lilconfig@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25" @@ -11677,7 +12010,7 @@ loader-runner@^4.2.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== -loader-utils@^1.0.2, loader-utils@^2.0.0, loader-utils@^2.0.3, loader-utils@^2.0.4, loader-utils@^3.2.0: +loader-utils@^2.0.0, loader-utils@^2.0.3, loader-utils@^2.0.4, loader-utils@^3.2.0: version "2.0.4" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== @@ -11846,6 +12179,15 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" +lop@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/lop/-/lop-0.4.2.tgz#c9c2f958a39b9da1c2f36ca9ad66891a9fe84640" + integrity sha512-RefILVDQ4DKoRZsJ4Pj22TxE3omDO47yFpkIBoDKzkqPRISs5U1cnAdg/5583YPkWPaLIYHOKRMQSvjFsO26cw== + dependencies: + duck "^0.1.12" + option "~0.2.1" + underscore "^1.13.1" + lower-case@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" @@ -11916,6 +12258,22 @@ makeerror@1.0.12: dependencies: tmpl "1.0.5" +mammoth@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/mammoth/-/mammoth-1.8.0.tgz#d8f1b0d3a0355fda129270346e9dc853f223028f" + integrity sha512-pJNfxSk9IEGVpau+tsZFz22ofjUsl2mnA5eT8PjPs2n0BP+rhVte4Nez6FdgEuxv3IGI3afiV46ImKqTGDVlbA== + dependencies: + "@xmldom/xmldom" "^0.8.6" + argparse "~1.0.3" + base64-js "^1.5.1" + bluebird "~3.4.0" + dingbat-to-unicode "^1.0.1" + jszip "^3.7.1" + lop "^0.4.1" + path-is-absolute "^1.0.0" + underscore "^1.13.1" + xmlbuilder "^10.0.0" + map-or-similar@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/map-or-similar/-/map-or-similar-1.5.0.tgz#6de2653174adfb5d9edc33c69d3e92a1b76faf08" @@ -12314,6 +12672,11 @@ mimic-response@^1.0.0, mimic-response@^1.0.1: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== +mimic-response@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" + integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== + mimic-response@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" @@ -12364,7 +12727,7 @@ minimatch@^9.0.1: dependencies: brace-expansion "^2.0.1" -minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== @@ -12394,7 +12757,7 @@ minizlib@^2.1.1: minipass "^3.0.0" yallist "^4.0.0" -mkdirp-classic@^0.5.2: +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== @@ -12471,6 +12834,11 @@ mustache@^4.0.1: resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== +nan@^2.17.0: + version "2.22.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.22.0.tgz#31bc433fc33213c97bad36404bb68063de604de3" + integrity sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw== + nano-time@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/nano-time/-/nano-time-1.0.0.tgz#b0554f69ad89e22d0907f7a12b0993a5d96137ef" @@ -12483,6 +12851,11 @@ nanoid@^3.3.6: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + natural-compare-lite@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" @@ -12534,11 +12907,23 @@ no-case@^3.0.4: lower-case "^2.0.2" tslib "^2.0.3" +node-abi@^3.3.0: + version "3.71.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.71.0.tgz#52d84bbcd8575efb71468fbaa1f9a49b2c242038" + integrity sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw== + dependencies: + semver "^7.3.5" + node-abort-controller@^3.0.1: version "3.1.1" resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== +node-addon-api@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.1.tgz#1aba6693b0f255258a049d621329329322aad558" + integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== + node-cleanup@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/node-cleanup/-/node-cleanup-2.1.2.tgz#7ac19abd297e09a7f72a71545d951b517e4dde2c" @@ -12556,11 +12941,6 @@ node-domexception@1.0.0: resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== -node-ensure@^0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/node-ensure/-/node-ensure-0.0.0.tgz#ecae764150de99861ec5c810fd5d096b183932a7" - integrity sha512-DRI60hzo2oKN1ma0ckc6nQWlHU69RH6xN0sjQTjMpChPfTYvKZdcQFfdYK2RWbJcKyUizSIy/l8OTGxMAM1QDw== - node-fetch-native@^1.0.2: version "1.1.1" resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.1.1.tgz#b8977dd7fe6c5599e417301ed3987bca787d3d6f" @@ -12599,6 +12979,13 @@ node-releases@^2.0.14: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + abbrev "1" + normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -12641,6 +13028,16 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" +npmlog@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" + integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== + dependencies: + are-we-there-yet "^2.0.0" + console-control-strings "^1.1.0" + gauge "^3.0.0" + set-blocking "^2.0.0" + nth-check@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" @@ -12814,6 +13211,11 @@ open@^8.0.4, open@^8.0.9, open@^8.4.0: is-docker "^2.1.1" is-wsl "^2.2.0" +option@~0.2.1: + version "0.2.4" + resolved "https://registry.yarnpkg.com/option/-/option-0.2.4.tgz#fd475cdf98dcabb3cb397a3ba5284feb45edbfe4" + integrity sha512-pkEqbDyl8ou5cpq+VsnQbe/WlEy5qS7xPzMS1U55OCG9KPvwFD46zDbxQIj3egJSFc3D+XhYOPUzz49zQAVy7A== + optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -12957,6 +13359,11 @@ pako@~0.2.0: resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" integrity sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA== +pako@~1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + papaparse@5.x: version "5.3.1" resolved "https://registry.yarnpkg.com/papaparse/-/papaparse-5.3.1.tgz#770b7a9124d821d4b2132132b7bd7dce7194b5b1" @@ -13113,6 +13520,18 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +path2d-polyfill@^3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/path2d-polyfill/-/path2d-polyfill-3.1.3.tgz#cfda19136ef0747f9fbc2cf49d451666b1cff0fe" + integrity sha512-I/Kdsq0nCn6G2rqaDaQMtsunlT/sOsRjwPb3D0bb3ZIwNSp6iM5mnprcYMKGAYPPOTG4qOQmSBi77pq/s4PM2A== + dependencies: + path2d "^0.2.2" + +path2d@^0.2.1, path2d@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/path2d/-/path2d-0.2.2.tgz#cc85d61ed7827e7863a2ee36713d4b5315a3d85d" + integrity sha512-+vnG6S4dYcYxZd+CZxzXCNKdELYZSKfohrk98yajCo1PtRoDgCTrrwOvK1GT0UoAdVszagDVllQc0U1vaX4NUQ== + path@^0.12.7: version "0.12.7" resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f" @@ -13126,13 +13545,13 @@ pathe@^1.1.0: resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.0.tgz#e2e13f6c62b31a3289af4ba19886c230f295ec03" integrity sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w== -pdfjs-dist@1.8.357: - version "1.8.357" - resolved "https://registry.yarnpkg.com/pdfjs-dist/-/pdfjs-dist-1.8.357.tgz#85c24944e81b67080656a60dd7b58f3a33fbd084" - integrity sha512-ampPgu+QHnreVkCebVprhKvFX7Z+K5Zf5vQdFc7d48pzJgg9//lv4mjpZbrX+j5nSocrbEZZPnyHdN/5zjf39w== - dependencies: - node-ensure "^0.0.0" - worker-loader "^0.8.0" +pdfjs-dist@^4.6.82: + version "4.8.69" + resolved "https://registry.yarnpkg.com/pdfjs-dist/-/pdfjs-dist-4.8.69.tgz#61ea5d66863d49b40e5eacbd4070341175bdda2e" + integrity sha512-IHZsA4T7YElCKNNXtiLgqScw4zPd3pG9do8UrznC757gMd7UPeHSL2qwNNMJo4r79fl8oj1Xx+1nh2YkzdMpLQ== + optionalDependencies: + canvas "^3.0.0-rc2" + path2d "^0.2.1" peek-stream@^1.1.0: version "1.1.3" @@ -13221,6 +13640,11 @@ playwright-core@1.39.0: resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.39.0.tgz#efeaea754af4fb170d11845b8da30b2323287c63" integrity sha512-+k4pdZgs1qiM+OUkSjx96YiKsXsmb59evFoqv8SKO067qBA+Z2s/dCzJij/ZhdQcs2zlTAgRKfeiiLm8PQ2qvw== +playwright-core@1.49.0: + version "1.49.0" + resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.49.0.tgz#8e69ffed3f41855b854982f3632f2922c890afcb" + integrity sha512-R+3KKTQF3npy5GTiKH/T+kdhoJfJojjHESR1YEWhYuEKRVfVaxH3+4+GvXE5xyCngCxhxnykk0Vlah9v8fs3jA== + playwright@1.39.0: version "1.39.0" resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.39.0.tgz#184c81cd6478f8da28bcd9e60e94fcebf566e077" @@ -13230,6 +13654,15 @@ playwright@1.39.0: optionalDependencies: fsevents "2.3.2" +playwright@^1.48.0: + version "1.49.0" + resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.49.0.tgz#df6b9e05423377a99658202844a294a8afb95d0a" + integrity sha512-eKpmys0UFDnfNb3vfsf8Vx2LEOtflgRebl0Im2eQQnYMA4Aqd+Zw8bEOB+7ZKvN76901mRnqdsiOGKxzVTbi7A== + dependencies: + playwright-core "1.49.0" + optionalDependencies: + fsevents "2.3.2" + pngjs@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" @@ -13917,6 +14350,24 @@ power-assert@^1.0.0: universal-deep-strict-equal "^1.2.1" xtend "^4.0.0" +prebuild-install@^7.1.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.2.tgz#a5fd9986f5a6251fbc47e1e5c65de71e68c0a056" + integrity sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ== + dependencies: + detect-libc "^2.0.0" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^3.3.0" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^4.0.0" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -14281,7 +14732,7 @@ raw-body@2.5.2: iconv-lite "0.4.24" unpipe "1.0.0" -rc@^1.2.8: +rc@^1.2.7, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -14346,6 +14797,15 @@ react-csv@^2.2.2: resolved "https://registry.yarnpkg.com/react-csv/-/react-csv-2.2.2.tgz#5bbf0d72a846412221a14880f294da9d6def9bfb" integrity sha512-RG5hOcZKZFigIGE8LxIEV/OgS1vigFQT4EkaHeKgyuCbUAu9Nbd/1RYq++bJcJJ9VOqO/n9TZRADsXNDR4VEpw== +react-data-grid@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/react-data-grid/-/react-data-grid-6.1.0.tgz#04f5a3032fd097c54cd494b000a366d5bad6b39d" + integrity sha512-N1UtiHvsowEPzhx0VPqQKvGgSza/YNljczbisFDGMjawiGApS2taMv7h+EDXDx49CdaA6ur4eYS0z10x63IUpw== + dependencies: + object-assign "^4.1.1" + react-is-deprecated "^0.1.2" + shallowequal "^1.1.0" + react-day-picker@=7.4.10: version "7.4.10" resolved "https://registry.yarnpkg.com/react-day-picker/-/react-day-picker-7.4.10.tgz#d3928fa65c04379ad28c76de22aa85374a8361e1" @@ -14476,6 +14936,11 @@ react-inspector@^6.0.0: resolved "https://registry.yarnpkg.com/react-inspector/-/react-inspector-6.0.1.tgz#1a37f0165d9df81ee804d63259eaaeabe841287d" integrity sha512-cxKSeFTf7jpSSVddm66sKdolG90qURAX3g1roTeaN6x0YEbtWc8JpmFN9+yIqLNH2uEkYerWLtJZIXRIFuBKrg== +react-is-deprecated@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/react-is-deprecated/-/react-is-deprecated-0.1.2.tgz#301148f86ea428fe8e673eca7a372160b7579dbd" + integrity sha512-n3Y04lqbuwMiSywwAKBwW89YxAPuFwS5tYA4L6wDGLQCdSsod1KSfzCIiTTUvS9hPdaB39HdvxjxAaS0Lk4h+A== + react-is@18.1.0: version "18.1.0" resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.1.0.tgz#61aaed3096d30eacf2a2127118b5b41387d32a67" @@ -15368,13 +15833,6 @@ schema-utils@2.7.0: ajv "^6.12.2" ajv-keywords "^3.4.1" -schema-utils@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" - integrity sha512-QaVYBaD9U8scJw2EBWnCBY+LJ0AD+/2edTaigDs0XLDLBfJmSUK9KGqktg1rb32U3z4j/XwvFwHHH1YfbYFd7Q== - dependencies: - ajv "^5.0.0" - schema-utils@^2.6.5: version "2.7.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" @@ -15490,6 +15948,11 @@ serve-static@1.16.2: parseurl "~1.3.3" send "0.19.0" +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + set-function-length@^1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" @@ -15512,6 +15975,11 @@ set-function-name@^2.0.1, set-function-name@^2.0.2: functions-have-names "^1.2.3" has-property-descriptors "^1.0.2" +setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" @@ -15529,6 +15997,11 @@ shallow-clone@^3.0.0: dependencies: kind-of "^6.0.2" +shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -15556,7 +16029,7 @@ side-channel@^1.0.4, side-channel@^1.0.6: get-intrinsic "^1.2.4" object-inspect "^1.13.1" -signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -15566,6 +16039,11 @@ signal-exit@^4.0.1: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.0.2.tgz#ff55bb1d9ff2114c13b400688fa544ac63c36967" integrity sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q== +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + simple-eval@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/simple-eval/-/simple-eval-1.0.0.tgz#7ba8e6049840690b2d4e356ed01f13209e03aad1" @@ -15573,6 +16051,24 @@ simple-eval@1.0.0: dependencies: jsep "^1.1.2" +simple-get@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.1.tgz#cc7ba77cfbe761036fbfce3d021af25fc5584d55" + integrity sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA== + dependencies: + decompress-response "^4.2.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-get@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== + dependencies: + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" + simple-update-notifier@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz#d70b92bdab7d6d90dfd73931195a30b6e3d7cebb" @@ -15754,6 +16250,13 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= +ssf@~0.11.2: + version "0.11.2" + resolved "https://registry.yarnpkg.com/ssf/-/ssf-0.11.2.tgz#0b99698b237548d088fc43cdf2b70c1a7512c06c" + integrity sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g== + dependencies: + frac "~1.1.2" + stable@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" @@ -15863,7 +16366,7 @@ string-natural-compare@^3.0.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -16205,7 +16708,7 @@ tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -tar-fs@^2.1.1: +tar-fs@^2.0.0, tar-fs@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== @@ -16226,7 +16729,7 @@ tar-stream@^2.1.0, tar-stream@^2.1.4, tar-stream@^2.2.0: inherits "^2.0.3" readable-stream "^3.1.1" -tar@^6.1.13: +tar@^6.1.11, tar@^6.1.13: version "6.2.1" resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== @@ -16329,10 +16832,10 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -three@0.137.0: - version "0.137.0" - resolved "https://registry.yarnpkg.com/three/-/three-0.137.0.tgz#0ebd6ba66637a332c31f234bcdd35aeec071a6e3" - integrity sha512-rzSDhia6cU35UCy6y+zEEws6vSgytfHqFMSaBvUcySgzwvDO6vETyswtSNi/+aVqJw8WLMwyT1mlQQ1T/dxxOA== +three@^0.169.0: + version "0.169.0" + resolved "https://registry.yarnpkg.com/three/-/three-0.169.0.tgz#4a62114988ad9728d73526d1f1de6760c56b4adc" + integrity sha512-Ed906MA3dR4TS5riErd4QBsRGPcx+HBDX2O5yYE5GqJeFQTPU+M56Va/f/Oph9X7uZo3W3o4l2ZhBZ6f6qUv0w== throat@^6.0.1: version "6.0.1" @@ -16495,6 +16998,13 @@ tsutils@^3.21.0: dependencies: tslib "^1.8.1" +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -16652,6 +17162,11 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +underscore@^1.13.1: + version "1.13.7" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.7.tgz#970e33963af9a7dda228f17ebe8399e5fbe63a10" + integrity sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g== + undici-types@~5.26.4: version "5.26.5" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" @@ -17388,6 +17903,13 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +wide-align@^1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + widest-line@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" @@ -17395,11 +17917,21 @@ widest-line@^3.1.0: dependencies: string-width "^4.0.0" +wmf@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wmf/-/wmf-1.0.2.tgz#7d19d621071a08c2bdc6b7e688a9c435298cc2da" + integrity sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw== + word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.4" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.4.tgz#cb4b50ec9aca570abd1f52f33cd45b6c61739a9f" integrity sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA== +word@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/word/-/word-0.3.0.tgz#8542157e4f8e849f4a363a288992d47612db9961" + integrity sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA== + wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" @@ -17574,14 +18106,6 @@ workbox-window@6.5.3: "@types/trusted-types" "^2.0.2" workbox-core "6.5.3" -worker-loader@^0.8.0: - version "0.8.1" - resolved "https://registry.yarnpkg.com/worker-loader/-/worker-loader-0.8.1.tgz#e8e995331ea34df5bf68296824bfb7f0ad578d43" - integrity sha512-kEFCTNqlJvwOWCHCJeuOl/X2Np28cTKmY5CIpW/B23N2ndMno5Fswz7x/hvilutKoc4i5eedFf0BJ/3V/KPHaw== - dependencies: - loader-utils "^1.0.2" - schema-utils "^0.3.0" - "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -17668,6 +18192,19 @@ xdg-basedir@^4.0.0: resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== +xlsx@^0.18.5: + version "0.18.5" + resolved "https://registry.yarnpkg.com/xlsx/-/xlsx-0.18.5.tgz#16711b9113c848076b8a177022799ad356eba7d0" + integrity sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ== + dependencies: + adler-32 "~1.3.0" + cfb "~1.2.1" + codepage "~1.15.0" + crc-32 "~1.2.1" + ssf "~0.11.2" + wmf "~1.0.1" + word "~0.3.0" + xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" @@ -17678,6 +18215,11 @@ xml@^1.0.1: resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5" integrity sha1-eLpyAgApxbyHuKgaPPzXS0ovweU= +xmlbuilder@^10.0.0: + version "10.1.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-10.1.1.tgz#8cae6688cc9b38d850b7c8d3c0a4161dcaf475b0" + integrity sha512-OyzrcFLL/nb6fMGHbiRDuPup9ljBycsdCypwuyg5AAHvyWzGfChJpCXMG88AGTIMFhGZ9RccFN1e6lhg3hkwKg== + xmlchars@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" From 0b4c569a8e77e8dd28b49318e42c82ddc24a191e Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Thu, 21 Nov 2024 16:06:56 -0500 Subject: [PATCH 32/44] extra debug step --- .circleci/config.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index f5e6410c3bf..7b147baef38 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -811,6 +811,15 @@ commands: echo "Error: /home/circleci/project/public/static/react-file-viewer not found, the server will not be able to serve frontend dependencies" exit 1 fi + - run: + # Needed for PDF e2e + name: Verify react-file-viewer pdfjs chunk exists + command: | + ls -l /home/circleci/project/public/static/react-file-viewer + if [ ! -f "/home/circleci/project/public/static/react-file-viewer/pdfjs-dist-webpack.chunk.js" ]; then + echo "Error: /home/circleci/project/public/static/react-file-viewer/pdfjs-dist-webpack.chunk.js not found, the server will not be able to serve frontend dependencies" + exit 1 + fi - run: name: setup hosts command: | From 5123c70c2d9d41bb0bb843506b32683eac40a72f Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Fri, 22 Nov 2024 12:26:13 -0500 Subject: [PATCH 33/44] pdfjs debugging --- playwright/tests/office/documentViewer.spec.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/playwright/tests/office/documentViewer.spec.js b/playwright/tests/office/documentViewer.spec.js index 51550c9356e..d2207e89da5 100644 --- a/playwright/tests/office/documentViewer.spec.js +++ b/playwright/tests/office/documentViewer.spec.js @@ -21,6 +21,22 @@ test.describe('The document viewer', () => { test('displays a PDF file correctly', async ({ page, officePage }) => { test.slow(); // flaky no flaky + // Debugging, highly recommend to persist permanently due to the uniqueness of this test + // Log all page requests for the pdfjs-dist webpack chunk + page.on('request', (request) => { + if (request.url().includes('pdfjs-dist-webpack.chunk.js')) { + // eslint-disable-next-line no-console + console.log(`>> Outgoing chunk request: ${request.method()} ${request.url()}`); + } + }); + // Log all page responses for the pdfjs-dist webpack chunk + page.on('response', (response) => { + if (response.url().includes('pdfjs-dist-webpack.chunk.js')) { + // eslint-disable-next-line no-console + console.log(`<< Incoming chunk response: ${response.status()} ${response.url()}`); + } + }); + // Build a move that has a PDF document const move = await officePage.testHarness.buildHHGWithAmendedOrders(); From 63a7611782e46df65e7024983e7a45a93ebf01c2 Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Fri, 22 Nov 2024 13:56:01 -0500 Subject: [PATCH 34/44] debugging --- .circleci/config.yml | 4 ++++ playwright/tests/office/documentViewer.spec.js | 16 ---------------- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 7b147baef38..b22009aa37c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -820,6 +820,10 @@ commands: echo "Error: /home/circleci/project/public/static/react-file-viewer/pdfjs-dist-webpack.chunk.js not found, the server will not be able to serve frontend dependencies" exit 1 fi + - run: + name: Verify small.pdf is in workspace + command: | + ls -l ./pkg/testdatagen/testdata/bandwidth_test_docs/ - run: name: setup hosts command: | diff --git a/playwright/tests/office/documentViewer.spec.js b/playwright/tests/office/documentViewer.spec.js index d2207e89da5..51550c9356e 100644 --- a/playwright/tests/office/documentViewer.spec.js +++ b/playwright/tests/office/documentViewer.spec.js @@ -21,22 +21,6 @@ test.describe('The document viewer', () => { test('displays a PDF file correctly', async ({ page, officePage }) => { test.slow(); // flaky no flaky - // Debugging, highly recommend to persist permanently due to the uniqueness of this test - // Log all page requests for the pdfjs-dist webpack chunk - page.on('request', (request) => { - if (request.url().includes('pdfjs-dist-webpack.chunk.js')) { - // eslint-disable-next-line no-console - console.log(`>> Outgoing chunk request: ${request.method()} ${request.url()}`); - } - }); - // Log all page responses for the pdfjs-dist webpack chunk - page.on('response', (response) => { - if (response.url().includes('pdfjs-dist-webpack.chunk.js')) { - // eslint-disable-next-line no-console - console.log(`<< Incoming chunk response: ${response.status()} ${response.url()}`); - } - }); - // Build a move that has a PDF document const move = await officePage.testHarness.buildHHGWithAmendedOrders(); From d3fee44649d610df5f4eb3eddd56315294772716 Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Mon, 25 Nov 2024 13:45:53 +0000 Subject: [PATCH 35/44] create filestorage env var for circleci playwright --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index b22009aa37c..1b6d767d784 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -846,6 +846,7 @@ commands: export LOGIN_GOV_SECRET_KEY=$(echo $E2E_LOGIN_GOV_SECRET_KEY | base64 --decode) export HERE_MAPS_APP_ID=$E2E_HERE_MAPS_APP_ID export HERE_MAPS_APP_CODE=$E2E_HERE_MAPS_APP_CODE + export LOCAL_STORAGE_WEB_ROOT=storage # pull in review app settings here so we don't have to # reproduce them sed 's,^,export ,' config/env/review.app.env > server_env From b5e8b1ff9a40a0940fd9d8fdf977dfe76f69d521 Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Tue, 26 Nov 2024 21:05:50 +0000 Subject: [PATCH 36/44] local storage mount logs --- pkg/handlers/routing/routing_init.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkg/handlers/routing/routing_init.go b/pkg/handlers/routing/routing_init.go index 223b54e4122..e369cec51ac 100644 --- a/pkg/handlers/routing/routing_init.go +++ b/pkg/handlers/routing/routing_init.go @@ -222,6 +222,11 @@ func mountHealthRoute(appCtx appcontext.AppContext, redisPool *redis.Pool, } func mountLocalStorageRoute(appCtx appcontext.AppContext, routingConfig *Config, site chi.Router) { + appCtx.Logger().Info("Mounting local storage route", + zap.String("LocalStorageRoot", routingConfig.LocalStorageRoot), + zap.String("LocalStorageWebRoot", routingConfig.LocalStorageWebRoot), + ) + if routingConfig.LocalStorageRoot != "" && routingConfig.LocalStorageWebRoot != "" { localStorageHandlerFunc := storage.NewFilesystemHandler( routingConfig.FileSystem, routingConfig.LocalStorageRoot) From 96187d5d15d141e9fe4356d082840001dc19b81a Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Tue, 26 Nov 2024 16:38:19 -0500 Subject: [PATCH 37/44] local storage override --- .circleci/config.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1b6d767d784..166a4380670 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -847,6 +847,8 @@ commands: export HERE_MAPS_APP_ID=$E2E_HERE_MAPS_APP_ID export HERE_MAPS_APP_CODE=$E2E_HERE_MAPS_APP_CODE export LOCAL_STORAGE_WEB_ROOT=storage + # override local_storage_root to be tmp, not /tmp + export LOCAL_STORAGE_ROOT=tmp # pull in review app settings here so we don't have to # reproduce them sed 's,^,export ,' config/env/review.app.env > server_env From bc6426d53fb98d37d515c25dfbc793b35ec1afbf Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Wed, 27 Nov 2024 08:10:59 -0500 Subject: [PATCH 38/44] try new env location --- .circleci/config.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 166a4380670..63089f69696 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -838,6 +838,7 @@ commands: environment: MIGRATION_MANIFEST: '/home/circleci/project/migrations/app/migrations_manifest.txt' MIGRATION_PATH: 'file:///home/circleci/project/migrations/app/schema;file:///home/circleci/project/migrations/app/secure' + LOCAL_STORAGE_ROOT: 'tmp' command: | export MOVE_MIL_DOD_CA_CERT=$(cat config/tls/devlocal-ca.pem) export MOVE_MIL_DOD_TLS_CERT=$(cat config/tls/devlocal-https.pem) @@ -847,8 +848,6 @@ commands: export HERE_MAPS_APP_ID=$E2E_HERE_MAPS_APP_ID export HERE_MAPS_APP_CODE=$E2E_HERE_MAPS_APP_CODE export LOCAL_STORAGE_WEB_ROOT=storage - # override local_storage_root to be tmp, not /tmp - export LOCAL_STORAGE_ROOT=tmp # pull in review app settings here so we don't have to # reproduce them sed 's,^,export ,' config/env/review.app.env > server_env From 1384a604d16ca9993278d7abb161a8ba6ad47a7d Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Wed, 27 Nov 2024 08:32:40 -0500 Subject: [PATCH 39/44] that should do it... --- .circleci/config.yml | 1 - config/env/review.app.env | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 63089f69696..1b6d767d784 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -838,7 +838,6 @@ commands: environment: MIGRATION_MANIFEST: '/home/circleci/project/migrations/app/migrations_manifest.txt' MIGRATION_PATH: 'file:///home/circleci/project/migrations/app/schema;file:///home/circleci/project/migrations/app/secure' - LOCAL_STORAGE_ROOT: 'tmp' command: | export MOVE_MIL_DOD_CA_CERT=$(cat config/tls/devlocal-ca.pem) export MOVE_MIL_DOD_TLS_CERT=$(cat config/tls/devlocal-https.pem) diff --git a/config/env/review.app.env b/config/env/review.app.env index 0e87bb2b912..bbcb2ede7d5 100644 --- a/config/env/review.app.env +++ b/config/env/review.app.env @@ -14,7 +14,7 @@ EIA_KEY=db2522a43820268a41a802a16ae9fd26 ENVIRONMENT=review AWS_CF_DOMAIN=assets.devlocal.move.mil IWS_RBS_ENABLED=1 -LOCAL_STORAGE_ROOT=/tmp +LOCAL_STORAGE_ROOT=tmp LOCAL_STORAGE_WEB_ROOT=storage LOGIN_GOV_CALLBACK_PORT=443 MUTUAL_TLS_ENABLED=0 From d3a77d5aaa47848d6e043f0d0dacbeb85436af88 Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Mon, 2 Dec 2024 17:30:24 +0000 Subject: [PATCH 40/44] deploy v2 main to exp --- .circleci/config.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1b6d767d784..8895f38cfa8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -40,30 +40,30 @@ references: # In addition, it's common practice to disable acceptance tests and # ignore tests for dp3 deploys. See the branch settings below. - dp3-branch: &dp3-branch placeholder_branch_name + dp3-branch: &dp3-branch b-21230-resolve-canvas-dependency-v2-main # MUST BE ONE OF: loadtest, demo, exp. # These are used to pull in env vars so the spelling matters! - dp3-env: &dp3-env placeholder_env + dp3-env: &dp3-env exp # set integration-ignore-branch to the branch if you want to IGNORE # integration tests, or `placeholder_branch_name` if you do want to # run them - integration-ignore-branch: &integration-ignore-branch placeholder_branch_name + integration-ignore-branch: &integration-ignore-branch b-21230-resolve-canvas-dependency-v2-main # set integration-mtls-ignore-branch to the branch if you want to # IGNORE mtls integration tests, or `placeholder_branch_name` if you # do want to run them - integration-mtls-ignore-branch: &integration-mtls-ignore-branch placeholder_branch_name + integration-mtls-ignore-branch: &integration-mtls-ignore-branch b-21230-resolve-canvas-dependency-v2-main # set client-ignore-branch to the branch if you want to IGNORE # client tests, or `placeholder_branch_name` if you do want to run # them - client-ignore-branch: &client-ignore-branch placeholder_branch_name + client-ignore-branch: &client-ignore-branch b-21230-resolve-canvas-dependency-v2-main # set server-ignore-branch to the branch if you want to IGNORE # server tests, or `placeholder_branch_name` if you do want to run # them - server-ignore-branch: &server-ignore-branch placeholder_branch_name + server-ignore-branch: &server-ignore-branch b-21230-resolve-canvas-dependency-v2-main executors: base_small: From 5b0b9513a1a2d009a7108ba5dca5325f012c6552 Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Mon, 2 Dec 2024 13:33:51 -0600 Subject: [PATCH 41/44] Revert "deploy v2 main to exp" This reverts commit d3a77d5aaa47848d6e043f0d0dacbeb85436af88. --- .circleci/config.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 8895f38cfa8..1b6d767d784 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -40,30 +40,30 @@ references: # In addition, it's common practice to disable acceptance tests and # ignore tests for dp3 deploys. See the branch settings below. - dp3-branch: &dp3-branch b-21230-resolve-canvas-dependency-v2-main + dp3-branch: &dp3-branch placeholder_branch_name # MUST BE ONE OF: loadtest, demo, exp. # These are used to pull in env vars so the spelling matters! - dp3-env: &dp3-env exp + dp3-env: &dp3-env placeholder_env # set integration-ignore-branch to the branch if you want to IGNORE # integration tests, or `placeholder_branch_name` if you do want to # run them - integration-ignore-branch: &integration-ignore-branch b-21230-resolve-canvas-dependency-v2-main + integration-ignore-branch: &integration-ignore-branch placeholder_branch_name # set integration-mtls-ignore-branch to the branch if you want to # IGNORE mtls integration tests, or `placeholder_branch_name` if you # do want to run them - integration-mtls-ignore-branch: &integration-mtls-ignore-branch b-21230-resolve-canvas-dependency-v2-main + integration-mtls-ignore-branch: &integration-mtls-ignore-branch placeholder_branch_name # set client-ignore-branch to the branch if you want to IGNORE # client tests, or `placeholder_branch_name` if you do want to run # them - client-ignore-branch: &client-ignore-branch b-21230-resolve-canvas-dependency-v2-main + client-ignore-branch: &client-ignore-branch placeholder_branch_name # set server-ignore-branch to the branch if you want to IGNORE # server tests, or `placeholder_branch_name` if you do want to run # them - server-ignore-branch: &server-ignore-branch b-21230-resolve-canvas-dependency-v2-main + server-ignore-branch: &server-ignore-branch placeholder_branch_name executors: base_small: From 7faf599afa66603097775ab0b123225f773af4bd Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Fri, 6 Dec 2024 15:54:38 -0500 Subject: [PATCH 42/44] add canvas binary build step to happo --- .github/workflows/happo-tests.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/happo-tests.yml b/.github/workflows/happo-tests.yml index 19fc017e30d..574ce9ba248 100644 --- a/.github/workflows/happo-tests.yml +++ b/.github/workflows/happo-tests.yml @@ -40,6 +40,13 @@ jobs: - name: Install dependencies run: yarn install --frozen-lockfile + # Rebuild the "canvas" dependency, when you yarn install canvas it doesn't come with a prebuilt binary + # this means we gotta build the binary itself before we yarn install. + # Expect this to be a required step until they release https://github.com/Automattic/node-canvas/releases/tag/v3.0.0-rc2 + - name: Rebuild dependencies without binaries + run: | + ./scripts/rebuild-dependencies-without-binaries + - name: Start Happo run run: yarn happo-ci-github-actions env: From f939c562b3905d1e22328876800db2c7f310aa5c Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Fri, 6 Dec 2024 15:56:30 -0500 Subject: [PATCH 43/44] add canvas rebuild step to main happo --- .github/workflows/happo-tests-main.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/happo-tests-main.yml b/.github/workflows/happo-tests-main.yml index 32392a7006c..bf971c5d5d9 100644 --- a/.github/workflows/happo-tests-main.yml +++ b/.github/workflows/happo-tests-main.yml @@ -20,6 +20,13 @@ jobs: - name: Install dependencies run: yarn install --frozen-lockfile + # Rebuild the "canvas" dependency, when you yarn install canvas it doesn't come with a prebuilt binary + # this means we gotta build the binary itself before we yarn install. + # Expect this to be a required step until they release https://github.com/Automattic/node-canvas/releases/tag/v3.0.0-rc2 + - name: Rebuild dependencies without binaries + run: | + ./scripts/rebuild-dependencies-without-binaries + - name: Start Happo run run: yarn happo-ci-github-actions env: From 4d5b74df83c757d711dc145776478bcf00d6e683 Mon Sep 17 00:00:00 2001 From: cameroncaci Date: Mon, 2 Dec 2024 17:55:19 +0000 Subject: [PATCH 44/44] fix flaky timeout --- src/pages/MyMove/AddOrders.test.jsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/pages/MyMove/AddOrders.test.jsx b/src/pages/MyMove/AddOrders.test.jsx index 8ab6c8a902c..13e44f53af7 100644 --- a/src/pages/MyMove/AddOrders.test.jsx +++ b/src/pages/MyMove/AddOrders.test.jsx @@ -12,6 +12,9 @@ import { selectCanAddOrders, selectServiceMemberFromLoggedInUser } from 'store/e import { setCanAddOrders, setMoveId } from 'store/general/actions'; import { ORDERS_TYPE } from 'constants/orders'; +// Tests are timing out. High assumption it is due to service counseling office drop-down choice not being loaded on initial form load. It's another API call +jest.setTimeout(60000); + jest.mock('services/internalApi', () => ({ ...jest.requireActual('services/internalApi'), getServiceMember: jest.fn().mockImplementation(() => Promise.resolve()),