Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions docs/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,22 @@

All notable changes to this project will be documented in this file.

## [1.1.29] - Current
## [1.1.30] - Current

### Fixed

- **Revert `otplib` to 12.0.1**: Reverted otplib v13 upgrade due to breaking API changes affecting consumers. Kept at 12.0.1.

## [1.1.29]

### Changed

- **Pin all dependency versions**: Removed `^` range prefixes from all `dependencies` and `devDependencies` to use exact versions, preventing unexpected breaking changes from transitive updates. `peerDependencies` retain ranges for consumer flexibility.
- **Update all dependencies to latest versions**: Bumped all packages to their latest versions except `@keycloak/keycloak-admin-client` (pinned at 26.5.6 due to broken postinstall in newer versions). Notable major bumps: `eslint` 9→10, `@eslint/js` 9→10, `typescript` 5→6, `otplib` 12→13, `lint-staged` 15→16.
- **Update all dependencies to latest versions**: Bumped all packages to their latest versions except `@keycloak/keycloak-admin-client` (pinned at 26.5.6 due to broken postinstall) and `otplib` (kept at 12.0.1 due to breaking API changes in v13). Notable major bumps: `eslint` 9→10, `@eslint/js` 9→10, `typescript` 5→6, `lint-staged` 15→16.
- **Update Yarn to 4.12.0**: Bumped `packageManager` from `yarn@3.8.7` to `yarn@4.12.0`.

### Fixed

- **Migrate `otplib` v12→v13**: Replaced removed `authenticator.generate(secret)` API with `generateSync({ secret })` in `LoginHelper`.
- **Preserve error cause in re-thrown errors**: Added `{ cause: error }` to wrapped errors in `RHDHDeployment` and `KubernetesClientHelper` for better error chain traceability.
- **Use optional chaining in `APIHelper.deleteUserEntityFromAPI`**: Replaced verbose null check with optional chain (`r.metadata?.uid`).

Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@red-hat-developer-hub/e2e-test-utils",
"version": "1.1.29",
"version": "1.1.30",
"description": "Test utilities for RHDH E2E tests",
"license": "Apache-2.0",
"repository": {
Expand Down Expand Up @@ -114,7 +114,7 @@
"js-yaml": "4.1.1",
"lodash.clonedeepwith": "4.5.0",
"lodash.mergewith": "4.6.2",
"otplib": "13.4.0",
"otplib": "12.0.1",
"prettier": "3.8.1",
"proper-lockfile": "4.1.2",
"typescript": "6.0.2",
Expand Down
8 changes: 4 additions & 4 deletions src/playwright/helpers/common.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { UIhelper } from "./ui-helper.js";
import { generateSync } from "otplib";
import { authenticator } from "otplib";
import { test, expect } from "@playwright/test";
import type { Browser, Page, TestInfo } from "@playwright/test";
import { SETTINGS_PAGE_COMPONENTS } from "../page-objects/page-obj.js";
Expand Down Expand Up @@ -222,12 +222,12 @@ export class LoginHelper {
throw new Error("Invalid User ID");
}

return generateSync({ secret });
return authenticator.generate(secret);
}

getGoogle2FAOTP(): string {
const secret = process.env.GOOGLE_2FA_SECRET as string;
return generateSync({ secret });
return authenticator.generate(secret);
}

