mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2026-09-02 17:53:30 +00:00
77c549830fef1ca2c114fa600f49e1083ace8370
23
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
3f232e75bc |
AAE-48934 Eslint v9 migration (#12110)
* update * update * update * working * cr * cr * update * use nx boundaries * fixes * fixes * fixes * cr * cr * update * update * update * cr * fix null * cr * cr * cr * cr * cr * update * update * update * update * update * remove some duplications * fix units |
||
|
|
8ebbfa819e |
Revert "AAE-48166 Compensate for VM/Citrix clock drift in token expiry check (#12024)" (#12111)
This reverts commit
|
||
|
|
c941c81984 | [ACS-11860] Update license-header from 2005-2025 to 2005-2026 (#12094) | ||
|
|
85ec35cdf9 | Migrate to new animations api (#12078) | ||
|
|
ce907417b7 |
AAE-48166 Compensate for VM/Citrix clock drift in token expiry check (#12024)
* fix: compensate for VM/Citrix clock drift in token expiry check * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * feat(core/auth): add TimeSyncDateTimeProvider for angular-oauth2-oidc clock drift correction * feat(auth): add periodic clock re-sync to protect against mid-session drift in Citrix/VM environments - Add startPeriodicSync() and stopPeriodicSync() to TimeSyncService - Re-sync clock offset every 5 minutes and on document visibility change - Add security cap (maxAllowedOffsetMs) to reject unreasonably large offsets - Preserve existing offset on sync failures instead of resetting to 0 - Wire periodic sync start in RedirectAuthService.configureAuth() - Wire periodic sync stop in RedirectAuthService.logout() - Add unit tests for periodic sync and offset cap behavior * feat: replace dedicated time API with passive Date response header interception - Add `updateClockOffsetFromDateHeader()` to `TimeSyncService` so the clock offset can be updated from any HTTP `Date` response header (RFC 7231) - Make `serverTimeUrl` config optional: `syncClockOffset` is a safe no-op and `checkTimeSync` uses the stored `clockOffsetMs` when no URL is configured - Add `DateHeaderTimeSyncInterceptor` that reads the `Date` header from every HTTP response and passively keeps `TimeSyncService.clockOffsetMs` current - Register the new interceptor in `provideCoreAuth()` / `AuthModule` - Export `DateHeaderTimeSyncInterceptor` from the public API - Add unit tests for all new paths * feat: retry token refresh before checking for clock out-of-sync - tokenHasExpiredDueToClockOutOfSync$: skip the first "token expired" event so the library's automatic refresh has a chance to run before clock drift is diagnosed as the root cause - oauthErrorEventOccurDueToClockOutOfSync$: use scan() to skip the first token_refresh_error (allowing one retry) and only check clock sync on the second occurrence; all other error types are still checked immediately - Update test for token expiry: now requires two events before logout - Replace single token_refresh_error clock-sync test with two tests: one verifying no logout on first error, one verifying logout on second * fix(core): remove duplicate @angular/common/http import in date-header-time-sync interceptor spec * fix(core): treat empty/whitespace serverTimeUrl as not configured in TimeSyncService * fix(core): limit DateHeaderTimeSyncInterceptor to IAM API responses only * refactor: remove tokenHasExpiredDueToClockOutOfSync$ and re-sync clock + refresh token on validation failure Instead of having a separate observable that detects token expiration due to clock drift and immediately logs the user out, the oauthErrorEventOccurDueToClockOutOfSync$ now re-syncs the clock offset and attempts a token refresh when clock drift is detected. Only if the refresh fails after re-syncing does it propagate the error and trigger logout. * fix(auth): check token validity after clock re-sync before attempting refresh After re-syncing the clock offset, the code now checks whether the token is actually still valid using the corrected time (via tokenHasExpired()). If the token is valid, no refresh is needed — the token only appeared expired due to clock drift. This avoids the impossible situation of retrying a token refresh when the triggering error was itself a refresh error. * refactor(auth): replace IAM header interceptor with HEAD request to app root for time sync Instead of passively reading the Date header from IAM responses (which requires IAM to be reachable and has CORS constraints), the TimeSyncService now makes a lightweight HEAD request to the application's own root URL (served by nginx). This is simpler and more reliable because: - No CORS issues (same origin) - Nginx always includes a Date header - HEAD request has minimal payload (no body) - Works before authentication is established - No dedicated serverTimeUrl configuration needed The DateHeaderTimeSyncInterceptor has been removed as it is no longer needed. * fix(auth): reset tokenRefreshErrorCount on successful token event The tokenRefreshErrorCount in the oauthErrorEventOccurDueToClockOutOfSync$ stream now resets to 0 when a 'token_received' or 'token_refreshed' event occurs. This prevents intermittent errors that self-correct from accumulating toward the clock-drift detection threshold. * fix(core): provide meaningful error message when API response body is null When the server returns no response body (e.g., during token expiration, network interruption, or CORS failures), err.error is null causing JSON.stringify(null) to produce the unhelpful message "null". Now we explicitly handle the null case and produce a message like "401 Unauthorized" instead of "null". * fix: resync clock before invalidating tokens at startup At startup, when the first OAuth event fires, the service checks if the access token is valid. Previously it would immediately clear storage if the token appeared invalid. This could cause false negatives when the local clock was out of sync (e.g. VM/Citrix environments). Now the service first re-syncs the clock offset via TimeSyncService, then re-evaluates the token validity. Storage is only cleared if the token is still invalid after the corrected time check. * Remove maxAllowedOffsetMs from TimeSyncService * Fix startPeriodicSync call to match updated signature * WIP * Add Flag * AAE-48166 Sync time using server time * AAE-48166 Fix unit test * AAE-48166 Fix service * AAE-48166 Fix service * AAE-48166 Fix service and add tests * AAE-48166 Use app root instead of server time url * AAE-48166 Use oauth2.timeSync config key for time sync gate * AAE-48166 Keep redirect auth flow unchanged when time sync is disable * Add oauth2.showDebugInformation and related debug logging for time sync * AAE-48166 Fix multi-tab OIDC refresh failures by resyncing server time when timeSync enabled * AAE-48166 Avoid repeated server time calls by caching the result for 2 seconds * AAE-48166 test(auth): cover timeSync clock sync for implicit flow silent refresh --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Eugenio Romano <eromano@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Diogo Bastos <diogo.bastos@hyland.com> Co-authored-by: alep85 <amedeo.lepore@hyland.com> |
||
|
|
3f542d99ba | Migrate to @angular-eslint/prefer-inject and @typescript-eslint/prefer-readonly (#11665) | ||
|
|
b400757ad1 |
AAE-30878 Migrating from event-emitter to eventemitter3 (#11187)
* AAE-30878 Migrating from event-emitter to eventemitter3 which is … (#11116) * [AAE-30878] - have a single place for the EventEmitter types |
||
|
|
fd29e953d6 |
Revert "AAE-30878 Migrating from event-emitter to eventemitter3 which is … (#11116)" (#11186)
This reverts commit
|
||
|
|
923feccdb9 |
[MNT-25274] Fixed issue while uploading files with multi-valued properties (#11182)
* [MNT-25274] Fixed issue while uploading files with multi-valued properties * [MNT-25274] set a more specific type |
||
|
|
51c55674b4 | AAE-35340 Replace deprecated toPromise() usages with firstValueFrom / lastValueFrom (#11161) | ||
|
|
49375181e4 | AAE-30878 Migrating from event-emitter to eventemitter3 which is … (#11116) | ||
|
|
b16e326ac3 | AAE-36664 additional linting rules, cleanup (#11084) | ||
|
|
5d64c7f0ed |
Ng17 migration (#10295)
* Migrate to NG17 * [ci:force] - fixed deps * [ci:force] - fixed build for testing 1 * Fixed build for all the packages * [ci:force] - fixing lint * [ci:force] - Fixed lint * AAE-26163 Fix infinite loop when authentication error event occured (#10272) * AAE-26163 Logout user after 3 login attempts failed, avoiding infinite loop when an authentication error occured, like when a user machine clock is significantly out of sync * AAE-26163 Wait to discovery document to be loaded and user not authenticated to perform a ssoLogin, logout user if login fails after 3 attempts * AAE-26163 Fix missed id_token_hint invoking logout when a login error occured due to a clock significantly out of sync * AAE-26163 Add fake observable to unit test * AAE-26163 Show oauth event logs if showDebugInformation is enabled, remove auth items if access token is not valid * AAE-26163 Improve tryLogin error message * AAE-26163 Check if token has expired to fix case when user access the application after the token is expired and with a clock significantly out of sync * AAE-26163 Test logout when clock is out of sync * AAE-26163 Create a service to check if local machine time is out of sync * AAE-26163 Update oauthErrorEvent$ and combinedOAuthErrorsStream$ to return errors * AAE-26163 Output error within combined oauth error event subscription * AAE-26163 Fix lint problems * AAE-26163 Logout user when token refresh error happens for the second time, if the token is not refreshed properly after first refresh error * AAE-26163 Logout user once an oauth error event occur due to clock out of sync * AAE-26163 Fix retry login error message if the OAuthErrorEvent doesn t return reason * AAE-26163 Fix the issue where the logout API call is canceled by the authorize call when login fails due to clock synchronization problems, causing an infinite loop. * remove console.log * AAE-26163 Fix retry login error message if the OAuthErrorEvent reason is an empty object * Cherry picked commit from oidc and run fix lint * [MIGRATION] - fixed build and lint * [MIGRATION] - Added injectionContext to avoid error NG0203 for unit tests * [MIGRATION] - Moving mocha to jest * [MIGRATION] - Fixing failing migrated tests * [MIGRATION] - Migrating to Jest - working but some tests fails * Trying to fix js-api unit tests * Removing testing lib to sync with develop * Fixed two excluded unit tests * Removed unused project parts * Removed unused project parts * Reduced tserrors on building storybook * Fixed sonarqube errors * Removing temporarily eslint rule from publishing * [MIGRATION] - Fixed lint * [MIGRATION] - Fixed type * [MIGRATION] - Rebased * [MIGRATION] - Readded removed action * [MIGRATION] - Checking deps * [MIGRATION] - updated lock * [ACS-9052] manage versions close button is too low (#10466) * [ci:force] - Fixed lint * [ACS-9052] Fixed close button in version manager position * [ACS-9052] Reverted unwanted changes --------- Co-authored-by: VitoAlbano <vito.albano.123@gmail.com> * [MIGRATION] - fixed storybook builds * [MIGRATION] - Checking if now eslint is releasable * [MIGRATION] - Changing the building executor for eslint-rules * Readded rule for peer deps * Fixed wrong rule * [ACS-9075] Fixed incorrect buttons labels color (#10489) * Update package.json * Fix ACA pipeline * [ACS-9084] Fixed incorrect color for notification bell icon (#10513) * Change dialog label padding * [AAE-26767] - Fixed lint * [AAE-26767] - Fixed lint * updated dependencies * AAE-30733 Fix incorrect alignment of icons in permission list header * [MIGRATION] - sync package-lock * [MIGRATION] - Fixed package on core lib * [MIGRATION] - Removed unused lock * Fixed licence * [MIGRATION] - sync lock file * [MIGRATION] - fixed lint issues * [ACS-9271][ACA] Login page input labels are cut if the input is not empty (#10637) * AAE-31453 Override card-view-textitem readonly color --------- Co-authored-by: Amedeo Lepore <amedeo.lepore@hyland.com> Co-authored-by: Ehsan Rezaei <ehsan.rezaei@hyland.com> Co-authored-by: AleksanderSklorz <115619721+AleksanderSklorz@users.noreply.github.com> Co-authored-by: DominikIwanek <dominik.iwanek@hyland.com> Co-authored-by: swapnil-verma-gl <92505353+swapnil-verma-gl@users.noreply.github.com> Co-authored-by: Wojciech Duda <69160975+wojd0@users.noreply.github.com> Co-authored-by: dominikiwanekhyland <141320833+dominikiwanekhyland@users.noreply.github.com> |
||
|
|
e62c0587b6 |
[ACS-9215] Update license headers (#10625)
* [ACS-9215] Update license headers * [ACS-9215] Update license headers |
||
|
|
35c8093706 |
[MNT-24614] Fixed APS basic auth login issue with ADF (#10364)
* [MNT-24614] Fixed APS basic auth login issue with ADF * [MNT-24614] Addressed code review findings - Using includes api, and removed unneeded functions. Added missing return type to functions * [MNT-24614] Added unit tests * [MNT-24614] Added unit tests * [MNT-24614] Fixed casing of unit test titles |
||
|
+9 |
68ab2c67fd |
[AAE-19177] - Migration to NG15 - this one for real 👯 (#9088)
* Fixed linting * Fixed storybook with migration to WP5 * Fixed core unit test and excluded instable ones * Rebased with the latest develop * Fixed most of unit tests failing * Fixed prod build * Fixed linting and js-api tests * Fixed unit tests * Fixed last unit tests * Fixed js-api build * Attempt to fix the e2e run' * Fixing e2e part 2 * Fixing styles not migrated by material * Fixed unit test failing * E2E - fixing * Fixing unit after rebase * Fixing e2e - part III * Rebase went little bit wrong -II * Rebase went little bit wrong -III * Fixing e2e - changing toggles * Fixed code flow switch setting * wrong xdescribe * fixig e2es * fixig e2es - task and version * readded missing dep * Fixed slider search e2es * rebased and fixed the wrong directive for matList' * fixed unit test problem and some other e2e * Fixed search e2es * Rebased to latest * Fixed the last e2es? * reverted broken rebase * Fixed unit tests after rebase * Fixed unit tests after rebase * Honestly i'm going on just for the challenge now' * Readded method removed * Fixed pointless e2e * Fixed unit test * [AAE-18267] change unit test setup for auth service (#9216) * [AAE-18267] change unit test setup for auth service * [AAE-18267] remove exclude * [AAE-18267] removed CoreTestingModule from imports * unit test fixes for migration (#9217) * reenabled excluded test in TagNodeList * fixed tests for UploadApi in js-api * Fixed a dependency problem * remaining unit test fixes for the Angular 15 update (#9218) * removing excludes from working tests * test fixes for CategoriesManagementComponent * [ci:force] reenabling tests / fixes * fixes in process-services-cloud * change html element type * fix selector in StartProcessComponent * Revert "Fixed a dependency problem" This reverts commit |
||
|
|
3819aecb70 |
[MNT-24354] update license header to 2024 (#9633)
* MNT-24354 update license header [ci:force] * MNT-24354 fix lint [ci:force] * MNT-24354 [ci:force] * MNT-24354 update license header in process-services [ci:force] --------- Co-authored-by: DaryaBalvanovich <darya.balvanovich1@hyland.com> |
||
|
|
08da9ae2c3 |
[AAE-12501] move auth in ADF (#8689)
* remove unneeded JS-API dep move auth in the right place * [AAE-12501] Replace alfresco api client with AdfHttpClient * [AAE-12501] Restore get username methods * [AAE-12501] Get username with authentication service * [AAE-12501] Create a request options interface with the needed props, remove the import from js-api, return the body from request * add emitters * [AAE-12501] Replace Math.random() to fix hospot security issue, fix lint issues * [AAE-12501] Comment temporary setCsrfToken because is not possible to import app config service from core due to circular dependencies * [AAE-12501] Get disableCsrf from app config serviice when app configuration is loaded * [AAE-12501] Remove wrong character * Pass down the requestUrl for request interception bring back check from js-api fixing isLogin issues part1 some fix around emit Narrow access for methods fix sso username issue Switch to dynamic service injection add emitters move auth inside ADF * clean * fix unit test * fix lint * Fix exports * Fix process-services unit tests * Fix core unit tests Fix core unit tests Fix core unit tests Fix core unit tests Fix core unit tests Fix core unit tests Fix core unit tests * Fix content-services unit tests: getEcmUsername from authentication service Fix content-services unit tests: alfresco api service has been replaced by authentication service * Fix circular dependecies issue importing AppConfigService outside the api entrypoint dir * Import AuthModule even in not only canary mode to let the e2es run * Fix authentication unit tests * Fix unit test '[ECM] should return a ticket undefined after logout' * Remove AlfrescoApiService is not used anymore * Fix unit test '[BPM] should return an BPM ticket after the login done': add Basic suffix to basicAuth * Fix unit tests core * Fix login errors with the BASIC authentication * Fix missing onLogin event * Temporary skip unit tests to check e2es * Fix login component doesn't add the authorization header * Fix prefix is undefined * Fix image is not showed by the alfresco file viewer because alf_ticket is not added to the content url query params, pass ticketEcm to the alfrescoApi configuration used by alfrescoApiClient.ts getAlfTicket() * Fix C280012: set app prefix before calling content api * Revert "Fix image is not showed by the alfresco file viewer because alf_ticket is not added to the content url query params, pass ticketEcm to the alfrescoApi configuration used by alfrescoApiClient.ts getAlfTicket()" This reverts commit afbf086b98d72835aab8b15d4af433efeaac2d3b. * try to change adf core autoamtion service init * go back * grant type password login * fix * remove automatic login in reset try * fix not silent login * lint happy * fix * Update alfresco-api-v2-loader.service.ts * fixint * Revert "Temporary skip unit tests to check e2es" This reverts commit a0adc7e58a001a54442c82952761bff891caa5cd. * fix modules * fix app config stream in storing service fix app config stream for sub property * fix identity test to use the real service * fix unit * fix unit * fix unit * remove test that are probably have never been green * fix * fix PC * fix localstorage * fix * fix * fix * fix * fix storybook move e2e in content for versioning fix lint * fix * fix size * enable log * some fix for usernames * remove log * fix rebase * [AAE-12502] Restore isKerberosEnabled into authentication service * subject onLogin * fix unit * Fix lint issue * fix * Update error message * Revert change did by https://github.com/Alfresco/alfresco-ng2-components/pull/8689/commits/b79c5d37d69b2d76b33e5561eab2bf5b80c81b9e\#diff-ad85723e21276e05e577bab652c6ab0d243bd0ad54d4cc70ef6e60dc5e635c33L38 * Refresh the browser to wait for the user to click process cloud page * Remove e2e, the application list is already tested by the app-list-cloud.component.spec.ts https://github.com/Alfresco/alfresco-ng2-components/blob/dev-eromano-AAE-12501-2/lib/process-services-cloud/src/lib/app/components/app-list-cloud.component.spec.ts\#L147 * [12502] Add getUsername method to the AuthenticationService * [12501] restore mutlipart/form-data header needed by angular http-client to to fix 415 unsupported media type * Revert "[12501] restore mutlipart/form-data header needed by angular http-client to to fix 415 unsupported media type" This reverts commit d8c584b94f649b57859d74157ec0861f2ebddebb. * [12501] fix unsupported upload file on admin-apa, append json content type only calling alfresco api * [12501] fix unsupported upload file on admin-apa [12501] fix unsupported upload file on admin-apa * Revert "[12501] fix unsupported upload file on admin-apa" This reverts commit 53cda21d795588d87244c78c5a5347afd04ea2b1. * Improve getHeaders * Revert change * Set application/json content type if request body is not a FormData * Logout by the authenticationService * Update returned error message * Fix lint issues after rebasing * [12502] Add basic template with data-automation-ad selector to check when is attached to the Dom * Fix issues after rebase --------- Co-authored-by: Amedeo Lepore <amedeo.lepore@hyland.com> Co-authored-by: Andras Popovics <popovics@ndras.hu> |
||
|
|
65d70bffb2 |
[ACS-6071] fix JSDoc issues for Core lib (#8942)
* fix jsdoc issues * docs fixes * doc fixes * doc fixes * fix docs * fix bugs |
||
|
|
ef551a9c71 |
Improved ESLint configuration, integrated spellcheck and error fixes (#8931)
* integrate cspell with eslint, improved configuration * core: fix linting errors * core: fix lint warnings * content: lint fixes * process service lint fixes * lint: process services cloud * lint: insights * lint: extensions * [ci:force] lint: cli fixes * [ci:force] comment out dead code * [ci:force] exclude dead code * fix code and tests * rollback some changes * fix testing lib * fix demo shell * minor lint warning fixes * minor lint fixes * fix process services |
||
|
|
7abebf0652 |
[AAE-12501] Align JS API (#8344)
* [AAE-12501] Provide an AlfrescoApiService implementation that disable the AlfrescoApi oauth initialization when we use new oidc implementation * [AAE-12501] Replace oauth2Auth with authentication service, define get username as abstract * [AAE-12501] Replace sitesService with authentication service since sitesService get the username from oauth2Auth * [AAE-12501] Call implicitLogin by authentication service * [AAE-12501] Replace Oauth2Auth with AlfrescoApi and call the custom api without using authentication * [AAE-12501] Replace oauth2Auth with authentication service to get the token * [AAE-12501] Replace oauth2Auth with alfrescoApi * remove unneeded JS-API dep move auth in the right place * [AAE-10501] Rename alfresco-api.http-client to adf-http-client * [AAE-10501] Remove config from a CoreModule, a different service is provided in AuthModule to use angular http client instead of super agent * [AAE-10501] Disable AlfrescoApi oauth initialization while using new adf oidc authentication * [AAE-12501] Replace alfresco api client with AdfHttpClient * [AAE-12501] Restore get username methods * [AAE-12501] Get username with authentication service * [AAE-12501] removee unused method * [AAE-12501] Trigger on login when token is received * [AAE-12501] Fix content-services unit test * [AAE-12501] Fix import * [AAE-12501] Fix core unit tests * [AAE-12501] Fix process-services-cloud unit tests * [AAE-12501] Create a request options interface with the needed props, remove the import from js-api, return the body from request * [AAE-12501] Fix process-services-cloud unit tests without Expectation * [AAE-12501] Fix Core secondary entrypoints unit tests are not executed: move test.ts one level up in order to find all the spec files into the secondary entrypoints folders and update path * [AAE-12501] Fix Core unit tests that weren't executed because of the previous test.ts wrong location * [AAE-12501] Fix authentication token_issued subscription * add emitters * [AAE-12501] Replace Math.random() to fix hospot security issue, fix lint issues * [AAE-12501] Install event-emitter dependency * [AAE-12501] Comment temporary setCsrfToken because is not possible to import app config service from core due to circular dependencies * [AAE-12501] Get disableCsrf from app config serviice when app configuration is loaded * [AAE-12501] Fix license-header lint issue * [AAE-14221] Regenerate lock file * [AAE-14221] Fix sonarcloud issues * [AAE-12501] Remove wrong character * [AAE-12501] Regenerate lock file * [AAE-12501] Fix BC: update alfresco api response error --------- Co-authored-by: eromano <eugenioromano16@gmail.com> |
||
|
|
98c0a3c7be |
[ACS-5041] update license headers to reflect hyland copyright guidelines (#8472)
* ACS-5041 Changed json to js * ACS-5041 Corrected paths * ACS-5041 Changed json to js * ACS-5041 Updated eslintrc * ACS-5041 Small correction * ACS-5041 Small correction * ACS-5041 Updated license headers * ACS-5041 Updated license headers * ACS-5041 Replaced references to alfresco * ACS-5041 Added Hyland to known words * ACS-5041 Fixed coverage issue * ACS-5041 Fixed duplication issue * ACS-5041 Fixed duplications issue * ACS-5041 Fixed duplications issue * ACS-5041 Fixed duplications issue * ACS-5041 Fixed duplications issue * ACS-5041 Fixed duplications issue * ACS-5041 Fixed duplications issue * ACS-5041 Fixed duplications issue * ACS-5041 Fixed duplications issue * ACS-5041 Fixed test * ACS-5041 Fixed test * ACS-5041 Reverted one change * ACS-5041 Added missing license to files after rebase |
||
|
|
f4a8084f0c |
[AAE-12511] implement OIDC authentication capabilities in ADF (#7856)
* feat: add custom AlfrescoApiHttpClient [ci:force]
* feat: update configs
* feat: move api to follow second entry point structure
* feat: add auth module [ci:force]
* Fix rebasing issues
* Isolate oidc package as subfolder
* Canary mode
* [AAE-12498] Fix unit test should load external settings: resolve reponse data instead returning default config
* [AAE-12498] Set @nrwl/eslint-plugin-nx@14.5.4 version to fix lint job that failed because of the 14.8.6 version (https://github.com/Alfresco/alfresco-ng2-components/actions/runs/4165060892/jobs/7207651856\#step:5:3379)
* [AAE-12498] Fix stories:build-storybook:ci issues
* [AAE-7991] cherry-pick
|