diff --git a/app/src/app/app.config.ts b/app/src/app/app.config.ts index d54870d1c..26ebbbd04 100644 --- a/app/src/app/app.config.ts +++ b/app/src/app/app.config.ts @@ -25,6 +25,7 @@ import { importProvidersFrom, ApplicationConfig } from '@angular/core'; import { provideNoopAnimations, provideAnimations } from '@angular/platform-browser/animations'; import { AuthGuard, provideAppConfig, provideCoreAuth, provideI18N } from '@alfresco/adf-core'; +import { providePdfViewer } from '@alfresco/adf-core/viewer/pdf'; import { AppService, provideContentAppExtensions } from '@alfresco/aca-shared'; import { provideApplicationExtensions } from './extensions.module'; import { environment } from '../environments/environment'; @@ -73,6 +74,7 @@ export const AppConfig: ApplicationConfig = { providers: [ provideCoreAuth({ useHash: true }), provideAppConfig(), + providePdfViewer(), importProvidersFrom(ContentServiceExtensionModule), provideI18N({ assets: [['app', 'assets']] diff --git a/e2e/playwright/info-drawer/src/tests/file-preview.e2e.ts b/e2e/playwright/info-drawer/src/tests/file-preview.e2e.ts index 98f893e63..3378fdd47 100755 --- a/e2e/playwright/info-drawer/src/tests/file-preview.e2e.ts +++ b/e2e/playwright/info-drawer/src/tests/file-preview.e2e.ts @@ -61,6 +61,8 @@ test.describe('File preview', () => { await Utils.reloadPageIfRowNotVisible(personalFiles, fileName); await personalFiles.dataTable.getRowByName(fileName).click(); await personalFiles.acaHeader.viewButton.click(); + await personalFiles.viewer.waitForViewerToOpen(); + await personalFiles.viewer.waitForViewerContentToRender('document'); await expect(personalFiles.viewer.pdfViewerContentPages.first()).toBeVisible(); expect(await personalFiles.viewer.viewerDocument.textContent()).toContain('PDF'); }); diff --git a/e2e/playwright/upload-download-actions/src/tests/upload-new-version.e2e.ts b/e2e/playwright/upload-download-actions/src/tests/upload-new-version.e2e.ts index db62e2726..743f5406a 100755 --- a/e2e/playwright/upload-download-actions/src/tests/upload-new-version.e2e.ts +++ b/e2e/playwright/upload-download-actions/src/tests/upload-new-version.e2e.ts @@ -36,7 +36,7 @@ import { } from '@alfresco/aca-playwright-shared'; test.describe('Upload new version', () => { - const username = `user-${Utils.random()}`; + const username = `user-${Date.now()}-${Utils.random()}`; const file1 = `file1-${Utils.random()}.docx`; let file1Id: string; diff --git a/e2e/playwright/upload-download-actions/src/tests/upload.e2e.ts b/e2e/playwright/upload-download-actions/src/tests/upload.e2e.ts index 6b2cd8aa8..df37fdc32 100644 --- a/e2e/playwright/upload-download-actions/src/tests/upload.e2e.ts +++ b/e2e/playwright/upload-download-actions/src/tests/upload.e2e.ts @@ -30,7 +30,7 @@ test.describe('Upload files', () => { let nodesApi: NodesApi; const random = Utils.random(); - const username = `user-${random}`; + const username = `user-${Date.now()}-${random}`; const folder1 = `folder1-${Utils.random()}`; test.beforeAll(async () => { diff --git a/e2e/playwright/viewer/exclude.tests.json b/e2e/playwright/viewer/exclude.tests.json index a60bcab74..9b8393224 100644 --- a/e2e/playwright/viewer/exclude.tests.json +++ b/e2e/playwright/viewer/exclude.tests.json @@ -1,5 +1,7 @@ { - "all": {}, + "all": { + "XAT-19377": "https://hyland.atlassian.net/browse/ACS-11868" + }, "firefox": { "XAT-17177": "https://hyland.atlassian.net/browse/ACS-10917", "XAT-17178": "https://hyland.atlassian.net/browse/ACS-10917", diff --git a/e2e/playwright/viewer/src/tests/viewer-file-types.e2e.ts b/e2e/playwright/viewer/src/tests/viewer-file-types.e2e.ts index 4575504f9..e44516a59 100644 --- a/e2e/playwright/viewer/src/tests/viewer-file-types.e2e.ts +++ b/e2e/playwright/viewer/src/tests/viewer-file-types.e2e.ts @@ -127,7 +127,13 @@ test.describe('viewer file types', () => { throw new Error(errorMessage); } - await expect(viewerElement).toBeVisible(); + let renderType: 'image' | 'media' | 'document' = 'document'; + if (fileType === 'viewerImage') { + renderType = 'image'; + } else if (fileType === 'viewerMedia') { + renderType = 'media'; + } + await page.viewer.waitForViewerContentToRender(renderType); } async function checkViewerDisplayUnknownFormat(page: PersonalFilesPage, fileName: string) { @@ -178,6 +184,7 @@ test.describe('viewer file types', () => { test('[XAT-5485] User can select a document page through the thumbnail pane', async ({ personalFiles }) => { await personalFiles.dataTable.performClickFolderOrFileToOpen(randomPdfName); expect(await personalFiles.viewer.isViewerOpened(), 'Viewer is not opened').toBe(true); + await personalFiles.viewer.waitForViewerContentToRender('document'); await personalFiles.viewer.documentThumbnailButton.click(); await expect(personalFiles.viewer.thumbnailsPages.first()).toBeVisible(); await personalFiles.viewer.checkViewerActivePage(1); @@ -188,6 +195,7 @@ test.describe('viewer file types', () => { test('[XAT-5486] User can close the thumbnail pane', async ({ personalFiles }) => { await personalFiles.dataTable.performClickFolderOrFileToOpen(randomPdfName); expect(await personalFiles.viewer.isViewerOpened(), 'Viewer is not opened').toBe(true); + await personalFiles.viewer.waitForViewerContentToRender('document'); await personalFiles.viewer.documentThumbnailButton.click(); await expect(personalFiles.viewer.thumbnailsPages.first()).toBeVisible(); await personalFiles.viewer.thumbnailsCloseButton.click(); diff --git a/e2e/playwright/viewer/src/tests/viewer-version-actions.e2e.ts b/e2e/playwright/viewer/src/tests/viewer-version-actions.e2e.ts index 25953fbd4..bab9160e8 100644 --- a/e2e/playwright/viewer/src/tests/viewer-version-actions.e2e.ts +++ b/e2e/playwright/viewer/src/tests/viewer-version-actions.e2e.ts @@ -84,7 +84,7 @@ test.describe('Version actions', () => { await sharedLinksApi.shareFilesByIds([fileId]); await sharedLinksApi.waitForFilesToBeShared([fileId]); } catch (error) { - console.error(`beforeAll failed: ${error}`); + throw new Error(`beforeAll failed: ${error}`); } }); @@ -107,6 +107,7 @@ test.describe('Version actions', () => { personalFiles }) => { await personalFiles.viewer.waitForViewerToOpen(); + await personalFiles.viewer.waitForViewerContentToRender('document'); expect(await personalFiles.viewer.getFileTitle()).toContain(filenameBeforeUpdate); }); @@ -138,6 +139,7 @@ test.describe('Version actions', () => { test('[XAT-5499] Should be possible to view a previous document version - Recent Files', async ({ recentFilesPage }) => { expect(recentFilesPage.page.url()).toContain('1.0'); await recentFilesPage.viewer.waitForViewerToOpen(); + await recentFilesPage.viewer.waitForViewerContentToRender('document'); await expect(recentFilesPage.viewer.unknownFormat).toBeHidden(); expect(await recentFilesPage.viewer.getFileTitle()).toContain(filenameBeforeUpdate); }); @@ -146,6 +148,7 @@ test.describe('Version actions', () => { recentFilesPage }) => { await recentFilesPage.viewer.waitForViewerToOpen(); + await recentFilesPage.viewer.waitForViewerContentToRender('document'); expect(await recentFilesPage.viewer.getFileTitle()).toContain(filenameBeforeUpdate); }); @@ -170,6 +173,7 @@ test.describe('Version actions', () => { favoritePage }) => { await favoritePage.viewer.waitForViewerToOpen(); + await favoritePage.viewer.waitForViewerContentToRender('document'); expect(await favoritePage.viewer.getFileTitle()).toContain(filenameBeforeUpdate); }); @@ -194,6 +198,7 @@ test.describe('Version actions', () => { sharedPage }) => { await sharedPage.viewer.waitForViewerLoaderToFinish(); + await sharedPage.viewer.waitForViewerContentToRender('document'); expect(await sharedPage.viewer.getFileTitle()).toContain(filenameBeforeUpdate); }); @@ -218,6 +223,7 @@ test.describe('Version actions', () => { searchPage }) => { await searchPage.viewer.waitForViewerToOpen(); + await searchPage.viewer.waitForViewerContentToRender('document'); expect(await searchPage.viewer.getFileTitle()).toContain(filenameBeforeUpdate); }); diff --git a/e2e/playwright/viewer/src/tests/viewer-zoom-functionality.e2e.ts b/e2e/playwright/viewer/src/tests/viewer-zoom-functionality.e2e.ts index a00317888..4080f71b6 100644 --- a/e2e/playwright/viewer/src/tests/viewer-zoom-functionality.e2e.ts +++ b/e2e/playwright/viewer/src/tests/viewer-zoom-functionality.e2e.ts @@ -178,6 +178,7 @@ test.describe('viewer zoom functionality and reset', () => { await favoritePage.navigate(); await favoritePage.dataTable.performClickFolderOrFileToOpen(randomPdfName); expect(await favoritePage.viewer.isViewerOpened(), 'Viewer is not opened').toBe(true); + await favoritePage.viewer.waitForViewerContentToRender('document'); await favoritePage.viewer.waitForZoomPercentageToDisplay(); await validateZoomScaleInViewer(favoritePage); }); @@ -188,6 +189,7 @@ test.describe('viewer zoom functionality and reset', () => { await myLibrariesPage.dataTable.performClickFolderOrFileToOpen(randomDocxName); await myLibrariesPage.viewer.waitForViewerLoaderToFinish(); expect(await myLibrariesPage.viewer.isViewerOpened(), 'Viewer is not opened').toBe(true); + await myLibrariesPage.viewer.waitForViewerContentToRender('document'); await myLibrariesPage.viewer.waitForZoomPercentageToDisplay(); await validateZoomScaleInViewer(myLibrariesPage); }); @@ -216,6 +218,7 @@ test.describe('viewer zoom functionality and reset', () => { await favoritePage.navigate(); await favoritePage.dataTable.performClickFolderOrFileToOpen(randomPdfName); expect(await favoritePage.viewer.isViewerOpened(), 'Viewer is not opened').toBe(true); + await favoritePage.viewer.waitForViewerContentToRender('document'); await favoritePage.viewer.waitForZoomPercentageToDisplay(); await validateFitToPageButtonActivity(favoritePage); }); @@ -225,6 +228,7 @@ test.describe('viewer zoom functionality and reset', () => { await myLibrariesPage.dataTable.performClickFolderOrFileToOpen(randomLibraryName); await myLibrariesPage.dataTable.performClickFolderOrFileToOpen(randomDocxName); await myLibrariesPage.viewer.waitForViewerToOpen(); + await myLibrariesPage.viewer.waitForViewerContentToRender('document'); await myLibrariesPage.viewer.waitForZoomPercentageToDisplay(); await validateFitToPageButtonActivity(myLibrariesPage); }); diff --git a/package-lock.json b/package-lock.json index 8a9667686..71b0eea67 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,11 +9,11 @@ "version": "7.5.0", "license": "LGPL-3.0", "dependencies": { - "@alfresco/adf-content-services": "8.6.0-25384976868", - "@alfresco/adf-core": "8.6.0-25384976868", - "@alfresco/adf-extensions": "8.6.0-25384976868", - "@alfresco/eslint-plugin-eslint-angular": "8.6.0-25384976868", - "@alfresco/js-api": "9.6.0-25384976868", + "@alfresco/adf-content-services": "8.6.0-26272920976", + "@alfresco/adf-core": "8.6.0-26272920976", + "@alfresco/adf-extensions": "8.6.0-26272920976", + "@alfresco/eslint-plugin-eslint-angular": "8.6.0-26272920976", + "@alfresco/js-api": "9.6.0-26272920976", "@angular/animations": "19.2.20", "@angular/cdk": "19.2.19", "@angular/common": "19.2.20", @@ -46,7 +46,7 @@ "zone.js": "0.15.0" }, "devDependencies": { - "@alfresco/adf-cli": "8.6.0-25384976868", + "@alfresco/adf-cli": "8.6.0-26272920976", "@angular-devkit/build-angular": "19.2.22", "@angular-devkit/core": "19.2.20", "@angular-devkit/schematics": "19.2.20", @@ -103,15 +103,14 @@ } }, "node_modules/@alfresco/adf-cli": { - "version": "8.6.0-25384976868", - "resolved": "https://registry.npmjs.org/@alfresco/adf-cli/-/adf-cli-8.6.0-25384976868.tgz", - "integrity": "sha512-WKLDX+mv4myCIffRd2gLD0WaA/V3uZyZjIGlCp8uriUKRBf368iIhXWfvEZjFX2PPGF9VU2YiCOk0Mxh0D4iog==", + "version": "8.6.0-26272920976", + "resolved": "https://registry.npmjs.org/@alfresco/adf-cli/-/adf-cli-8.6.0-26272920976.tgz", + "integrity": "sha512-w0UNH+ChfJL26ROw/huXsIabsrJcdZ18VsiauCBzZv6yFdPuWfAag98uJ/rqVh7E6xCrjmv2Me2AQENktvgFFw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@alfresco/js-api": ">=9.6.0-25384976868", + "@alfresco/js-api": ">=9.6.0-26272920976", "ejs": "^3.1.10", - "license-checker": "^25.0.1", "node-fetch": "^2.7.0", "spdx-license-list": "^5.0.0" }, @@ -121,16 +120,16 @@ } }, "node_modules/@alfresco/adf-content-services": { - "version": "8.6.0-25384976868", - "resolved": "https://registry.npmjs.org/@alfresco/adf-content-services/-/adf-content-services-8.6.0-25384976868.tgz", - "integrity": "sha512-vpQcBidyYiDIAa82DZV6seIyo066bmHN3dvmnn+D0clTy2KqV07En2rPwtp4GM/uKYpE6ATunsFZUeW8znea3Q==", + "version": "8.6.0-26272920976", + "resolved": "https://registry.npmjs.org/@alfresco/adf-content-services/-/adf-content-services-8.6.0-26272920976.tgz", + "integrity": "sha512-PGgDbctZhkKrNWyNmUVwAs7Ex9TF8CXvvGAl++KJRoDy9ybVATr/S9bYWgTIWPpQ+5uOjrsWrxd0IQ/Gwz74kg==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@alfresco/adf-core": ">=8.6.0-25384976868", - "@alfresco/js-api": ">=9.6.0-25384976868", + "@alfresco/adf-core": ">=8.6.0-26272920976", + "@alfresco/js-api": ">=9.6.0-26272920976", "@angular/animations": ">=14.1.3", "@angular/cdk": ">=14.1.2", "@angular/common": ">=14.1.3", @@ -145,22 +144,20 @@ } }, "node_modules/@alfresco/adf-core": { - "version": "8.6.0-25384976868", - "resolved": "https://registry.npmjs.org/@alfresco/adf-core/-/adf-core-8.6.0-25384976868.tgz", - "integrity": "sha512-xs2oaaCNCTie1wBoRZSUNtl9yyom3AKANjeBkKplziC91ULHTgQdnNHXRItzC9wrBGy/L+k0tEoLp+4bS8YbNQ==", + "version": "8.6.0-26272920976", + "resolved": "https://registry.npmjs.org/@alfresco/adf-core/-/adf-core-8.6.0-26272920976.tgz", + "integrity": "sha512-GWjcyJY44IUlSZzpFImOsOZ/iDIsg10eWrXGkVC8HiJ8fMoQGQToqy3NrcTWD5jrr8qydjVH0kg9HMl4Gswziw==", "license": "Apache-2.0", "peer": true, "dependencies": { - "angular-oauth2-oidc": "17.0.2", - "angular-oauth2-oidc-jwks": "17.0.2", + "angular-oauth2-oidc": "19.0.0", "cropperjs": "^1.6.2", "date-fns": "^2.30.0", - "rxjs": "7.8.2", "tslib": "^2.3.0" }, "peerDependencies": { - "@alfresco/adf-extensions": ">=8.6.0-25384976868", - "@alfresco/js-api": ">=9.6.0-25384976868", + "@alfresco/adf-extensions": ">=8.6.0-26272920976", + "@alfresco/js-api": ">=9.6.0-26272920976", "@angular/animations": ">=16.0.0", "@angular/cdk": ">=16.0.0", "@angular/common": ">=16.0.0", @@ -173,7 +170,13 @@ "@mat-datetimepicker/core": ">=12.0.1", "@ngx-translate/core": ">=17.0.0", "minimatch": ">=10.0.0", - "pdfjs-dist": ">=3.3.122" + "pdfjs-dist": ">=3.3.122", + "rxjs": ">=7.8.0" + }, + "peerDependenciesMeta": { + "pdfjs-dist": { + "optional": true + } } }, "node_modules/@alfresco/adf-core/node_modules/date-fns": { @@ -193,35 +196,34 @@ } }, "node_modules/@alfresco/adf-extensions": { - "version": "8.6.0-25384976868", - "resolved": "https://registry.npmjs.org/@alfresco/adf-extensions/-/adf-extensions-8.6.0-25384976868.tgz", - "integrity": "sha512-Rt4quAWqyBPIKRJYjaGIezUTSRsQTe4Kp57mKGssTCi/kVTWYns+6ZQ6JVeMhjAgfygYP6sVrDMLgVvheQkc+g==", + "version": "8.6.0-26272920976", + "resolved": "https://registry.npmjs.org/@alfresco/adf-extensions/-/adf-extensions-8.6.0-26272920976.tgz", + "integrity": "sha512-WP7I+PyXSSmRfqUpcac27HmZ/ri0HbDbmKS8cCm2aWb6BudOTUis5jkV1jbMutvqiLd3RVBkZm/z0IYBfwLPpg==", "license": "Apache-2.0", "peer": true, "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@alfresco/js-api": ">=9.6.0-25384976868", + "@alfresco/js-api": ">=9.6.0-26272920976", "@angular/common": ">=14.1.3", "@angular/core": ">=14.1.3" } }, "node_modules/@alfresco/eslint-plugin-eslint-angular": { - "version": "8.6.0-25384976868", - "resolved": "https://registry.npmjs.org/@alfresco/eslint-plugin-eslint-angular/-/eslint-plugin-eslint-angular-8.6.0-25384976868.tgz", - "integrity": "sha512-pxnw0ZBGPae4z+ApF9LaeKzELmmiOCS6ze+jBwGZKpdsW/pc5DprGjuR0iOB/fsuCr4kOsCiBnBONbzs/bdGaA==", + "version": "8.6.0-26272920976", + "resolved": "https://registry.npmjs.org/@alfresco/eslint-plugin-eslint-angular/-/eslint-plugin-eslint-angular-8.6.0-26272920976.tgz", + "integrity": "sha512-963ys0OOaletWky3cpnSh1tWTSg2fLxHtYxCETasMw8cwvopcrH4jIzKEZqfxBmZ20Oc6Tog4Yo4XZbhHwOGvg==", "license": "Apache-2.0" }, "node_modules/@alfresco/js-api": { - "version": "9.6.0-25384976868", - "resolved": "https://registry.npmjs.org/@alfresco/js-api/-/js-api-9.6.0-25384976868.tgz", - "integrity": "sha512-QT2Ca/GxMnyJ5mdeGhi3XQD8SQ9kjk4JZ1dP94fSuXos97AjpaQInpLD272KOObFMBWDl0aqM4ZSHxn3XusnwQ==", + "version": "9.6.0-26272920976", + "resolved": "https://registry.npmjs.org/@alfresco/js-api/-/js-api-9.6.0-26272920976.tgz", + "integrity": "sha512-8pSuUGPFpHZM5qNH9z/Si9y4rEb9swoMrySi8obvsZa7JBHZn/rzfcTNX/bjvcHMd8QQp0kK8SAfkDvlMHPFtA==", "license": "Apache-2.0", "peer": true, "dependencies": { "eventemitter3": "^5.0.1", - "superagent": "^9.0.1", "tslib": "^2.6.1" } }, @@ -6689,18 +6691,6 @@ "@angular/core": ">=16" } }, - "node_modules/@noble/hashes": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", - "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", - "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -7958,15 +7948,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@paralleldrive/cuid2": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.3.1.tgz", - "integrity": "sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==", - "license": "MIT", - "dependencies": { - "@noble/hashes": "^1.1.5" - } - }, "node_modules/@parcel/watcher": { "version": "2.5.6", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz", @@ -11190,13 +11171,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true, - "license": "ISC" - }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -11379,26 +11353,16 @@ } }, "node_modules/angular-oauth2-oidc": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/angular-oauth2-oidc/-/angular-oauth2-oidc-17.0.2.tgz", - "integrity": "sha512-zYgeLmAnu1g8XAYZK+csAsCQBDhgp9ffBv/eArEnujGxNPTeK00bREHWObtehflpQdSn+k9rY2D15ChCSydyVw==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/angular-oauth2-oidc/-/angular-oauth2-oidc-19.0.0.tgz", + "integrity": "sha512-EogHyF7MpCJSjSKIyVmdB8pJu7dU5Ilj9VNVSnFbLng4F77PIlaE4egwKUlUvk0i4ZvmO9rLXNQCm05R7Tyhcw==", "license": "MIT", "dependencies": { "tslib": "^2.5.2" }, "peerDependencies": { - "@angular/common": ">=14.0.0", - "@angular/core": ">=14.0.0" - } - }, - "node_modules/angular-oauth2-oidc-jwks": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/angular-oauth2-oidc-jwks/-/angular-oauth2-oidc-jwks-17.0.2.tgz", - "integrity": "sha512-zG0udq9VihQdCKfGjhUfrIg35TbxU34tGfOG/pddxKwJkodMAFI34cNoZoVyZ53hPgeZSDPra2rYyixkH7bkKw==", - "license": "MIT", - "dependencies": { - "jsrsasign": "^11.0.0", - "tslib": "^2.5.2" + "@angular/common": ">=19.0.0", + "@angular/core": ">=19.0.0" } }, "node_modules/ansi-colors": { @@ -11544,16 +11508,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -11693,12 +11647,6 @@ "node": ">=0.10.0" } }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "license": "MIT" - }, "node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -11730,6 +11678,7 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, "license": "MIT" }, "node_modules/at-least-node": { @@ -12347,6 +12296,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -12360,6 +12310,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", @@ -12805,6 +12756,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" @@ -12871,15 +12823,6 @@ "dev": true, "license": "MIT" }, - "node_modules/component-emitter": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", - "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", @@ -13090,12 +13033,6 @@ "dev": true, "license": "MIT" }, - "node_modules/cookiejar": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", - "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", - "license": "MIT" - }, "node_modules/cookies": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz", @@ -14346,6 +14283,7 @@ "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -14359,17 +14297,6 @@ } } }, - "node_modules/debuglog": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, "node_modules/decamelize": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", @@ -14549,6 +14476,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.4.0" @@ -14635,16 +14563,6 @@ "node": ">= 4.0.0" } }, - "node_modules/dezalgo": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", - "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", - "license": "ISC", - "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, "node_modules/di": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", @@ -14815,6 +14733,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", @@ -15163,6 +15082,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -15172,6 +15092,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -15188,6 +15109,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0" @@ -15200,6 +15122,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -16372,12 +16295,6 @@ "dev": true, "license": "MIT" }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "license": "MIT" - }, "node_modules/fast-uri": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", @@ -16923,6 +16840,7 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "dev": true, "license": "MIT", "dependencies": { "asynckit": "^0.4.0", @@ -16935,23 +16853,6 @@ "node": ">= 6" } }, - "node_modules/formidable": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.4.tgz", - "integrity": "sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug==", - "license": "MIT", - "dependencies": { - "@paralleldrive/cuid2": "^2.2.2", - "dezalgo": "^1.0.4", - "once": "^1.4.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "url": "https://ko-fi.com/tunnckoCore/commissions" - } - }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -17076,6 +16977,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -17169,6 +17071,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", @@ -17193,6 +17096,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", @@ -17435,6 +17339,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -17552,6 +17457,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -17564,6 +17470,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" @@ -17579,6 +17486,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -19233,12 +19141,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/jsrsasign": { - "version": "11.1.3", - "resolved": "https://registry.npmjs.org/jsrsasign/-/jsrsasign-11.1.3.tgz", - "integrity": "sha512-nPnK5D/4lv0Dwr7TlzrKtAd8JlLZwFTqTUUB3NQCbtdobcRcohGFxjbPySDVh74iWUudcCsapYT6OxoyhJLhhA==", - "license": "MIT" - }, "node_modules/karma": { "version": "6.4.4", "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.4.tgz", @@ -20073,137 +19975,6 @@ "node": ">= 0.8.0" } }, - "node_modules/license-checker": { - "version": "25.0.1", - "resolved": "https://registry.npmjs.org/license-checker/-/license-checker-25.0.1.tgz", - "integrity": "sha512-mET5AIwl7MR2IAKYYoVBBpV0OnkKQ1xGj2IMMeEFIs42QAkEVjRtFZGWmQ28WeU7MP779iAgOaOy93Mn44mn6g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "chalk": "^2.4.1", - "debug": "^3.1.0", - "mkdirp": "^0.5.1", - "nopt": "^4.0.1", - "read-installed": "~4.0.3", - "semver": "^5.5.0", - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0", - "spdx-satisfies": "^4.0.0", - "treeify": "^1.1.0" - }, - "bin": { - "license-checker": "bin/license-checker" - } - }, - "node_modules/license-checker/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/license-checker/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/license-checker/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/license-checker/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "license": "MIT" - }, - "node_modules/license-checker/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/license-checker/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/license-checker/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/license-checker/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/license-checker/node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/license-checker/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/license-webpack-plugin": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", @@ -20954,6 +20725,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -21221,6 +20993,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -21280,6 +21053,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, "license": "MIT", "dependencies": { "mime-db": "1.52.0" @@ -21292,6 +21066,7 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -21476,6 +21251,7 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "license": "MIT" }, "node_modules/msgpackr": { @@ -21935,20 +21711,6 @@ "url": "https://github.com/sponsors/antelle" } }, - "node_modules/nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "dev": true, - "license": "ISC", - "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, "node_modules/normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -21992,13 +21754,6 @@ "node": ">=0.10.0" } }, - "node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "dev": true, - "license": "ISC" - }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -22370,6 +22125,7 @@ "version": "1.13.4", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -22512,6 +22268,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, "license": "ISC", "dependencies": { "wrappy": "1" @@ -22696,38 +22453,6 @@ "license": "MIT", "optional": true }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "deprecated": "This package is no longer supported.", - "dev": true, - "license": "ISC", - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, "node_modules/own-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", @@ -24215,6 +23940,7 @@ "version": "6.14.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz", "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==", + "dev": true, "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.1.0" @@ -24369,102 +24095,6 @@ "pify": "^2.3.0" } }, - "node_modules/read-installed": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz", - "integrity": "sha512-O03wg/IYuV/VtnK2h/KXEt9VIbMUFbk3ERG0Iu4FhLZw0EP0T9znqrYDGn6ncbEsXUFaUjiVAWXHzxwt3lhRPQ==", - "deprecated": "This package is no longer supported.", - "dev": true, - "license": "ISC", - "dependencies": { - "debuglog": "^1.0.1", - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "slide": "~1.1.3", - "util-extend": "^1.0.1" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.2" - } - }, - "node_modules/read-installed/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/read-package-json": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", - "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", - "deprecated": "This package is no longer supported. Please use @npmcli/package-json instead.", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^2.0.0", - "npm-normalize-package-bin": "^1.0.0" - } - }, - "node_modules/read-package-json/node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/read-package-json/node_modules/brace-expansion": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", - "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/read-package-json/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/read-package-json/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -24580,20 +24210,6 @@ "node": ">= 6" } }, - "node_modules/readdir-scoped-modules": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", - "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "dev": true, - "license": "ISC", - "dependencies": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" - } - }, "node_modules/readdirp": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", @@ -26165,6 +25781,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -26184,6 +25801,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -26200,6 +25818,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.2", @@ -26218,6 +25837,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.2", @@ -26315,16 +25935,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw==", - "dev": true, - "license": "ISC", - "engines": { - "node": "*" - } - }, "node_modules/smol-toml": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.1.tgz", @@ -26495,29 +26105,6 @@ "node": ">=0.10.0" } }, - "node_modules/spdx-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/spdx-compare/-/spdx-compare-1.0.0.tgz", - "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-find-index": "^1.0.2", - "spdx-expression-parse": "^3.0.0", - "spdx-ranges": "^2.0.0" - } - }, - "node_modules/spdx-compare/node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, "node_modules/spdx-correct": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", @@ -26575,36 +26162,6 @@ "node": ">=6" } }, - "node_modules/spdx-ranges": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/spdx-ranges/-/spdx-ranges-2.1.1.tgz", - "integrity": "sha512-mcdpQFV7UDAgLpXEE/jOMqvK4LBoO0uTQg0uvXUewmEFhpiZx5yJSZITHB8w1ZahKdhfZqP5GPEOKLyEq5p8XA==", - "dev": true, - "license": "(MIT AND CC-BY-3.0)" - }, - "node_modules/spdx-satisfies": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/spdx-satisfies/-/spdx-satisfies-4.0.1.tgz", - "integrity": "sha512-WVzZ/cXAzoNmjCWiEluEA3BjHp5tiUmmhn9MK+X0tBbR9sOqtC6UQwmgCNrAIZvNlMuBUYAaHYfb2oqlF9SwKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "spdx-compare": "^1.0.0", - "spdx-expression-parse": "^3.0.0", - "spdx-ranges": "^2.0.0" - } - }, - "node_modules/spdx-satisfies/node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, "node_modules/spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", @@ -27237,39 +26794,6 @@ "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", "license": "MIT" }, - "node_modules/superagent": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-9.0.2.tgz", - "integrity": "sha512-xuW7dzkUpcJq7QnhOsnNUgtYp3xRwpt2F7abdRYIpCsAt0hhUqia0EdxyXZQQpNmGtsCzYHryaKSV3q3GJnq7w==", - "deprecated": "Please upgrade to superagent v10.2.2+, see release notes at https://github.com/forwardemail/superagent/releases/tag/v10.2.2 - maintenance is supported by Forward Email @ https://forwardemail.net", - "license": "MIT", - "dependencies": { - "component-emitter": "^1.3.0", - "cookiejar": "^2.1.4", - "debug": "^4.3.4", - "fast-safe-stringify": "^2.1.1", - "form-data": "^4.0.0", - "formidable": "^3.5.1", - "methods": "^1.1.2", - "mime": "2.6.0", - "qs": "^6.11.0" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/superagent/node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -27737,16 +27261,6 @@ "tree-kill": "cli.js" } }, - "node_modules/treeify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", - "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, "node_modules/trim-newlines": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz", @@ -28491,13 +28005,6 @@ "dev": true, "license": "MIT" }, - "node_modules/util-extend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", - "integrity": "sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA==", - "dev": true, - "license": "MIT" - }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", @@ -29410,6 +28917,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, "license": "ISC" }, "node_modules/write-file-atomic": { diff --git a/package.json b/package.json index d84201a1d..0614c1945 100644 --- a/package.json +++ b/package.json @@ -42,11 +42,11 @@ }, "private": true, "dependencies": { - "@alfresco/adf-content-services": "8.6.0-25384976868", - "@alfresco/adf-core": "8.6.0-25384976868", - "@alfresco/adf-extensions": "8.6.0-25384976868", - "@alfresco/eslint-plugin-eslint-angular": "8.6.0-25384976868", - "@alfresco/js-api": "9.6.0-25384976868", + "@alfresco/adf-content-services": "8.6.0-26272920976", + "@alfresco/adf-core": "8.6.0-26272920976", + "@alfresco/adf-extensions": "8.6.0-26272920976", + "@alfresco/eslint-plugin-eslint-angular": "8.6.0-26272920976", + "@alfresco/js-api": "9.6.0-26272920976", "@angular/animations": "19.2.20", "@angular/cdk": "19.2.19", "@angular/common": "19.2.20", @@ -79,7 +79,7 @@ "zone.js": "0.15.0" }, "devDependencies": { - "@alfresco/adf-cli": "8.6.0-25384976868", + "@alfresco/adf-cli": "8.6.0-26272920976", "@angular-devkit/build-angular": "19.2.22", "@angular-devkit/core": "19.2.20", "@angular-devkit/schematics": "19.2.20", diff --git a/projects/aca-content/src/lib/ui/overrides/adf-variables.scss b/projects/aca-content/src/lib/ui/overrides/adf-variables.scss index e1a987ce1..7c454609c 100644 --- a/projects/aca-content/src/lib/ui/overrides/adf-variables.scss +++ b/projects/aca-content/src/lib/ui/overrides/adf-variables.scss @@ -100,6 +100,4 @@ #{$name}: #{$value}; } } - - @include adf-core.globals; } diff --git a/projects/aca-playwright-shared/src/api/file-actions.ts b/projects/aca-playwright-shared/src/api/file-actions.ts index 5e4e5bd6d..fd8fb9397 100644 --- a/projects/aca-playwright-shared/src/api/file-actions.ts +++ b/projects/aca-playwright-shared/src/api/file-actions.ts @@ -23,10 +23,23 @@ */ import * as fs from 'fs'; +import * as path from 'path'; +import { File as NodeFile } from 'node:buffer'; import { ApiClientFactory } from './api-client-factory'; import { logger, Utils, waitForApi } from '../utils'; import { NodeBodyCreate, NodeEntry, ResultSetPaging, SearchRequest } from '@alfresco/js-api'; +const fileFixtureCache = new Map(); + +async function toUploadFile(fileLocation: string): Promise { + let buffer = fileFixtureCache.get(fileLocation); + if (!buffer) { + buffer = await fs.promises.readFile(fileLocation); + fileFixtureCache.set(fileLocation, buffer); + } + return new NodeFile([buffer], path.basename(fileLocation)); +} + export class FileActionsApi { private readonly apiService: ApiClientFactory; @@ -41,7 +54,7 @@ export class FileActionsApi { } async uploadFile(fileLocation: string, fileName: string, parentFolderId: string): Promise { - const file = fs.createReadStream(fileLocation); + const file = await toUploadFile(fileLocation); try { const result = await this.apiService.upload.uploadFile(file, '', parentFolderId, undefined, { name: fileName, @@ -63,7 +76,7 @@ export class FileActionsApi { title: string = '', description: string = '' ): Promise { - const file = fs.createReadStream(fileLocation); + const file = await toUploadFile(fileLocation); const nodeProps = { properties: { 'cm:title': title, diff --git a/projects/aca-playwright-shared/src/page-objects/components/viewer.component.ts b/projects/aca-playwright-shared/src/page-objects/components/viewer.component.ts index 69ac4eb52..7ad148e9e 100644 --- a/projects/aca-playwright-shared/src/page-objects/components/viewer.component.ts +++ b/projects/aca-playwright-shared/src/page-objects/components/viewer.component.ts @@ -37,7 +37,7 @@ export class ViewerComponent extends BaseComponent { public shareButton = this.getChild('button[id="share-action-button"]'); public downloadButton = this.getChild('button[id="app.viewer.download"]'); public unknownFormat = this.getChild(`adf-viewer-unknown-format .adf-viewer__unknown-format-view`); - public viewerImage = this.viewerLocator.locator('.cropper-canvas img'); + public viewerImage = this.viewerLocator.locator('#viewer-image'); public viewerDocument = this.viewerLocator.locator('.adf-pdf-viewer__content [role="document"]'); public documentThumbnailButton = this.getChild('[data-automation-id="adf-thumbnails-button"]'); public thumbnailsPages = this.getChild('[data-automation-id="adf-thumbnails-content"] adf-pdf-thumb'); @@ -72,12 +72,24 @@ export class ViewerComponent extends BaseComponent { async waitForViewerToOpen(): Promise { await this.waitForViewerLoaderToFinish(); - await this.viewerLocator.waitFor({ state: 'visible', timeout: timeouts.extraLarge }); + await this.viewerLocator.waitFor({ state: 'visible', timeout: timeouts.large }); } async waitForViewerLoaderToFinish(): Promise { - await this.viewerSpinner.waitFor({ state: 'attached', timeout: timeouts.medium }).catch(() => {}); - await this.viewerSpinner.waitFor({ state: 'detached', timeout: timeouts.fortySeconds }).catch(() => {}); + await this.viewerSpinner.waitFor({ state: 'attached', timeout: timeouts.short }).catch(() => {}); + await this.viewerSpinner.waitFor({ state: 'detached', timeout: timeouts.extraLarge }).catch(() => {}); + } + + async waitForViewerContentToRender(type: 'document' | 'image' | 'media' = 'document'): Promise { + if (type === 'image') { + await this.viewerImage.waitFor({ state: 'attached', timeout: timeouts.extraLarge }); + return; + } + if (type === 'media') { + await this.viewerMedia.waitFor({ state: 'visible', timeout: timeouts.extraLarge }); + return; + } + await this.pdfViewerContentPages.first().waitFor({ state: 'attached', timeout: timeouts.extraLarge }); } async checkViewerActivePage(pageNumber: number): Promise { @@ -118,7 +130,6 @@ export class ViewerComponent extends BaseComponent { async getFileTitle(): Promise { await this.fileTitleButtonLocator.waitFor({ state: 'visible', timeout: timeouts.normal }); - await this.waitForViewerLoaderToFinish(); const title = await this.fileTitleButtonLocator.textContent(); if (!title) { const errorMessage = 'File title is not displayed in the viewer'; @@ -159,7 +170,8 @@ export class ViewerComponent extends BaseComponent { } async checkUnknownFormatIsDisplayed(): Promise { - await this.unknownFormat.waitFor({ state: 'visible', timeout: timeouts.normal }); + await this.waitForViewerLoaderToFinish(); + await this.unknownFormat.waitFor({ state: 'visible', timeout: timeouts.fortySeconds }); } async getUnknownFormatMessage(): Promise {