Skip to content

Recognize callback - #745

Open
eugeniobet-ping wants to merge 3 commits into
mainfrom
recognize-callback-3
Open

Recognize callback#745
eugeniobet-ping wants to merge 3 commits into
mainfrom
recognize-callback-3

Conversation

@eugeniobet-ping

@eugeniobet-ping eugeniobet-ping commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features
    • Added support for PingOne Recognize enrollment and authentication callbacks.
    • Added handling for recognition results, identifiers, errors, and SDK configuration.
    • Added an end-to-end test app covering callback processing and Journey progression.
    • Expanded callback type support and public type exports for PingOne Recognize.

@changeset-bot

changeset-bot Bot commented Aug 4, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 3049a50

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The Journey client now supports PingOne Recognize callbacks. A browser-based end-to-end test collects configuration, runs a Journey, integrates the Recognize SDK, handles callback results, and logs final authentication status.

Changes

PingOne Recognize callback support

Layer / File(s) Summary
Callback contract and factory wiring
packages/sdk-types/src/lib/am-callback.types.ts, packages/journey-client/src/lib/callbacks/..., packages/journey-client/src/types.ts
Adds the callback type, PingOneRecognizeCallback implementation, public export, and factory dispatch.
E2E application startup
e2e/recognize-app/src/index-callback-test.html, e2e/recognize-app/src/index-callback-test.ts
Adds the browser entry page, configuration and credential forms, logging, Journey initialization, and startup handling.
Recognize callback processing
e2e/recognize-app/src/index-callback-test.ts
Initializes the Recognize SDK, handles events and JWT output, updates callback values, processes other callbacks, and logs final status.

Estimated code review effort: 3 (Moderate) | ~30 minutes

Possibly related PRs

Suggested reviewers: ryanbas21

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The pull request has no description and does not provide the required Description section or changeset information. Add a description that explains the Recognize callback changes and states whether a changeset was added.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the main change: adding support for Recognize callbacks.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch recognize-callback-3

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Comment thread packages/recognize/src/lib/recognize.ts Fixed
Comment thread packages/recognize/src/lib/recognize.ts Fixed

@cerebrl cerebrl left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is looking good. We just need some unit tests for the callback, and I'd like to see at least some e2e tests that test at least some portion of this feature. I know we can't fully automate the flow, but, like some of our other tests, can we at least test that the parts that can be automated?

@eugeniobet-ping
eugeniobet-ping marked this pull request as ready for review August 11, 2026 15:52
@nx-cloud

nx-cloud Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

View your CI Pipeline Execution ↗ for commit 3049a50

Command Status Duration Result
nx affected -t build lint test typecheck e2e-ci ✅ Succeeded <1s View ↗

💡 Verify your cache is correct by running tasks in a sandbox. Read docs ↗