async keycloakLogin(username: string, password: string) {
Expand Down Expand Up @@ -302,7 +302,7 @@ export class LoginHelper {
.locator("[type='submit'][value='Sign in']:not(webauthn-status *)")
.first()
.click({ timeout: 5000 });
const twofactorcode = generateSync({ secret: twofactor });
const twofactorcode = authenticator.generate(twofactor);
await popup.locator("#app_totp").click({ timeout: 5000 });
await popup.locator("#app_totp").fill(twofactorcode, { timeout: 5000 });

Expand Down
107 changes: 44 additions & 63 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -250,13 +250,6 @@ __metadata:
languageName: node
linkType: hard

"@noble/hashes@npm:^2.0.1":
version: 2.0.1
resolution: "@noble/hashes@npm:2.0.1"
checksum: 10/f4d00e7564eb4ff4e6d16be151dd0e404aede35f91e4372b0a8a6ec888379c1dd1e02c721b480af8e7853bea9637185b5cb9533970c5b77d60c254ead0cfd8f7
languageName: node
linkType: hard

"@npmcli/agent@npm:^4.0.0":
version: 4.0.0
resolution: "@npmcli/agent@npm:4.0.0"
Expand Down Expand Up @@ -316,60 +309,51 @@ __metadata:
languageName: node
linkType: hard

"@otplib/core@npm:13.4.0":
version: 13.4.0
resolution: "@otplib/core@npm:13.4.0"
checksum: 10/2dbb85c7647af1eea7f16eecf38455428499a90e2708720a9e9940b4f5104945b4b45989f222a3eeb6045b269a6dc2b31867ede1462a97b1ce1566a4fcd9e930
languageName: node
linkType: hard

"@otplib/hotp@npm:13.4.0":
version: 13.4.0
resolution: "@otplib/hotp@npm:13.4.0"
dependencies:
"@otplib/core": "npm:13.4.0"
"@otplib/uri": "npm:13.4.0"
checksum: 10/4e2ca48076387a09deb7d11e0b62beddd2bc2f2eb2a3d1a869f77c54519e4ccb674060b99fcc13e210138a673e6fe1eb361ccab9d63a552b8e2ecfa3a1eab33b
"@otplib/core@npm:^12.0.1":
version: 12.0.1
resolution: "@otplib/core@npm:12.0.1"
checksum: 10/d6edc1ed5fd744cd7be5fd0886e627f42f5e25f9593c7c6f4cac6a64a078eeaf1f70a190f1bb7f366f4eafdabe445c272e699292daa84da266e43b89bb40a6c0
languageName: node
linkType: hard

"@otplib/plugin-base32-scure@npm:13.4.0":
version: 13.4.0
resolution: "@otplib/plugin-base32-scure@npm:13.4.0"
"@otplib/plugin-crypto@npm:^12.0.1":
version: 12.0.1
resolution: "@otplib/plugin-crypto@npm:12.0.1"
dependencies:
"@otplib/core": "npm:13.4.0"
"@scure/base": "npm:^2.0.0"
checksum: 10/8325a8ba6055c6166131cdb8e3b0f473c2a7d8821640d26b43ac15ed7085baf494c4c9950f8ee56bccc07546da5c305d78f93b80b15505d97f15ea55311646f7
"@otplib/core": "npm:^12.0.1"
checksum: 10/6867c74ee8aca6c2db9670362cf51e44f3648602c39318bf537421242e33f0012a172acd43bbed9a21d706e535dc4c66aff965380673391e9fd74cf685b5b13a
languageName: node
linkType: hard

"@otplib/plugin-crypto-noble@npm:13.4.0":
version: 13.4.0
resolution: "@otplib/plugin-crypto-noble@npm:13.4.0"
"@otplib/plugin-thirty-two@npm:^12.0.1":
version: 12.0.1
resolution: "@otplib/plugin-thirty-two@npm:12.0.1"
dependencies:
"@noble/hashes": "npm:^2.0.1"
"@otplib/core": "npm:13.4.0"
checksum: 10/7fdba4f95afb526d2cfcc12009b134ab0142f354b2713cb817715ae88bd432e470a1e3f64bd77901d9b7d22c148b62964d82237dfe4515530d1e1b984f1679f3
"@otplib/core": "npm:^12.0.1"
thirty-two: "npm:^1.0.2"
checksum: 10/920099e40d3e8c2941291c84c70064c2d86d0d1ed17230d650445d5463340e406bc413ddf2e40c374ddc4ee988ef1e3facacab9b5248b1ff361fd13df52bf88f
languageName: node
linkType: hard

"@otplib/totp@npm:13.4.0":
version: 13.4.0
resolution: "@otplib/totp@npm:13.4.0"
"@otplib/preset-default@npm:^12.0.1":
version: 12.0.1
resolution: "@otplib/preset-default@npm:12.0.1"
dependencies:
"@otplib/core": "npm:13.4.0"
"@otplib/hotp": "npm:13.4.0"
"@otplib/uri": "npm:13.4.0"
checksum: 10/c5e8e3696a82cd43ac1b478c2cd47dd63ad30cdb1cdeb575451e50a1905690b59403b8587d22807160e4e9f39c4cb63925675570d68c5f62a936cc1d302bc3a6
"@otplib/core": "npm:^12.0.1"
"@otplib/plugin-crypto": "npm:^12.0.1"
"@otplib/plugin-thirty-two": "npm:^12.0.1"
checksum: 10/8133231384f6277f77eb8e42ef83bc32a8b01059bef147d1c358d9e9bfd292e1c239f581fe008367a48489dd68952b7ac0948e6c41412fc06079da2c91b71d16
languageName: node
linkType: hard

"@otplib/uri@npm:13.4.0":
version: 13.4.0
resolution: "@otplib/uri@npm:13.4.0"
"@otplib/preset-v11@npm:^12.0.1":
version: 12.0.1
resolution: "@otplib/preset-v11@npm:12.0.1"
dependencies:
"@otplib/core": "npm:13.4.0"
checksum: 10/0bf659e7b81747f76a7d85eddee2d6b7a14368e7c5edcf246d58c56a3bb7c6c7d5a7eacc2dfcda799089c43c397ac75b28d5be2e77147d71caf5ae918756c3ed
"@otplib/core": "npm:^12.0.1"
"@otplib/plugin-crypto": "npm:^12.0.1"
"@otplib/plugin-thirty-two": "npm:^12.0.1"
checksum: 10/367cb09397e617c21ec748d54e920ab43f1c5dfba70cbfd88edf73aecca399cf0c09fefe32518f79c7ee8a06e7058d14b200da378cc7d46af3cac4e22a153e2f
languageName: node
linkType: hard

Expand Down Expand Up @@ -411,7 +395,7 @@ __metadata:
lodash.clonedeepwith: "npm:4.5.0"
lodash.mergewith: "npm:4.6.2"
markdown-link-check: "npm:3.14.2"
otplib: "npm:13.4.0"
otplib: "npm:12.0.1"
prettier: "npm:3.8.1"
proper-lockfile: "npm:4.1.2"
typescript: "npm:6.0.2"
Expand All @@ -422,13 +406,6 @@ __metadata:
languageName: unknown
linkType: soft

"@scure/base@npm:^2.0.0":
version: 2.0.0
resolution: "@scure/base@npm:2.0.0"
checksum: 10/8fb86024f22e9c532d513b8df8a672252e58bd5695920ce646162287f0accd38e89cab58722a738b3d247b5dcf7760362ae2d82d502be7e62a555f5d98f8a110
languageName: node
linkType: hard

"@tootallnate/quickjs-emscripten@npm:^0.23.0":
version: 0.23.0
resolution: "@tootallnate/quickjs-emscripten@npm:0.23.0"
Expand Down Expand Up @@ -2502,17 +2479,14 @@ __metadata:
languageName: node
linkType: hard

"otplib@npm:13.4.0":
version: 13.4.0
resolution: "otplib@npm:13.4.0"
"otplib@npm:12.0.1":
version: 12.0.1
resolution: "otplib@npm:12.0.1"
dependencies:
"@otplib/core": "npm:13.4.0"
"@otplib/hotp": "npm:13.4.0"
"@otplib/plugin-base32-scure": "npm:13.4.0"
"@otplib/plugin-crypto-noble": "npm:13.4.0"
"@otplib/totp": "npm:13.4.0"
"@otplib/uri": "npm:13.4.0"
checksum: 10/0c9b81a288f5dec35ab53b621138fe462ebea4a155bd76e019ffbe15d755b5f4931bc405a3a81c22fa3e01a3bc9a00999703608227e51f3e23875c9dd3af00c8
"@otplib/core": "npm:^12.0.1"
"@otplib/preset-default": "npm:^12.0.1"
"@otplib/preset-v11": "npm:^12.0.1"
checksum: 10/37415ce3706b9e186c1bdcef3e975d96f24bdd97d66dff6148d31a523d4e84009154f7ad1d491afc326d85f7adf0afcd2daf3750b6e6cfc4151d3deec8c0dcc3
languageName: node
linkType: hard

Expand Down Expand Up @@ -3026,6 +3000,13 @@ __metadata:
languageName: node
linkType: hard

"thirty-two@npm:^1.0.2":
version: 1.0.2
resolution: "thirty-two@npm:1.0.2"
checksum: 10/f6700b31d16ef942fdc0d14daed8a2f69ea8b60b0e85db8b83adf58d84bbeafe95a17d343ab55efaae571bb5148b62fc0ee12b04781323bf7af7d7e9693eec76
languageName: node
linkType: hard

"tinyexec@npm:^1.0.4":
version: 1.1.1
resolution: "tinyexec@npm:1.1.1"
Expand Down
Loading