diff --git a/.changeset/add-captcha-enterprise-invisible.md b/.changeset/add-captcha-enterprise-invisible.md deleted file mode 100644 index 7920f94d..00000000 --- a/.changeset/add-captcha-enterprise-invisible.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -'@forgerock/login-widget': minor ---- - -Add invisible reCAPTCHA v2, invisible hCaptcha, and reCAPTCHA Enterprise support. - -- Support invisible mode for both Google reCAPTCHA v2 and hCaptcha via `configuration({ captcha: { mode: 'invisible' } })`. -- Add `ReCaptchaEnterpriseCallback` handler for AM journeys using the Enterprise CAPTCHA node — renders visible checkbox or score-based invisible flow automatically from callback data. -- Add `resolveGrecaptcha()` helper that prefers `window.grecaptcha.enterprise` and falls back to classic `window.grecaptcha`, keeping existing consumers with migrated keys working without changes. -- Show inline `` on CAPTCHA failure or expiry for invisible modes. -- Fix `renderCaptcha` to accept an optional `elementId` param to avoid DOM id collisions between classic and Enterprise components. diff --git a/.changeset/add-custom-components.md b/.changeset/add-custom-components.md deleted file mode 100644 index 37392918..00000000 --- a/.changeset/add-custom-components.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@forgerock/login-widget': minor ---- - -Add support for custom callback and stage components. diff --git a/.changeset/add-login-framework-cli.md b/.changeset/add-login-framework-cli.md deleted file mode 100644 index 86af3171..00000000 --- a/.changeset/add-login-framework-cli.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -'@forgerock/login-framework-cli': minor ---- - -Add `ping-lf` CLI tool (`tools/cli/`) for bootstrapping and maintaining Login Framework projects. - -Three commands: - -- `init ` — fetches a GitHub release and scaffolds a new project directory with all necessary configuration, dependencies, and an empty `experimental/custom/` structure ready for `pnpm install`. -- `generate callback|stage ` — scaffolds a new custom callback or stage component from templates, naming files correctly (PascalCase → kebab-case). The framework's Vite plugin picks up the new component automatically on the next build or dev-server reload. -- `update [--version ]` — fetches the target framework release and overwrites core files while preserving `experimental/custom/`, and updates `.generator-version`. - -Installable via `npm install -g @forgerock/login-framework-cli`. diff --git a/.changeset/add-textinput-callback.md b/.changeset/add-textinput-callback.md deleted file mode 100644 index cf7eaaa3..00000000 --- a/.changeset/add-textinput-callback.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@forgerock/login-widget': minor ---- - -Add `TextInputCallback` support in the login widget callback renderer. - -- Map and render `TextInputCallback` using existing text input composition patterns. -- Include callback metadata handling so steps treat `TextInputCallback` as required user input. -- Add Storybook coverage and Playwright E2E coverage for submit flow and TextInput edge cases. diff --git a/.changeset/dull-baths-buy.md b/.changeset/dull-baths-buy.md deleted file mode 100644 index 2cd0448a..00000000 --- a/.changeset/dull-baths-buy.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@forgerock/login-widget': minor ---- - -Autofill with passkeys for Webauthn journeys diff --git a/.changeset/fix-alert-info-calc-lightness.md b/.changeset/fix-alert-info-calc-lightness.md deleted file mode 100644 index 1b0b1588..00000000 --- a/.changeset/fix-alert-info-calc-lightness.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@forgerock/login-widget': patch ---- - -Fix Alert:Info visual regression (green background in light mode, black background in dark mode) caused by additive CSS `calc()` lightness offsets becoming active once `--tw-colors-*` custom properties were injected by the IDM theming feature. Replaced the three broken additive expressions with multiplicative `calc(var(--l) * factor)` that replicates the `color` library's relative `lighten`/`darken` math correctly for any token value. diff --git a/.changeset/fix-en-locale-typo.md b/.changeset/fix-en-locale-typo.md deleted file mode 100644 index 0fc5af24..00000000 --- a/.changeset/fix-en-locale-typo.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@forgerock/login-widget': patch ---- - -Fix English locale copy: authenticator typo and grammar wording updates. diff --git a/.changeset/idm-theming-support.md b/.changeset/idm-theming-support.md deleted file mode 100644 index 0a4e87b9..00000000 --- a/.changeset/idm-theming-support.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@forgerock/login-widget': minor ---- - -Add IDM theming support. Consumers can now pass a `theme` object to `configuration({ style: { theme } })` to apply design tokens as CSS custom properties on the widget root. Supports `primaryColor`, `secondaryColor`, `backgroundColor`, `linkColor`, `linkActiveColor`, `fontFamily`, `buttonBorderRadius`, `cardBorderRadius`, `cardBgColor`, `inputBgColor`, `inputBorderColor`, `inputLabelColor`, `inputTextColor`, `inputFocusRingColor`, `selectAccentColor`, `selectHoverBgColor`, `cardTextColor`, `bodyTextColor`, `buttonTextColor`, `buttonFocusRingColor`, `logo`, `logoHeight`, and `primaryOffColor`. The Login App SSR layer fetches theme values from the IDM `/openidm/config/ui/themerealm` endpoint automatically. diff --git a/.changeset/journey-client-migration.md b/.changeset/journey-client-migration.md deleted file mode 100644 index 9b48e7e3..00000000 --- a/.changeset/journey-client-migration.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@forgerock/login-widget': major ---- - -Migrate the journey flow implementation from `@forgerock/javascript-sdk` to `@forgerock/journey-client`. diff --git a/.changeset/moody-queens-cheer.md b/.changeset/moody-queens-cheer.md deleted file mode 100644 index 32a79a8b..00000000 --- a/.changeset/moody-queens-cheer.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@forgerock/login-widget': patch ---- - -Add dedicated MFA enrollment and recovery codes stages for multi-factor setup journeys, including a new `mfa-enrollment.svelte` stage that handles the MFA setup text-output callback script and a `recovery-codes.svelte` stage that displays one-time recovery codes after MFA registration. diff --git a/.changeset/silent-states-lose.md b/.changeset/silent-states-lose.md deleted file mode 100644 index d22c6c46..00000000 --- a/.changeset/silent-states-lose.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@forgerock/login-widget': minor ---- - -Add dedicated stage for PingOne AIC admin registration flow (welcome, OTP verify, privacy policy, invalid invite). diff --git a/.changeset/social-clubs-throw.md b/.changeset/social-clubs-throw.md deleted file mode 100644 index c98aa2f3..00000000 --- a/.changeset/social-clubs-throw.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@forgerock/login-framework-cli': minor ---- - -Add MCP command to the CLI tool for LLM agent harness integration diff --git a/.changeset/svelte5-pnpm-monorepo.md b/.changeset/svelte5-pnpm-monorepo.md deleted file mode 100644 index 43c86178..00000000 --- a/.changeset/svelte5-pnpm-monorepo.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -'@forgerock/login-widget': minor ---- - -Migrate to Svelte 5, pnpm monorepo architecture, and fix published type declarations - -- Upgrade Svelte from v3/v4 to v5 with backward-compatible legacy mode -- Restructure project into pnpm workspaces: `packages/login-widget`, `apps/login-app`, `e2e/`, `core/` -- Fix published type declarations by namespacing core types under `dist/core/` with correct relative paths -- Upgrade Storybook from v7 to v10 -- Replace Rollup with Vite for all builds -- Overhaul CI pipeline for pnpm strict dependency isolation diff --git a/.changeset/tall-hornets-double.md b/.changeset/tall-hornets-double.md deleted file mode 100644 index 3440559f..00000000 --- a/.changeset/tall-hornets-double.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@forgerock/login-widget': patch ---- - -Adopt journey-client 2.1: import types from the package instead of deriving them, include login failure type and remove resume() URL-parsing. diff --git a/.changeset/upgrade-zod-v4-and-xss.md b/.changeset/upgrade-zod-v4-and-xss.md deleted file mode 100644 index 923842f5..00000000 --- a/.changeset/upgrade-zod-v4-and-xss.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -'@forgerock/login-widget': minor ---- - -Upgrade `zod` from `3.22.4` to `^4.3.6` and `xss` from `1.0.14` to `^1.0.15`. - -- Migrate `core/sdk.config.ts` config schema to Zod v4: replace the removed - `z.function().args().returns()` schema form with `z.custom()` for the - `callbackFactory`, `middleware`, and `tokenStore` function validators; - collapse the `z.nativeEnum(CallbackType)` validator (which was part of the - removed `z.function().args()` chain) into `z.custom()`; collapse - `{ invalid_type_error, required_error }` into the unified `error` - callback. -- Migrate `core/_utilities/i18n.utilities.ts` to the two-argument - `z.record(keySchema, valueSchema)` form required by v4. -- The inferred public config surface (`z.infer`) - is preserved; no behavior change at runtime. diff --git a/packages/login-widget/CHANGELOG.md b/packages/login-widget/CHANGELOG.md index 3fc428e6..ab7baf1e 100644 --- a/packages/login-widget/CHANGELOG.md +++ b/packages/login-widget/CHANGELOG.md @@ -1,5 +1,68 @@ # [1.3.0](https://github.com/forgerock/forgerock-web-login-framework/compare/v1.2.1...v1.3.0) (2024-06-05) +## 2.0.0 + +### Major Changes + +- [#468](https://github.com/ForgeRock/forgerock-web-login-framework/pull/468) [`89ae057`](https://github.com/ForgeRock/forgerock-web-login-framework/commit/89ae057d5b203499e3a3266289dde9eea7ce14a5) Thanks [@vatsalparikh](https://github.com/vatsalparikh)! - Migrate the journey flow implementation from `@forgerock/javascript-sdk` to `@forgerock/journey-client`. + +### Minor Changes + +- [#478](https://github.com/ForgeRock/forgerock-web-login-framework/pull/478) [`3d52dfc`](https://github.com/ForgeRock/forgerock-web-login-framework/commit/3d52dfc92ae66a8ef2d51fa39e15cce77586415e) Thanks [@SteinGabriel](https://github.com/SteinGabriel)! - Add invisible reCAPTCHA v2, invisible hCaptcha, and reCAPTCHA Enterprise support. + + - Support invisible mode for both Google reCAPTCHA v2 and hCaptcha via `configuration({ captcha: { mode: 'invisible' } })`. + - Add `ReCaptchaEnterpriseCallback` handler for AM journeys using the Enterprise CAPTCHA node — renders visible checkbox or score-based invisible flow automatically from callback data. + - Add `resolveGrecaptcha()` helper that prefers `window.grecaptcha.enterprise` and falls back to classic `window.grecaptcha`, keeping existing consumers with migrated keys working without changes. + - Show inline `` on CAPTCHA failure or expiry for invisible modes. + - Fix `renderCaptcha` to accept an optional `elementId` param to avoid DOM id collisions between classic and Enterprise components. + +- [#458](https://github.com/ForgeRock/forgerock-web-login-framework/pull/458) [`b0db37f`](https://github.com/ForgeRock/forgerock-web-login-framework/commit/b0db37f0d7cda840b4748e977e71247cb54bd8d6) Thanks [@SteinGabriel](https://github.com/SteinGabriel)! - Add support for custom callback and stage components. + +- [#450](https://github.com/ForgeRock/forgerock-web-login-framework/pull/450) [`2265fd7`](https://github.com/ForgeRock/forgerock-web-login-framework/commit/2265fd7f77cea57cb0b77f701a4c16e80a9d44f1) Thanks [@SteinGabriel](https://github.com/SteinGabriel)! - Add `TextInputCallback` support in the login widget callback renderer. + + - Map and render `TextInputCallback` using existing text input composition patterns. + - Include callback metadata handling so steps treat `TextInputCallback` as required user input. + - Add Storybook coverage and Playwright E2E coverage for submit flow and TextInput edge cases. + +- [#470](https://github.com/ForgeRock/forgerock-web-login-framework/pull/470) [`b2bec85`](https://github.com/ForgeRock/forgerock-web-login-framework/commit/b2bec85a8187ef4d4621e5215cf779d8faf52763) Thanks [@vatsalparikh](https://github.com/vatsalparikh)! - Autofill with passkeys for Webauthn journeys + +- [#520](https://github.com/ForgeRock/forgerock-web-login-framework/pull/520) [`9355ed1`](https://github.com/ForgeRock/forgerock-web-login-framework/commit/9355ed1e6aea497b47c02c23beb7e80fe00bb440) Thanks [@SteinGabriel](https://github.com/SteinGabriel)! - Add IDM theming support. Consumers can now pass a `theme` object to `configuration({ style: { theme } })` to apply design tokens as CSS custom properties on the widget root. Supports `primaryColor`, `secondaryColor`, `backgroundColor`, `linkColor`, `linkActiveColor`, `fontFamily`, `buttonBorderRadius`, `cardBorderRadius`, `cardBgColor`, `inputBgColor`, `inputBorderColor`, `inputLabelColor`, `inputTextColor`, `inputFocusRingColor`, `selectAccentColor`, `selectHoverBgColor`, `cardTextColor`, `bodyTextColor`, `buttonTextColor`, `buttonFocusRingColor`, `logo`, `logoHeight`, and `primaryOffColor`. The Login App SSR layer fetches theme values from the IDM `/openidm/config/ui/themerealm` endpoint automatically. + +- [#516](https://github.com/ForgeRock/forgerock-web-login-framework/pull/516) [`ad1b599`](https://github.com/ForgeRock/forgerock-web-login-framework/commit/ad1b599dfd2ac2ca586670c2dc3c52c502241591) Thanks [@vatsalparikh](https://github.com/vatsalparikh)! - Add dedicated stage for PingOne AIC admin registration flow (welcome, OTP verify, privacy policy, invalid invite). + +- [#400](https://github.com/ForgeRock/forgerock-web-login-framework/pull/400) [`5f8b168`](https://github.com/ForgeRock/forgerock-web-login-framework/commit/5f8b16811d3a4fd79f7b7f11501a8c6b34f0c119) Thanks [@ryanbas21](https://github.com/ryanbas21)! - Migrate to Svelte 5, pnpm monorepo architecture, and fix published type declarations + + - Upgrade Svelte from v3/v4 to v5 with backward-compatible legacy mode + - Restructure project into pnpm workspaces: `packages/login-widget`, `apps/login-app`, `e2e/`, `core/` + - Fix published type declarations by namespacing core types under `dist/core/` with correct relative paths + - Upgrade Storybook from v7 to v10 + - Replace Rollup with Vite for all builds + - Overhaul CI pipeline for pnpm strict dependency isolation + +- [#471](https://github.com/ForgeRock/forgerock-web-login-framework/pull/471) [`e574fab`](https://github.com/ForgeRock/forgerock-web-login-framework/commit/e574fab429b8137900350d6d74b285b7b32cf670) Thanks [@ryanbas21](https://github.com/ryanbas21)! - Upgrade `zod` from `3.22.4` to `^4.3.6` and `xss` from `1.0.14` to `^1.0.15`. + + - Migrate `core/sdk.config.ts` config schema to Zod v4: replace the removed + `z.function().args().returns()` schema form with `z.custom()` for the + `callbackFactory`, `middleware`, and `tokenStore` function validators; + collapse the `z.nativeEnum(CallbackType)` validator (which was part of the + removed `z.function().args()` chain) into `z.custom()`; collapse + `{ invalid_type_error, required_error }` into the unified `error` + callback. + - Migrate `core/_utilities/i18n.utilities.ts` to the two-argument + `z.record(keySchema, valueSchema)` form required by v4. + - The inferred public config surface (`z.infer`) + is preserved; no behavior change at runtime. + +### Patch Changes + +- [#542](https://github.com/ForgeRock/forgerock-web-login-framework/pull/542) [`d9c12ab`](https://github.com/ForgeRock/forgerock-web-login-framework/commit/d9c12ab4f039e4883aa7c338141b6b6dc02874ff) Thanks [@SteinGabriel](https://github.com/SteinGabriel)! - Fix Alert:Info visual regression (green background in light mode, black background in dark mode) caused by additive CSS `calc()` lightness offsets becoming active once `--tw-colors-*` custom properties were injected by the IDM theming feature. Replaced the three broken additive expressions with multiplicative `calc(var(--l) * factor)` that replicates the `color` library's relative `lighten`/`darken` math correctly for any token value. + +- [#446](https://github.com/ForgeRock/forgerock-web-login-framework/pull/446) [`16d48f3`](https://github.com/ForgeRock/forgerock-web-login-framework/commit/16d48f3a93dc34733e9b6fc410ff50630890ed11) Thanks [@SteinGabriel](https://github.com/SteinGabriel)! - Fix English locale copy: authenticator typo and grammar wording updates. + +- [#489](https://github.com/ForgeRock/forgerock-web-login-framework/pull/489) [`eef8b31`](https://github.com/ForgeRock/forgerock-web-login-framework/commit/eef8b31b713b5f88f06375d76970ad87235bc6ac) Thanks [@vatsalparikh](https://github.com/vatsalparikh)! - Add dedicated MFA enrollment and recovery codes stages for multi-factor setup journeys, including a new `mfa-enrollment.svelte` stage that handles the MFA setup text-output callback script and a `recovery-codes.svelte` stage that displays one-time recovery codes after MFA registration. + +- [#543](https://github.com/ForgeRock/forgerock-web-login-framework/pull/543) [`46fa2c7`](https://github.com/ForgeRock/forgerock-web-login-framework/commit/46fa2c70ff0820b7146c29ef27eed6ec9bb01a2f) Thanks [@vatsalparikh](https://github.com/vatsalparikh)! - Adopt journey-client 2.1: import types from the package instead of deriving them, include login failure type and remove resume() URL-parsing. + ### Bug Fixes - **add loglevel to widget config:** widget config to support loglevel option ([db864e9](https://github.com/forgerock/forgerock-web-login-framework/commit/db864e9964018f0aa3e51cea90c126f2e8800d86)) diff --git a/packages/login-widget/package.json b/packages/login-widget/package.json index 637d2571..d554878d 100644 --- a/packages/login-widget/package.json +++ b/packages/login-widget/package.json @@ -1,6 +1,6 @@ { "name": "@forgerock/login-widget", - "version": "1.3.0", + "version": "2.0.0", "type": "module", "exports": { ".": { @@ -15,7 +15,9 @@ "types": "./dist/index.d.ts", "unpkg": "./dist/widget.iife.js", "jsdelivr": "./dist/widget.iife.js", - "files": ["dist"], + "files": [ + "dist" + ], "repository": { "url": "https://github.com/ForgeRock/forgerock-web-login-framework.git" }, diff --git a/tools/cli/CHANGELOG.md b/tools/cli/CHANGELOG.md new file mode 100644 index 00000000..0177bc94 --- /dev/null +++ b/tools/cli/CHANGELOG.md @@ -0,0 +1,17 @@ +# @forgerock/login-framework-cli + +## 0.1.0 + +### Minor Changes + +- [#464](https://github.com/ForgeRock/forgerock-web-login-framework/pull/464) [`1a8ab4e`](https://github.com/ForgeRock/forgerock-web-login-framework/commit/1a8ab4e763e20c08f77e8ec9b1fa54646a39af6d) Thanks [@SteinGabriel](https://github.com/SteinGabriel)! - Add `ping-lf` CLI tool (`tools/cli/`) for bootstrapping and maintaining Login Framework projects. + + Three commands: + + - `init ` — fetches a GitHub release and scaffolds a new project directory with all necessary configuration, dependencies, and an empty `experimental/custom/` structure ready for `pnpm install`. + - `generate callback|stage ` — scaffolds a new custom callback or stage component from templates, naming files correctly (PascalCase → kebab-case). The framework's Vite plugin picks up the new component automatically on the next build or dev-server reload. + - `update [--version ]` — fetches the target framework release and overwrites core files while preserving `experimental/custom/`, and updates `.generator-version`. + + Installable via `npm install -g @forgerock/login-framework-cli`. + +- [#500](https://github.com/ForgeRock/forgerock-web-login-framework/pull/500) [`5564d04`](https://github.com/ForgeRock/forgerock-web-login-framework/commit/5564d049ac806f80304dca72be0235deb465e1d4) Thanks [@ryanbas21](https://github.com/ryanbas21)! - Add MCP command to the CLI tool for LLM agent harness integration diff --git a/tools/cli/package.json b/tools/cli/package.json index 84859fa3..f06785a4 100644 --- a/tools/cli/package.json +++ b/tools/cli/package.json @@ -1,6 +1,6 @@ { "name": "@forgerock/login-framework-cli", - "version": "0.0.0", + "version": "0.1.0", "description": "CLI tool for scaffolding and managing Ping Login Widget and Login App custom component projects", "type": "module", "exports": { @@ -11,7 +11,9 @@ "bin": { "ping-lf": "./dist/src/main.js" }, - "files": ["dist"], + "files": [ + "dist" + ], "scripts": { "build": "rm -rf dist && tsc -p tsconfig.json && chmod +x dist/src/main.js && ([ -d templates ] && cp -r templates/ dist/src/templates/ || true)", "dev": "tsc --watch", @@ -19,7 +21,15 @@ "test:watch": "vitest", "prepublishOnly": "pnpm build" }, - "keywords": ["ping-identity", "forgerock", "login", "widget", "cli", "generator", "svelte"], + "keywords": [ + "ping-identity", + "forgerock", + "login", + "widget", + "cli", + "generator", + "svelte" + ], "license": "MIT", "repository": { "type": "git",