☁️ Nx Cloud last updated this comment at 2026-08-11 16:27:58 UTC

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@e2e/recognize-app/src/index-callback-test.ts`:
- Line 147: Remove sensitive values from logging in
e2e/recognize-app/src/index-callback-test.ts: at lines 147, 103, and 112 log
only non-sensitive status or error identifiers instead of callback data, the
full Web SDK configuration, or unfiltered webSDKOptions; at line 221 do not log
the session token. Preserve the existing test behavior while ensuring JWTs,
usernames, transaction data, and session tokens never reach the browser console
or page.
- Around line 151-154: Update the JWT payload decoding in the callback handling
around recognizeCallback.setRecognizeId to treat the token segment as Base64url:
convert URL-safe characters, restore required padding, decode the resulting
bytes as UTF-8, then parse the JSON. Preserve the existing payload.sub logging
and recognize ID assignment behavior.
- Around line 174-187: Update the client.init() handling in the wrapper promise
so a returned RecognizeError populates the client-error inputs and resolves
instead of rejecting or aborting the Journey flow. Ensure client.dispose() runs
in a finally block, allowing journeyClient.next(step) to execute for both
initialization success and failure.

In `@packages/journey-client/src/lib/callbacks/ping-one-recognize-callback.ts`:
- Around line 25-79: Replace the class-based PingOneRecognizeCallback
implementation with a factory function that returns the callback contract’s
operation and accessor methods while preserving the existing payload behavior
and setters. Update the callback factory and related callback type/contract
references to construct and consume the factory result instead of instantiating
PingOneRecognizeCallback, and remove the class dependency from the client
package.

In `@packages/sdk-types/src/lib/am-callback.types.ts`:
- Line 23: Move the runtime callbackType registry containing
PingOneRecognizeCallback out of the *.types.ts module into a non-types runtime
module, then export/import its derived callback type wherever the type contract
is required. Keep the registry values and callback type behavior unchanged, and
ensure am-callback.types.ts contains only type or interface declarations.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 4c890ece-d911-4409-a6db-2a3fd600f6a4

📥 Commits

Reviewing files that changed from the base of the PR and between cd7ab13 and 3049a50.

📒 Files selected for processing (6)
  • e2e/recognize-app/src/index-callback-test.html
  • e2e/recognize-app/src/index-callback-test.ts
  • packages/journey-client/src/lib/callbacks/factory.ts
  • packages/journey-client/src/lib/callbacks/ping-one-recognize-callback.ts
  • packages/journey-client/src/types.ts
  • packages/sdk-types/src/lib/am-callback.types.ts

resolve();
},
complete: (data) => {
log(`[recognize] complete — data: ${JSON.stringify(data)}`);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

Remove authentication data from logs.

The test writes callback configuration, Recognize result data, JWTs, and session tokens to the browser console and page. Log only non-sensitive status and error identifiers.

  • e2e/recognize-app/src/index-callback-test.ts#L147-L147: Do not log data, because it can contain jwt.
  • e2e/recognize-app/src/index-callback-test.ts#L103-L103: Do not log the full Web SDK configuration, because it includes username and transaction data.
  • e2e/recognize-app/src/index-callback-test.ts#L112-L112: Do not log unfiltered webSDKOptions.
  • e2e/recognize-app/src/index-callback-test.ts#L221-L221: Do not log the session token.
📍 Affects 1 file
  • e2e/recognize-app/src/index-callback-test.ts#L147-L147 (this comment)
  • e2e/recognize-app/src/index-callback-test.ts#L103-L103
  • e2e/recognize-app/src/index-callback-test.ts#L112-L112
  • e2e/recognize-app/src/index-callback-test.ts#L221-L221
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@e2e/recognize-app/src/index-callback-test.ts` at line 147, Remove sensitive
values from logging in e2e/recognize-app/src/index-callback-test.ts: at lines
147, 103, and 112 log only non-sensitive status or error identifiers instead of
callback data, the full Web SDK configuration, or unfiltered webSDKOptions; at
line 221 do not log the session token. Preserve the existing test behavior while
ensuring JWTs, usernames, transaction data, and session tokens never reach the
browser console or page.

Comment on lines +151 to +154
const payload = JSON.parse(atob(data.jwt.split('.')[1]));
if (payload.sub) {
log(`[recognize] recognizeId from JWT sub: ${payload.sub}`);
recognizeCallback.setRecognizeId(payload.sub);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Find existing Base64url or JWT decoding helpers before adding another implementation.
rg -n -C 4 --glob '*.{ts,tsx}' 'base64url|base64Url|atob\(|TextDecoder|split\('\''\.'\''\)' packages e2e

Repository: ForgeRock/ping-javascript-sdk

Length of output: 7404


Decode the JWT payload as Base64url. Normalize - and _, restore padding, and decode the bytes as UTF-8 before parsing JSON. Otherwise, valid JWTs can leave recognizeId unset.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@e2e/recognize-app/src/index-callback-test.ts` around lines 151 - 154, Update
the JWT payload decoding in the callback handling around
recognizeCallback.setRecognizeId to treat the token segment as Base64url:
convert URL-safe characters, restore required padding, decode the resulting
bytes as UTF-8, then parse the JSON. Preserve the existing payload.sub logging
and recognize ID assignment behavior.

Comment on lines +174 to +187
.then((err) => {
if (err) {
log(`[recognize] init error: ${err}`);
reject(err);
}
})
.catch((err) => {
log(`[recognize] init threw: ${err}`);
console.error('[recognize] init threw:', err);
reject(err);
});
});

client.dispose();

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🌐 Web query:

For the repository version of @forgerock/recognize, does a client returned by recognize()requiredispose()afterinit() rejects, and which fields are guaranteed on initialization errors?

💡 Result:

In the repository version of @forgerock/recognize, the client returned by recognize does not require a call to dispose if init rejects, because an initialization failure prevents the client from successfully reaching a state that necessitates cleanup [1]. Regarding initialization errors and guaranteed fields: The library utilizes standardized error handling through RecognizeError and RecognizeErrorCode [1]. When the init method fails, it throws a RecognizeError rather than resolving with it [1]. Because the process fails at the point of initialization, the client instance is typically not considered fully established or active, and you should rely on catching the thrown exception to handle the error, rather than inspecting the client object for guaranteed fields [1]. Developers should ensure that their implementation catches this exception to prevent unhandled promise rejections [1]. To prevent potential memory leaks or stale listeners in cases where the client was successfully initialized but later needs to be stopped, you must call dispose [1]. Specifically, ensure that any abort controller used with the client is properly signaled (e.g., calling aborter.abort) during the disposal process to guarantee that all event listeners are cleaned up [1].

Citations:


🏁 Script executed:

#!/bin/bash
set -e
printf '%s\n' '--- target file outline ---'
ast-grep outline e2e/recognize-app/src/index-callback-test.ts 2>/dev/null || true
printf '%s\n' '--- target lines ---'
sed -n '130,240p' e2e/recognize-app/src/index-callback-test.ts
printf '%s\n' '--- recognize imports and API usage ---'
rg -n -C 3 'recognize|client\.init|client\.dispose|journeyClient\.(next|fail)|callback|client-error' e2e/recognize-app/src package.json e2e/recognize-app 2>/dev/null
printf '%s\n' '--- package manifests and lockfile references ---'
rg -n -C 2 '"`@forgerock/recognize`"|`@forgerock/recognize`|ping-javascript-sdk' --glob 'package.json' --glob '*lock*' --glob '*.yaml' --glob '*.yml' .

Repository: ForgeRock/ping-javascript-sdk

Length of output: 42673


🏁 Script executed:

#!/bin/bash
set -e
printf '%s\n' '--- recognize package files ---'
git ls-files packages/recognize
printf '%s\n' '--- recognize package outline ---'
ast-grep outline packages/recognize 2>/dev/null || true
printf '%s\n' '--- init/dispose definitions and references ---'
rg -n -C 5 'class .*Recognize|function recognize|const recognize|init\s*[:=]|dispose\s*[:=]|dispose\(|RecognizeError|errorCode|client-error|setClientError' packages/recognize packages/journey-client

Repository: ForgeRock/ping-javascript-sdk

Length of output: 50387


🏁 Script executed:

#!/bin/bash
set -e
printf '%s\n' '--- recognize implementation ---'
sed -n '34,185p' packages/recognize/src/lib/recognize.ts
printf '%s\n' '--- recognize types and error codes ---'
sed -n '32,145p' packages/recognize/src/lib/recognize.types.ts
cat packages/recognize/src/lib/defs/recognize-error-code.ts
printf '%s\n' '--- initialization-related tests ---'
sed -n '1,180p' packages/recognize/src/lib/recognize.test.ts

Repository: ForgeRock/ping-javascript-sdk

Length of output: 15708


🏁 Script executed:

#!/bin/bash
set -e
python3 - <<'PY'
from pathlib import Path

impl = Path("packages/recognize/src/lib/recognize.ts").read_text()
app = Path("e2e/recognize-app/src/index-callback-test.ts").read_text()

checks = {
    "init_declares_error_union": "Promise<RecognizeError | void>" in impl,
    "init_returns_import_error": "return createRecognizeError(RECOGNIZE_ERROR_CODE.SDK_WEB_ASSEMBLY_IMPORT_FAILED" in impl,
    "init_returns_attach_error": "return createRecognizeError(RECOGNIZE_ERROR_CODE.SDK_ERROR" in impl
        and "invalid element <${tag.toLowerCase()}" in impl,
    "element_created_before_mount_append": impl.index("element = document.createElement(tag);")
        < impl.index("options.container.appendChild(element);"),
    "app_rejects_returned_init_error": ".then((err) =>" in app
        and "if (err)" in app
        and "reject(err);" in app,
    "app_disposes_after_await_only": app.index("client.dispose();")
        > app.index("await new Promise<void>"),
    "app_advances_after_recognize_branch": "step = await journeyClient.next(step);" in app,
}
for name, result in checks.items():
    print(f"{name}: {'PASS' if result else 'FAIL'}")
if not all(checks.values()):
    raise SystemExit(1)
PY

Repository: ForgeRock/ping-javascript-sdk

Length of output: 421


Handle initialization errors without aborting the Journey flow.

client.init() returns a RecognizeError; it does not reject for these failures. Set the client-error inputs, resolve the wrapper promise, and call client.dispose() in finally so journeyClient.next(step) still runs.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@e2e/recognize-app/src/index-callback-test.ts` around lines 174 - 187, Update
the client.init() handling in the wrapper promise so a returned RecognizeError
populates the client-error inputs and resolves instead of rejecting or aborting
the Journey flow. Ensure client.dispose() runs in a finally block, allowing
journeyClient.next(step) to execute for both initialization success and failure.

Comment on lines +25 to +79
export class PingOneRecognizeCallback extends BaseCallback {
constructor(public override payload: Callback) {
super(payload);
}

public getOperationType(): PingOneRecognizeOperationType {
return this.getOutputByName<PingOneRecognizeOperationType>('operationType', 'AUTHENTICATE');
}

public getServiceURL(): string {
return this.getOutputByName<string>('websocketURL', '');
}

public getCustomerName(): string {
return this.getOutputByName<string>('customerName', '');
}

public getUsername(): string {
return this.getOutputByName<string>('username', '');
}

public getTransactionData(): string {
return this.getOutputByName<string>('transactionData', '');
}

public getOptions(): Record<string, unknown> {
return this.getOutputByName<Record<string, unknown>>('webSDKOptions', {});
}

public getWebSDKConfig(): PingOneRecognizeWebSDKConfig {
return {
customer: { name: this.getCustomerName() },
transaction: { data: this.getTransactionData() },
username: this.getUsername(),
ws: { url: this.getServiceURL() },
...this.getOptions(),
};
}

public setSignedJwt(jwt: string): void {
this.setInputValue(jwt, 'IDToken1signedJwt');
}

public setRecognizeId(recognizeId: string): void {
this.setInputValue(recognizeId, 'IDToken1recognizeId');
}

public setClientError(errorMessage: string): void {
this.setInputValue(errorMessage, 'IDToken1clientError');
}

public setClientErrorCode(errorCode: string): void {
this.setInputValue(errorCode, 'IDToken1clientErrorCode');
}
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟠 Major | 🏗️ Heavy lift

Use a factory-created callback implementation instead of a class.

This new client-package implementation introduces PingOneRecognizeCallback as a class. Adapt the callback factory and callback contract so the implementation does not require a class.

As per coding guidelines: "packages/*/src/**/*.{ts,tsx}: Initialize client packages through factory functions; do not use classes or singletons."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/journey-client/src/lib/callbacks/ping-one-recognize-callback.ts`
around lines 25 - 79, Replace the class-based PingOneRecognizeCallback
implementation with a factory function that returns the callback contract’s
operation and accessor methods while preserving the existing payload behavior
and setters. Update the callback factory and related callback type/contract
references to construct and consume the factory result instead of instantiating
PingOneRecognizeCallback, and remove the class dependency from the client
package.

Source: Coding guidelines

PasswordCallback: 'PasswordCallback',
PingOneProtectEvaluationCallback: 'PingOneProtectEvaluationCallback',
PingOneProtectInitializeCallback: 'PingOneProtectInitializeCallback',
PingOneRecognizeCallback: 'PingOneRecognizeCallback',

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟠 Major | 🏗️ Heavy lift

Move callbackType out of this type-contract file.

Line 23 adds runtime code to a *.types.ts file. Move the runtime registry to a non-.types.ts module and import its derived type where needed.

As per coding guidelines: "*.types.ts files may contain only type contracts (type and interface); they must contain no runtime code or enum declarations."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/sdk-types/src/lib/am-callback.types.ts` at line 23, Move the runtime
callbackType registry containing PingOneRecognizeCallback out of the *.types.ts
module into a non-types runtime module, then export/import its derived callback
type wherever the type contract is required. Keep the registry values and
callback type behavior unchanged, and ensure am-callback.types.ts contains only
type or interface declarations.

Source: Coding guidelines

@pkg-pr-new

pkg-pr-new Bot commented Aug 11, 2026

Copy link
Copy Markdown

Open in StackBlitz

@forgerock/davinci-client

pnpm add https://pkg.pr.new/ForgeRock/ping-javascript-sdk/@forgerock/davinci-client@745

@forgerock/device-client

pnpm add https://pkg.pr.new/ForgeRock/ping-javascript-sdk/@forgerock/device-client@745

@forgerock/journey-client

pnpm add https://pkg.pr.new/ForgeRock/ping-javascript-sdk/@forgerock/journey-client@745

@forgerock/oidc-client

pnpm add https://pkg.pr.new/ForgeRock/ping-javascript-sdk/@forgerock/oidc-client@745

@forgerock/protect

pnpm add https://pkg.pr.new/ForgeRock/ping-javascript-sdk/@forgerock/protect@745

@forgerock/recognize

pnpm add https://pkg.pr.new/ForgeRock/ping-javascript-sdk/@forgerock/recognize@745

@forgerock/sdk-types

pnpm add https://pkg.pr.new/ForgeRock/ping-javascript-sdk/@forgerock/sdk-types@745

@forgerock/sdk-utilities

pnpm add https://pkg.pr.new/ForgeRock/ping-javascript-sdk/@forgerock/sdk-utilities@745

@forgerock/iframe-manager

pnpm add https://pkg.pr.new/ForgeRock/ping-javascript-sdk/@forgerock/iframe-manager@745

@forgerock/sdk-logger

pnpm add https://pkg.pr.new/ForgeRock/ping-javascript-sdk/@forgerock/sdk-logger@745

@forgerock/sdk-oidc

pnpm add https://pkg.pr.new/ForgeRock/ping-javascript-sdk/@forgerock/sdk-oidc@745

@forgerock/sdk-request-middleware

pnpm add https://pkg.pr.new/ForgeRock/ping-javascript-sdk/@forgerock/sdk-request-middleware@745

@forgerock/storage

pnpm add https://pkg.pr.new/ForgeRock/ping-javascript-sdk/@forgerock/storage@745

commit: 3049a50

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 36.00000% with 32 lines in your changes missing coverage. Please review.
✅ Project coverage is 70.96%. Comparing base (eafe277) to head (3049a50).
⚠️ Report is 102 commits behind head on main.

Files with missing lines Patch % Lines
...t/src/lib/callbacks/ping-one-recognize-callback.ts 33.33% 30 Missing ⚠️
...ckages/journey-client/src/lib/callbacks/factory.ts 66.66% 1 Missing ⚠️
packages/sdk-types/src/lib/am-callback.types.ts 0.00% 1 Missing ⚠️

❌ Your patch status has failed because the patch coverage (36.00%) is below the target coverage (40.00%). You can increase the patch coverage or adjust the target coverage.

Additional details and impacted files
@@             Coverage Diff             @@
##             main     #745       +/-   ##
===========================================
+ Coverage   18.07%   70.96%   +52.89%     
===========================================
  Files         155      139       -16     
  Lines       24398     7871    -16527     
  Branches     1203     1484      +281     
===========================================
+ Hits         4410     5586     +1176     
+ Misses      19988     2285    -17703     
Files with missing lines Coverage Δ
packages/journey-client/src/types.ts 100.00% <100.00%> (+96.77%) ⬆️
...ckages/journey-client/src/lib/callbacks/factory.ts 98.76% <66.66%> (-1.24%) ⬇️
packages/sdk-types/src/lib/am-callback.types.ts 3.57% <0.00%> (-0.14%) ⬇️
...t/src/lib/callbacks/ping-one-recognize-callback.ts 33.33% <33.33%> (ø)

... and 45 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions

Copy link
Copy Markdown
Contributor

Deployed 235507d to https://ForgeRock.github.io/ping-javascript-sdk/pr-745/235507d460477e375c1b59852a60a70fc532185a branch gh-pages in ForgeRock/ping-javascript-sdk

@github-actions

Copy link
Copy Markdown
Contributor

Interface Mapping Out of Date

The interface_mapping.md document is out of sync with the SDK exports.

Drift report
Extracting legacy SDK exports...
  Found 79 legacy exports
Extracting new SDK exports...
  Found 416 new SDK exports
Parsing interface_mapping.md...
  Found 143 documented mappings

Interface Mapping Drift Report
══════════════════════════════

Missing Callbacks (1)
  ✗ Callback "PingOneRecognizeCallback" from ./types is not documented in Callback Type Mapping

Undocumented New Exports (153)
  ⚠ New SDK export "JourneyClient" from . is not referenced in the documentation
  ⚠ New SDK export "LogLevel" from . is not referenced in the documentation
  ⚠ New SDK export "CustomLogger" from . is not referenced in the documentation
  ⚠ New SDK export "RequestMiddleware" from . is not referenced in the documentation
  ⚠ New SDK export "ActionTypes" from . is not referenced in the documentation
  ⚠ New SDK export "GenericError" from . is not referenced in the documentation
  ⚠ New SDK export "WellknownResponse" from . is not referenced in the documentation
  ⚠ New SDK export "FailedPolicyRequirement" from . is not referenced in the documentation
  ⚠ New SDK export "PolicyParams" from . is not referenced in the documentation
  ⚠ New SDK export "isValidWellknownUrl" from . is not referenced in the documentation
  ⚠ New SDK export "createWellknownError" from . is not referenced in the documentation
  ⚠ New SDK export "DeviceProfileData" from . is not referenced in the documentation
  ⚠ New SDK export "Geolocation" from . is not referenced in the documentation
  ⚠ New SDK export "JourneyResult" from . is not referenced in the documentation
  ⚠ New SDK export "ResolvedServerConfig" from . is not referenced in the documentation
  ⚠ New SDK export "JourneyServerConfig" from . is not referenced in the documentation
  ⚠ New SDK export "JourneyClientConfig" from . is not referenced in the documentation
  ⚠ New SDK export "InternalJourneyClientConfig" from . is not referenced in the documentation
  ⚠ New SDK export "StartParam" from . is not referenced in the documentation
  ⚠ New SDK export "ResumeOptions" from . is not referenced in the documentation
  ⚠ New SDK export "NextOptions" from . is not referenced in the documentation
  ⚠ New SDK export "CallbackFactory" from . is not referenced in the documentation
  ⚠ New SDK export "PingOneRecognizeOperationType" from . is not referenced in the documentation
  ⚠ New SDK export "PingOneRecognizeWebSDKConfig" from . is not referenced in the documentation
  ⚠ New SDK export "PingOneRecognizeCallback" from . is not referenced in the documentation
  ⚠ New SDK export "CollectParameters" from ./device is not referenced in the documentation
  ⚠ New SDK export "DeviceProfileData" from ./device is not referenced in the documentation
  ⚠ New SDK export "Geolocation" from ./device is not referenced in the documentation
  ⚠ New SDK export "ProfileConfigOptions" from ./device is not referenced in the documentation
  ⚠ New SDK export "FailedPolicyRequirement" from ./policy is not referenced in the documentation
  ⚠ New SDK export "QRCodeData" from ./qr-code is not referenced in the documentation
  ⚠ New SDK export "LogLevel" from ./types is not referenced in the documentation
  ⚠ New SDK export "CustomLogger" from ./types is not referenced in the documentation
  ⚠ New SDK export "RequestMiddleware" from ./types is not referenced in the documentation
  ⚠ New SDK export "ActionTypes" from ./types is not referenced in the documentation
  ⚠ New SDK export "GenericError" from ./types is not referenced in the documentation
  ⚠ New SDK export "WellknownResponse" from ./types is not referenced in the documentation
  ⚠ New SDK export "FailedPolicyRequirement" from ./types is not referenced in the documentation
  ⚠ New SDK export "PolicyParams" from ./types is not referenced in the documentation
  ⚠ New SDK export "isValidWellknownUrl" from ./types is not referenced in the documentation
  ⚠ New SDK export "createWellknownError" from ./types is not referenced in the documentation
  ⚠ New SDK export "DeviceProfileData" from ./types is not referenced in the documentation
  ⚠ New SDK export "Geolocation" from ./types is not referenced in the documentation
  ⚠ New SDK export "JourneyResult" from ./types is not referenced in the documentation
  ⚠ New SDK export "ResolvedServerConfig" from ./types is not referenced in the documentation
  ⚠ New SDK export "JourneyClient" from ./types is not referenced in the documentation
  ⚠ New SDK export "JourneyServerConfig" from ./types is not referenced in the documentation
  ⚠ New SDK export "JourneyClientConfig" from ./types is not referenced in the documentation
  ⚠ New SDK export "InternalJourneyClientConfig" from ./types is not referenced in the documentation
  ⚠ New SDK export "StartParam" from ./types is not referenced in the documentation
  ⚠ New SDK export "ResumeOptions" from ./types is not referenced in the documentation
  ⚠ New SDK export "NextOptions" from ./types is not referenced in the documentation
  ⚠ New SDK export "CallbackFactory" from ./types is not referenced in the documentation
  ⚠ New SDK export "PingOneRecognizeOperationType" from ./types is not referenced in the documentation
  ⚠ New SDK export "PingOneRecognizeWebSDKConfig" from ./types is not referenced in the documentation
  ⚠ New SDK export "PingOneRecognizeCallback" from ./types is not referenced in the documentation
  ⚠ New SDK export "OutcomeWithName" from ./webauthn is not referenced in the documentation
  ⚠ New SDK export "AttestationType" from ./webauthn is not referenced in the documentation
  ⚠ New SDK export "UserVerificationType" from ./webauthn is not referenced in the documentation
  ⚠ New SDK export "PushAuthorizationResponse" from . is not referenced in the documentation
  ⚠ New SDK export "GenericError" from . is not referenced in the documentation
  ⚠ New SDK export "WellknownResponse" from . is not referenced in the documentation
  ⚠ New SDK export "ActionTypes" from . is not referenced in the documentation
  ⚠ New SDK export "RequestMiddleware" from . is not referenced in the documentation
  ⚠ New SDK export "CustomLogger" from . is not referenced in the documentation
  ⚠ New SDK export "LogLevel" from . is not referenced in the documentation
  ⚠ New SDK export "StorageConfig" from . is not referenced in the documentation
  ⚠ New SDK export "createClientStore" from . is not referenced in the documentation
  ⚠ New SDK export "OidcClient" from . is not referenced in the documentation
  ⚠ New SDK export "ClientStore" from . is not referenced in the documentation
  ⚠ New SDK export "RootState" from . is not referenced in the documentation
  ⚠ New SDK export "AppDispatch" from . is not referenced in the documentation
  ⚠ New SDK export "RevokeSuccessResult" from . is not referenced in the documentation
  ⚠ New SDK export "RevokeErrorResult" from . is not referenced in the documentation
  ⚠ New SDK export "LogoutSuccessResult" from . is not referenced in the documentation
  ⚠ New SDK export "LogoutErrorResult" from . is not referenced in the documentation
  ⚠ New SDK export "UserInfoResponse" from . is not referenced in the documentation
  ⚠ New SDK export "OidcConfig" from . is not referenced in the documentation
  ⚠ New SDK export "BuildAuthorizationData" from . is not referenced in the documentation
  ⚠ New SDK export "OptionalAuthorizeOptions" from . is not referenced in the documentation
  ⚠ New SDK export "AuthorizeErrorResponse" from . is not referenced in the documentation
  ⚠ New SDK export "AuthorizeSuccessResponse" from . is not referenced in the documentation
  ⚠ New SDK export "AuthorizationSuccess" from . is not referenced in the documentation
  ⚠ New SDK export "AuthorizationError" from . is not referenced in the documentation
  ⚠ New SDK export "TokenExchangeResponse" from . is not referenced in the documentation
  ⚠ New SDK export "TokenExchangeErrorResponse" from . is not referenced in the documentation
  ⚠ New SDK export "TokenRequestOptions" from . is not referenced in the documentation
  ⚠ New SDK export "SessionCheckResponseType" from . is not referenced in the documentation
  ⚠ New SDK export "SessionCheckOptions" from . is not referenced in the documentation
  ⚠ New SDK export "SessionCheckSuccess" from . is not referenced in the documentation
  ⚠ New SDK export "PushAuthorizationResponse" from ./types is not referenced in the documentation
  ⚠ New SDK export "GenericError" from ./types is not referenced in the documentation
  ⚠ New SDK export "WellknownResponse" from ./types is not referenced in the documentation
  ⚠ New SDK export "ActionTypes" from ./types is not referenced in the documentation
  ⚠ New SDK export "RequestMiddleware" from ./types is not referenced in the documentation
  ⚠ New SDK export "CustomLogger" from ./types is not referenced in the documentation
  ⚠ New SDK export "LogLevel" from ./types is not referenced in the documentation
  ⚠ New SDK export "StorageConfig" from ./types is not referenced in the documentation
  ⚠ New SDK export "createClientStore" from ./types is not referenced in the documentation
  ⚠ New SDK export "OidcClient" from ./types is not referenced in the documentation
  ⚠ New SDK export "ClientStore" from ./types is not referenced in the documentation
  ⚠ New SDK export "RootState" from ./types is not referenced in the documentation
  ⚠ New SDK export "AppDispatch" from ./types is not referenced in the documentation
  ⚠ New SDK export "RevokeSuccessResult" from ./types is not referenced in the documentation
  ⚠ New SDK export "RevokeErrorResult" from ./types is not referenced in the documentation
  ⚠ New SDK export "LogoutSuccessResult" from ./types is not referenced in the documentation
  ⚠ New SDK export "LogoutErrorResult" from ./types is not referenced in the documentation
  ⚠ New SDK export "UserInfoResponse" from ./types is not referenced in the documentation
  ⚠ New SDK export "OidcConfig" from ./types is not referenced in the documentation
  ⚠ New SDK export "BuildAuthorizationData" from ./types is not referenced in the documentation
  ⚠ New SDK export "OptionalAuthorizeOptions" from ./types is not referenced in the documentation
  ⚠ New SDK export "AuthorizeErrorResponse" from ./types is not referenced in the documentation
  ⚠ New SDK export "AuthorizeSuccessResponse" from ./types is not referenced in the documentation
  ⚠ New SDK export "AuthorizationSuccess" from ./types is not referenced in the documentation
  ⚠ New SDK export "AuthorizationError" from ./types is not referenced in the documentation
  ⚠ New SDK export "TokenExchangeResponse" from ./types is not referenced in the documentation
  ⚠ New SDK export "TokenExchangeErrorResponse" from ./types is not referenced in the documentation
  ⚠ New SDK export "TokenRequestOptions" from ./types is not referenced in the documentation
  ⚠ New SDK export "SessionCheckResponseType" from ./types is not referenced in the documentation
  ⚠ New SDK export "SessionCheckOptions" from ./types is not referenced in the documentation
  ⚠ New SDK export "SessionCheckSuccess" from ./types is not referenced in the documentation
  ⚠ New SDK export "DeviceClient" from . is not referenced in the documentation
  ⚠ New SDK export "OathDevice" from . is not referenced in the documentation
  ⚠ New SDK export "DeleteOathQuery" from . is not referenced in the documentation
  ⚠ New SDK export "RetrieveOathQuery" from . is not referenced in the documentation
  ⚠ New SDK export "OathResponse" from . is not referenced in the documentation
  ⚠ New SDK export "DeletedOathDevice" from . is not referenced in the documentation
  ⚠ New SDK export "WebAuthnQuery" from . is not referenced in the documentation
  ⚠ New SDK export "WebAuthnBody" from . is not referenced in the documentation
  ⚠ New SDK export "WebAuthnDevice" from . is not referenced in the documentation
  ⚠ New SDK export "UpdatedWebAuthnDevice" from . is not referenced in the documentation
  ⚠ New SDK export "WebAuthnCredential" from . is not referenced in the documentation
  ⚠ New SDK export "GetProfileDevices" from . is not referenced in the documentation
  ⚠ New SDK export "ProfileDevicesQuery" from . is not referenced in the documentation
  ⚠ New SDK export "ProfileDevice" from . is not referenced in the documentation
  ⚠ New SDK export "PushDeviceQuery" from . is not referenced in the documentation
  ⚠ New SDK export "PushDeviceBody" from . is not referenced in the documentation
  ⚠ New SDK export "DeleteDeviceQuery" from . is not referenced in the documentation
  ⚠ New SDK export "DeviceInfoResponse" from . is not referenced in the documentation
  ⚠ New SDK export "DeviceInfo" from . is not referenced in the documentation
  ⚠ New SDK export "PushDevice" from . is not referenced in the documentation
  ⚠ New SDK export "DeletedPushDevice" from . is not referenced in the documentation
  ⚠ New SDK export "GetBoundDevicesQuery" from . is not referenced in the documentation
  ⚠ New SDK export "BoundDeviceQuery" from . is not referenced in the documentation
  ⚠ New SDK export "DeviceResponse" from . is not referenced in the documentation
  ⚠ New SDK export "DeviceMetadata" from . is not referenced in the documentation
  ⚠ New SDK export "Hardware" from . is not referenced in the documentation
  ⚠ New SDK export "Browser" from . is not referenced in the documentation
  ⚠ New SDK export "Bluetooth" from . is not referenced in the documentation
  ⚠ New SDK export "Network" from . is not referenced in the documentation
  ⚠ New SDK export "Telephony" from . is not referenced in the documentation
  ⚠ New SDK export "Metadata" from . is not referenced in the documentation
  ⚠ New SDK export "DeviceProfile" from . is not referenced in the documentation

Summary: 1 error, 153 warnings

To fix, run:

pnpm mapping:generate

Then commit the updated interface_mapping.md.

@github-actions

Copy link
Copy Markdown
Contributor

📦 Bundle Size Analysis

📦 Bundle Size Analysis

🆕 New Packages

🆕 @forgerock/journey-client - 93.9 KB (new)
🆕 @forgerock/journey-client - 0.0 KB (new)
🆕 @forgerock/device-client - 10.0 KB (new)
🆕 @forgerock/device-client - 0.0 KB (new)

📊 Minor Changes

📈 @forgerock/sdk-types - 9.1 KB (+0.0 KB)

➖ No Changes

@forgerock/davinci-client - 56.7 KB
@forgerock/sdk-logger - 1.6 KB
@forgerock/iframe-manager - 3.2 KB
@forgerock/sdk-oidc - 5.7 KB
@forgerock/storage - 1.5 KB
@forgerock/sdk-request-middleware - 4.6 KB
@forgerock/sdk-utilities - 18.6 KB
@forgerock/oidc-client - 35.4 KB
@forgerock/recognize - 4284.4 KB
@forgerock/protect - 144.6 KB


15 packages analyzed • Baseline from latest main build

Legend

🆕 New package
🔺 Size increased
🔻 Size decreased
➖ No change

ℹ️ How bundle sizes are calculated
  • Current Size: Total gzipped size of all files in the package's dist directory
  • Baseline: Comparison against the latest build from the main branch
  • Files included: All build outputs except source maps and TypeScript build cache
  • Exclusions: .map, .tsbuildinfo, and .d.ts.map files

🔄 Updated automatically on each push to this PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants