diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index aac92ab883..b40f53bfd8 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -32,6 +32,9 @@ jobs:
with:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
+ - name: Lint dependency versions
+ run: pnpm syncpack:lint
+
- run: pnpm nx fix-ci
if: always()
diff --git a/.syncpackrc b/.syncpackrc
new file mode 100644
index 0000000000..3234467697
--- /dev/null
+++ b/.syncpackrc
@@ -0,0 +1,12 @@
+{
+ "$schema": "./node_modules/syncpack/schema.json",
+ "source": [
+ "package.json",
+ "packages/*/package.json",
+ "packages/sdk-effects/*/package.json",
+ "packages/utils/*/package.json",
+ "e2e/*/package.json",
+ "tools/*/package.json",
+ "scratchpad/package.json"
+ ]
+}
diff --git a/e2e/am-mock-api/package.json b/e2e/am-mock-api/package.json
index 660bb67c46..504daba382 100644
--- a/e2e/am-mock-api/package.json
+++ b/e2e/am-mock-api/package.json
@@ -16,6 +16,6 @@
"uuid": "^14.0.0"
},
"devDependencies": {
- "@types/express": "^5.0.0"
+ "@types/express": "catalog:"
}
}
diff --git a/e2e/davinci-app/main.ts b/e2e/davinci-app/main.ts
index 119a4dec6e..b895200da4 100644
--- a/e2e/davinci-app/main.ts
+++ b/e2e/davinci-app/main.ts
@@ -6,8 +6,9 @@
*/
import './style.css';
-import { Config, FRUser, TokenManager } from '@forgerock/javascript-sdk';
import { davinci } from '@forgerock/davinci-client';
+import { oidc } from '@forgerock/oidc-client';
+import type { OidcConfig } from '@forgerock/oidc-client/types';
import type {
CustomLogger,
DaVinciConfig,
@@ -85,6 +86,11 @@ const urlParams = new URLSearchParams(window.location.search);
(async () => {
const davinciClient: DavinciClient = await davinci({ config, logger, requestMiddleware });
+ const oidcResult = await oidc({ config: config as OidcConfig });
+ if ('error' in oidcResult) {
+ throw new Error(`Failed to initialize oidc client: ${oidcResult.error}`);
+ }
+ const oidcClient = oidcResult;
const protectApi = protect({ envId: '02fb4743-189a-4bc7-9d6c-a919edfe6447' });
const continueToken = urlParams.get('continueToken');
const formEl = document.getElementById('form') as HTMLFormElement;
@@ -98,10 +104,6 @@ const urlParams = new URLSearchParams(window.location.search);
if (continueToken) {
resumed = await davinciClient.resume({ continueToken });
- } else {
- // the current davinci-config has a slightly
- // different middleware type than the old legacy config
- await Config.setAsync(config as any);
}
function renderComplete() {
@@ -140,25 +142,26 @@ const urlParams = new URLSearchParams(window.location.search);
const tokenBtn = document.getElementById('tokensButton') as HTMLButtonElement;
tokenBtn.addEventListener('click', async () => {
- tokens = await TokenManager.getTokens({ query: { code, state } });
+ tokens = await oidcClient.token.exchange(code, state);
console.log(tokens);
+ const accessTokenValue = tokens && 'accessToken' in tokens ? tokens.accessToken : '';
const tokenPreEl = document.getElementById('accessTokenContainer') as HTMLPreElement;
tokenPreEl.innerHTML = `
${tokens?.accessToken}
+ >${accessTokenValue}
`;
});
const loginBtn = document.getElementById('logoutButton') as HTMLButtonElement;
loginBtn.addEventListener('click', async () => {
- await FRUser.logout({ logoutRedirectUri: `${window.location.origin}/` });
+ await oidcClient.user.logout();
- //window.location.reload();
+ window.location.reload();
});
}
diff --git a/e2e/davinci-app/package.json b/e2e/davinci-app/package.json
index 4dfc5cee73..af986f5398 100644
--- a/e2e/davinci-app/package.json
+++ b/e2e/davinci-app/package.json
@@ -12,7 +12,7 @@
},
"dependencies": {
"@forgerock/davinci-client": "workspace:*",
- "@forgerock/javascript-sdk": "4.7.0",
+ "@forgerock/oidc-client": "workspace:*",
"@forgerock/protect": "workspace:*",
"@forgerock/sdk-logger": "workspace:*"
},
diff --git a/e2e/davinci-app/tsconfig.app.json b/e2e/davinci-app/tsconfig.app.json
index 9027cd9d88..93f398976d 100644
--- a/e2e/davinci-app/tsconfig.app.json
+++ b/e2e/davinci-app/tsconfig.app.json
@@ -18,6 +18,9 @@
{
"path": "../../packages/protect/tsconfig.lib.json"
},
+ {
+ "path": "../../packages/oidc-client/tsconfig.lib.json"
+ },
{
"path": "../../packages/davinci-client/tsconfig.lib.json"
}
diff --git a/e2e/davinci-suites/src/basic.test.ts b/e2e/davinci-suites/src/basic.test.ts
index 1da585de47..43002ae465 100644
--- a/e2e/davinci-suites/src/basic.test.ts
+++ b/e2e/davinci-suites/src/basic.test.ts
@@ -40,14 +40,8 @@ test('Test happy paths on test page', async ({ page }) => {
return true;
}
});
- const signoff = page.waitForResponse((response) => {
- if (response.url().includes('/signoff') && response.status() === 302) {
- return true;
- }
- });
await logoutButton.click();
await revokeCall;
- await signoff;
await expect(page.getByText('Username/Password Form')).toBeVisible();
});
test('ensure query params passed to start are sent off in authorize call', async ({ page }) => {
diff --git a/e2e/device-client-app/package.json b/e2e/device-client-app/package.json
index c0bd8ec3fb..6f73e25b17 100644
--- a/e2e/device-client-app/package.json
+++ b/e2e/device-client-app/package.json
@@ -10,11 +10,11 @@
},
"dependencies": {
"@forgerock/device-client": "workspace:*",
- "@forgerock/javascript-sdk": "4.7.0",
- "effect": "^3.12.7"
+ "@forgerock/javascript-sdk": "catalog:",
+ "effect": "catalog:effect"
},
"devDependencies": {
- "@effect/language-service": "^0.20.0"
+ "@effect/language-service": "catalog:effect"
},
"nx": {
"tags": ["scope:e2e"]
diff --git a/e2e/protect-app/package.json b/e2e/protect-app/package.json
index 8f3c3c8101..46b1b90e2f 100644
--- a/e2e/protect-app/package.json
+++ b/e2e/protect-app/package.json
@@ -11,7 +11,7 @@
"serve": "pnpm nx nxServe"
},
"dependencies": {
- "@forgerock/javascript-sdk": "4.7.0",
+ "@forgerock/javascript-sdk": "catalog:",
"@forgerock/protect": "workspace:*"
},
"nx": {
diff --git a/lefthook.yml b/lefthook.yml
index 812fd13b1d..72758f162f 100644
--- a/lefthook.yml
+++ b/lefthook.yml
@@ -8,6 +8,17 @@ pre-commit:
format:
run: pnpm nx format:write
stage_fixed: true
+ syncpack:
+ glob: >-
+ {package.json,
+ pnpm-workspace.yaml,
+ packages/*/package.json,
+ packages/sdk-effects/*/package.json,
+ packages/utils/*/package.json,
+ e2e/*/package.json,
+ tools/*/package.json,
+ scratchpad/package.json}
+ run: pnpm syncpack:lint
interface-mapping:
glob: >-
{tools/interface-mapping-validator/**/*.ts,
diff --git a/package.json b/package.json
index cf61fc3292..4aebcd122f 100644
--- a/package.json
+++ b/package.json
@@ -35,6 +35,8 @@
"preinstall": "npx only-allow pnpm",
"prepare": "lefthook install",
"serve": "nx serve",
+ "syncpack:lint": "syncpack lint --source 'package.json' --source 'packages/*/package.json' --source 'packages/sdk-effects/*/package.json' --source 'packages/utils/*/package.json' --source 'e2e/*/package.json' --source 'tools/*/package.json' --source 'scratchpad/package.json'",
+ "syncpack:fix": "syncpack fix --source 'package.json' --source 'packages/*/package.json' --source 'packages/sdk-effects/*/package.json' --source 'packages/utils/*/package.json' --source 'e2e/*/package.json' --source 'tools/*/package.json' --source 'scratchpad/package.json'",
"test": "CI=true nx affected:test",
"test:e2e": "CI=true nx affected:e2e",
"verdaccio": "nx local-registry",
@@ -45,7 +47,6 @@
"path": "./node_modules/cz-conventional-changelog"
}
},
- "dependencies": {},
"devDependencies": {
"@changesets/changelog-github": "^0.6.0",
"@changesets/cli": "^2.27.9",
@@ -55,6 +56,7 @@
"@effect/cli": "catalog:effect",
"@eslint/eslintrc": "^3.0.0",
"@eslint/js": "~9.39.0",
+ "@evilmartians/lefthook": "^2.1.4",
"@nx/devkit": "22.6.5",
"@nx/eslint": "22.6.5",
"@nx/eslint-plugin": "22.6.5",
@@ -74,13 +76,13 @@
"@swc/helpers": "0.5.21",
"@types/eslint": "9.6.1",
"@types/estree": "^1.0.1",
- "@types/express": "5.0.6",
+ "@types/express": "catalog:",
"@types/node": "24.9.2",
"@typescript-eslint/eslint-plugin": "^8.45.0",
"@typescript-eslint/parser": "^8.45.0",
"@typescript-eslint/typescript-estree": "8.23.0",
"@typescript-eslint/utils": "^8.13.0",
- "@vitest/coverage-v8": "3.2.4",
+ "@vitest/coverage-v8": "catalog:vitest",
"@vitest/ui": "3.2.4",
"conventional-changelog-conventionalcommits": "^8.0.0",
"cz-conventional-changelog": "^3.3.0",
@@ -92,7 +94,6 @@
"eslint-plugin-playwright": "^2.0.0",
"eslint-plugin-prettier": "^5.2.3",
"fast-check": "^4.0.0",
- "@evilmartians/lefthook": "^2.1.4",
"jiti": "2.6.1",
"jsdom": "27.4.0",
"jsonc-eslint-parser": "^2.1.0",
@@ -103,10 +104,11 @@
"prettier": "^3.2.5",
"shx": "^0.4.0",
"swc-loader": "0.2.7",
+ "syncpack": "^15.0.0",
"ts-node": "10.9.2",
- "tsx": "^4.20.0",
"ts-patch": "3.3.0",
- "tslib": "^2.5.0",
+ "tslib": "catalog:",
+ "tsx": "catalog:",
"typedoc": "^0.27.4",
"typedoc-github-theme": "0.2.1",
"typedoc-plugin-rename-defaults": "^0.7.2",
diff --git a/packages/davinci-client/api-report/davinci-client.api.md b/packages/davinci-client/api-report/davinci-client.api.md
index b2528bf664..b96fc65b97 100644
--- a/packages/davinci-client/api-report/davinci-client.api.md
+++ b/packages/davinci-client/api-report/davinci-client.api.md
@@ -178,7 +178,7 @@ export interface CollectorErrors {
}
// @public (undocumented)
-export type Collectors = FlowCollector | PasswordCollector | TextCollector | SingleSelectCollector | IdpCollector | SubmitCollector | ActionCollector<'ActionCollector'> | SingleValueCollector<'SingleValueCollector'> | MultiSelectCollector | DeviceAuthenticationCollector | DeviceRegistrationCollector | PhoneNumberCollector | ReadOnlyCollector | ValidatedTextCollector | ProtectCollector | PollingCollector | FidoRegistrationCollector | FidoAuthenticationCollector | QrCodeCollector | AgreementCollector | UnknownCollector;
+export type Collectors = FlowCollector | PasswordCollector | TextCollector | SingleSelectCollector | IdpCollector | SubmitCollector | ActionCollector<'ActionCollector'> | SingleValueCollector<'SingleValueCollector'> | MultiSelectCollector | DeviceAuthenticationCollector | DeviceRegistrationCollector | PhoneNumberCollector | PhoneNumberExtensionCollector | ReadOnlyCollector | ValidatedTextCollector | ProtectCollector | PollingCollector | FidoRegistrationCollector | FidoAuthenticationCollector | QrCodeCollector | AgreementCollector | UnknownCollector;
// @public
export type CollectorValueType = T extends {
@@ -212,7 +212,7 @@ export type CollectorValueType = T extends {
} ? string[] : string | string[] | PhoneNumberInputValue | FidoRegistrationInputValue | FidoAuthenticationInputValue;
// @public (undocumented)
-export type ComplexValueFields = DeviceAuthenticationField | DeviceRegistrationField | PhoneNumberField | FidoRegistrationField | FidoAuthenticationField | PollingField;
+export type ComplexValueFields = DeviceAuthenticationField | DeviceRegistrationField | PhoneNumberField | PhoneNumberExtensionField | FidoRegistrationField | FidoAuthenticationField | PollingField;
// @public (undocumented)
export interface ContinueNode {
@@ -267,13 +267,11 @@ export function davinci(input: {
resume: (input: {
continueToken: string;
}) => Promise;
- start: (options?: StartOptions | undefined) => Promise;
+ start: (options?: StartOptions | undefined) => Promise;
update: (collector: T) => Updater;
validate: (collector: SingleValueCollectors | ObjectValueCollectors | MultiValueCollectors | AutoCollectors) => Validator;
- poll: (collector: PollingCollector) => Poller;
+ pollStatus: (collector: PollingCollector) => Poller;
getClient: () => {
- status: "start";
- } | {
action: string;
collectors: Collectors[];
description?: string;
@@ -287,6 +285,8 @@ export function davinci(input: {
status: "error";
} | {
status: "failure";
+ } | {
+ status: "start";
} | {
authorization?: {
code?: string;
@@ -297,7 +297,7 @@ export function davinci(input: {
getCollectors: () => Collectors[];
getError: () => DaVinciError | null;
getErrorCollectors: () => CollectorErrors[];
- getNode: () => ContinueNode | StartNode | ErrorNode | FailureNode | SuccessNode;
+ getNode: () => ContinueNode | ErrorNode | FailureNode | StartNode | SuccessNode;
getServer: () => {
_links?: Links;
id?: string;
@@ -306,8 +306,6 @@ export function davinci(input: {
href?: string;
eventName?: string;
status: "continue";
- } | {
- status: "start";
} | {
_links?: Links;
eventName?: string;
@@ -323,6 +321,8 @@ export function davinci(input: {
interactionId?: string;
interactionToken?: string;
status: "failure";
+ } | {
+ status: "start";
} | {
_links?: Links;
eventName?: string;
@@ -1035,7 +1035,7 @@ export type InferNoValueCollectorType = T exten
export type InferSingleValueCollectorType = T extends 'TextCollector' ? TextCollector : T extends 'SingleSelectCollector' ? SingleSelectCollector : T extends 'ValidatedTextCollector' ? ValidatedTextCollector : T extends 'PasswordCollector' ? PasswordCollector : SingleValueCollectorWithValue<'SingleValueCollector'> | SingleValueCollectorNoValue<'SingleValueCollector'>;
// @public (undocumented)
-export type InferValueObjectCollectorType = T extends 'DeviceAuthenticationCollector' ? DeviceAuthenticationCollector : T extends 'DeviceRegistrationCollector' ? DeviceRegistrationCollector : T extends 'PhoneNumberCollector' ? PhoneNumberCollector : ObjectOptionsCollectorWithObjectValue<'ObjectValueCollector'> | ObjectOptionsCollectorWithStringValue<'ObjectValueCollector'>;
+export type InferValueObjectCollectorType = T extends 'DeviceAuthenticationCollector' ? DeviceAuthenticationCollector : T extends 'DeviceRegistrationCollector' ? DeviceRegistrationCollector : T extends 'PhoneNumberCollector' ? PhoneNumberCollector : T extends 'PhoneNumberExtensionCollector' ? PhoneNumberExtensionCollector : ObjectOptionsCollectorWithObjectValue<'ObjectValueCollector'> | ObjectOptionsCollectorWithStringValue<'ObjectValueCollector'>;
// @public (undocumented)
export type InitFlow = () => Promise;
@@ -1170,8 +1170,8 @@ value: Record;
}, string>;
// @public
-export const nodeCollectorReducer: Reducer<(TextCollector | SingleSelectCollector | ValidatedTextCollector | PasswordCollector | MultiSelectCollector | DeviceAuthenticationCollector | DeviceRegistrationCollector | PhoneNumberCollector | IdpCollector | SubmitCollector | FlowCollector | QrCodeCollectorBase | AgreementCollector | ReadOnlyCollector | UnknownCollector | ProtectCollector | FidoRegistrationCollector | FidoAuthenticationCollector | PollingCollector | ActionCollector<"ActionCollector"> | SingleValueCollector<"SingleValueCollector">)[]> & {
- getInitialState: () => (TextCollector | SingleSelectCollector | ValidatedTextCollector | PasswordCollector | MultiSelectCollector | DeviceAuthenticationCollector | DeviceRegistrationCollector | PhoneNumberCollector | IdpCollector | SubmitCollector | FlowCollector | QrCodeCollectorBase | AgreementCollector | ReadOnlyCollector | UnknownCollector | ProtectCollector | FidoRegistrationCollector | FidoAuthenticationCollector | PollingCollector | ActionCollector<"ActionCollector"> | SingleValueCollector<"SingleValueCollector">)[];
+export const nodeCollectorReducer: Reducer<(TextCollector | SingleSelectCollector | ValidatedTextCollector | PasswordCollector | MultiSelectCollector | PhoneNumberExtensionCollector | DeviceAuthenticationCollector | DeviceRegistrationCollector | PhoneNumberCollector | IdpCollector | SubmitCollector | FlowCollector | QrCodeCollectorBase | AgreementCollector | ReadOnlyCollector | UnknownCollector | ProtectCollector | FidoRegistrationCollector | FidoAuthenticationCollector | PollingCollector | ActionCollector<"ActionCollector"> | SingleValueCollector<"SingleValueCollector">)[]> & {
+ getInitialState: () => (TextCollector | SingleSelectCollector | ValidatedTextCollector | PasswordCollector | MultiSelectCollector | PhoneNumberExtensionCollector | DeviceAuthenticationCollector | DeviceRegistrationCollector | PhoneNumberCollector | IdpCollector | SubmitCollector | FlowCollector | QrCodeCollectorBase | AgreementCollector | ReadOnlyCollector | UnknownCollector | ProtectCollector | FidoRegistrationCollector | FidoAuthenticationCollector | PollingCollector | ActionCollector<"ActionCollector"> | SingleValueCollector<"SingleValueCollector">)[];
};
// @public (undocumented)
@@ -1283,10 +1283,10 @@ export type ObjectValueAutoCollectorTypes = 'ObjectValueAutoCollector' | 'FidoRe
export type ObjectValueCollector = ObjectOptionsCollectorWithObjectValue | ObjectOptionsCollectorWithStringValue | ObjectValueCollectorWithObjectValue;
// @public (undocumented)
-export type ObjectValueCollectors = DeviceAuthenticationCollector | DeviceRegistrationCollector | PhoneNumberCollector | ObjectOptionsCollectorWithObjectValue<'ObjectSelectCollector'> | ObjectOptionsCollectorWithStringValue<'ObjectSelectCollector'>;
+export type ObjectValueCollectors = DeviceAuthenticationCollector | DeviceRegistrationCollector | PhoneNumberCollector | PhoneNumberExtensionCollector | ObjectOptionsCollectorWithObjectValue<'ObjectSelectCollector'> | ObjectOptionsCollectorWithStringValue<'ObjectSelectCollector'>;
// @public
-export type ObjectValueCollectorTypes = 'DeviceAuthenticationCollector' | 'DeviceRegistrationCollector' | 'PhoneNumberCollector' | 'ObjectOptionsCollector' | 'ObjectValueCollector' | 'ObjectSelectCollector';
+export type ObjectValueCollectorTypes = 'DeviceAuthenticationCollector' | 'DeviceRegistrationCollector' | 'PhoneNumberCollector' | 'PhoneNumberExtensionCollector' | 'ObjectOptionsCollector' | 'ObjectValueCollector' | 'ObjectSelectCollector';
// @public (undocumented)
export interface ObjectValueCollectorWithObjectValue, OV = Record> {
@@ -1328,13 +1328,68 @@ export type PasswordCollector = SingleValueCollectorNoValue<'PasswordCollector'>
// @public (undocumented)
export type PhoneNumberCollector = ObjectValueCollectorWithObjectValue<'PhoneNumberCollector', PhoneNumberInputValue, PhoneNumberOutputValue>;
+// @public (undocumented)
+export interface PhoneNumberExtensionCollector {
+ // (undocumented)
+ category: 'ObjectValueCollector';
+ // (undocumented)
+ error: string | null;
+ // (undocumented)
+ id: string;
+ // (undocumented)
+ input: {
+ key: string;
+ value: PhoneNumberExtensionInputValue;
+ type: string;
+ validation: (ValidationRequired | ValidationPhoneNumber)[] | null;
+ };
+ // (undocumented)
+ name: string;
+ // (undocumented)
+ output: {
+ key: string;
+ label: string;
+ type: string;
+ extensionLabel: string;
+ value: PhoneNumberExtensionOutputValue;
+ };
+ // (undocumented)
+ type: 'PhoneNumberExtensionCollector';
+}
+
+// @public (undocumented)
+export type PhoneNumberExtensionField = PhoneNumberField & {
+ showExtension: boolean;
+ extensionLabel: string;
+};
+
+// @public (undocumented)
+export interface PhoneNumberExtensionInputValue {
+ // (undocumented)
+ countryCode: string;
+ // (undocumented)
+ extension: string;
+ // (undocumented)
+ phoneNumber: string;
+}
+
+// @public (undocumented)
+export interface PhoneNumberExtensionOutputValue {
+ // (undocumented)
+ countryCode?: string;
+ // (undocumented)
+ extension?: string;
+ // (undocumented)
+ phoneNumber?: string;
+}
+
// @public (undocumented)
export type PhoneNumberField = {
type: 'PHONE_NUMBER';
key: string;
label: string;
- defaultCountryCode: string | null;
required: boolean;
+ defaultCountryCode: string | null;
validatePhoneNumber: boolean;
};
@@ -1724,7 +1779,7 @@ export type UnknownField = Record;
// @public (undocumented)
export const updateCollectorValues: ActionCreatorWithPayload< {
id: string;
-value: string | string[] | PhoneNumberInputValue | FidoRegistrationInputValue | FidoAuthenticationInputValue;
+value: string | string[] | PhoneNumberInputValue | PhoneNumberExtensionInputValue | FidoRegistrationInputValue | FidoAuthenticationInputValue;
index?: number;
}, string>;
diff --git a/packages/davinci-client/api-report/davinci-client.types.api.md b/packages/davinci-client/api-report/davinci-client.types.api.md
index 2321431a0a..78e36b50a9 100644
--- a/packages/davinci-client/api-report/davinci-client.types.api.md
+++ b/packages/davinci-client/api-report/davinci-client.types.api.md
@@ -178,7 +178,7 @@ export interface CollectorErrors {
}
// @public (undocumented)
-export type Collectors = FlowCollector | PasswordCollector | TextCollector | SingleSelectCollector | IdpCollector | SubmitCollector | ActionCollector<'ActionCollector'> | SingleValueCollector<'SingleValueCollector'> | MultiSelectCollector | DeviceAuthenticationCollector | DeviceRegistrationCollector | PhoneNumberCollector | ReadOnlyCollector | ValidatedTextCollector | ProtectCollector | PollingCollector | FidoRegistrationCollector | FidoAuthenticationCollector | QrCodeCollector | AgreementCollector | UnknownCollector;
+export type Collectors = FlowCollector | PasswordCollector | TextCollector | SingleSelectCollector | IdpCollector | SubmitCollector | ActionCollector<'ActionCollector'> | SingleValueCollector<'SingleValueCollector'> | MultiSelectCollector | DeviceAuthenticationCollector | DeviceRegistrationCollector | PhoneNumberCollector | PhoneNumberExtensionCollector | ReadOnlyCollector | ValidatedTextCollector | ProtectCollector | PollingCollector | FidoRegistrationCollector | FidoAuthenticationCollector | QrCodeCollector | AgreementCollector | UnknownCollector;
// @public
export type CollectorValueType = T extends {
@@ -212,7 +212,7 @@ export type CollectorValueType = T extends {
} ? string[] : string | string[] | PhoneNumberInputValue | FidoRegistrationInputValue | FidoAuthenticationInputValue;
// @public (undocumented)
-export type ComplexValueFields = DeviceAuthenticationField | DeviceRegistrationField | PhoneNumberField | FidoRegistrationField | FidoAuthenticationField | PollingField;
+export type ComplexValueFields = DeviceAuthenticationField | DeviceRegistrationField | PhoneNumberField | PhoneNumberExtensionField | FidoRegistrationField | FidoAuthenticationField | PollingField;
// @public (undocumented)
export interface ContinueNode {
@@ -267,13 +267,11 @@ export function davinci(input: {
resume: (input: {
continueToken: string;
}) => Promise;
- start: (options?: StartOptions | undefined) => Promise;
+ start: (options?: StartOptions | undefined) => Promise;
update: (collector: T) => Updater;
validate: (collector: SingleValueCollectors | ObjectValueCollectors | MultiValueCollectors | AutoCollectors) => Validator;
- poll: (collector: PollingCollector) => Poller;
+ pollStatus: (collector: PollingCollector) => Poller;
getClient: () => {
- status: "start";
- } | {
action: string;
collectors: Collectors[];
description?: string;
@@ -287,6 +285,8 @@ export function davinci(input: {
status: "error";
} | {
status: "failure";
+ } | {
+ status: "start";
} | {
authorization?: {
code?: string;
@@ -297,7 +297,7 @@ export function davinci(input: {
getCollectors: () => Collectors[];
getError: () => DaVinciError | null;
getErrorCollectors: () => CollectorErrors[];
- getNode: () => ContinueNode | StartNode | ErrorNode | FailureNode | SuccessNode;
+ getNode: () => ContinueNode | ErrorNode | FailureNode | StartNode | SuccessNode;
getServer: () => {
_links?: Links;
id?: string;
@@ -306,8 +306,6 @@ export function davinci(input: {
href?: string;
eventName?: string;
status: "continue";
- } | {
- status: "start";
} | {
_links?: Links;
eventName?: string;
@@ -323,6 +321,8 @@ export function davinci(input: {
interactionId?: string;
interactionToken?: string;
status: "failure";
+ } | {
+ status: "start";
} | {
_links?: Links;
eventName?: string;
@@ -1032,7 +1032,7 @@ export type InferNoValueCollectorType = T exten
export type InferSingleValueCollectorType = T extends 'TextCollector' ? TextCollector : T extends 'SingleSelectCollector' ? SingleSelectCollector : T extends 'ValidatedTextCollector' ? ValidatedTextCollector : T extends 'PasswordCollector' ? PasswordCollector : SingleValueCollectorWithValue<'SingleValueCollector'> | SingleValueCollectorNoValue<'SingleValueCollector'>;
// @public (undocumented)
-export type InferValueObjectCollectorType = T extends 'DeviceAuthenticationCollector' ? DeviceAuthenticationCollector : T extends 'DeviceRegistrationCollector' ? DeviceRegistrationCollector : T extends 'PhoneNumberCollector' ? PhoneNumberCollector : ObjectOptionsCollectorWithObjectValue<'ObjectValueCollector'> | ObjectOptionsCollectorWithStringValue<'ObjectValueCollector'>;
+export type InferValueObjectCollectorType = T extends 'DeviceAuthenticationCollector' ? DeviceAuthenticationCollector : T extends 'DeviceRegistrationCollector' ? DeviceRegistrationCollector : T extends 'PhoneNumberCollector' ? PhoneNumberCollector : T extends 'PhoneNumberExtensionCollector' ? PhoneNumberExtensionCollector : ObjectOptionsCollectorWithObjectValue<'ObjectValueCollector'> | ObjectOptionsCollectorWithStringValue<'ObjectValueCollector'>;
// @public (undocumented)
export type InitFlow = () => Promise;
@@ -1167,8 +1167,8 @@ value: Record;
}, string>;
// @public
-export const nodeCollectorReducer: Reducer<(TextCollector | SingleSelectCollector | ValidatedTextCollector | PasswordCollector | MultiSelectCollector | DeviceAuthenticationCollector | DeviceRegistrationCollector | PhoneNumberCollector | IdpCollector | SubmitCollector | FlowCollector | QrCodeCollectorBase | AgreementCollector | ReadOnlyCollector | UnknownCollector | ProtectCollector | FidoRegistrationCollector | FidoAuthenticationCollector | PollingCollector | ActionCollector<"ActionCollector"> | SingleValueCollector<"SingleValueCollector">)[]> & {
- getInitialState: () => (TextCollector | SingleSelectCollector | ValidatedTextCollector | PasswordCollector | MultiSelectCollector | DeviceAuthenticationCollector | DeviceRegistrationCollector | PhoneNumberCollector | IdpCollector | SubmitCollector | FlowCollector | QrCodeCollectorBase | AgreementCollector | ReadOnlyCollector | UnknownCollector | ProtectCollector | FidoRegistrationCollector | FidoAuthenticationCollector | PollingCollector | ActionCollector<"ActionCollector"> | SingleValueCollector<"SingleValueCollector">)[];
+export const nodeCollectorReducer: Reducer<(TextCollector | SingleSelectCollector | ValidatedTextCollector | PasswordCollector | MultiSelectCollector | PhoneNumberExtensionCollector | DeviceAuthenticationCollector | DeviceRegistrationCollector | PhoneNumberCollector | IdpCollector | SubmitCollector | FlowCollector | QrCodeCollectorBase | AgreementCollector | ReadOnlyCollector | UnknownCollector | ProtectCollector | FidoRegistrationCollector | FidoAuthenticationCollector | PollingCollector | ActionCollector<"ActionCollector"> | SingleValueCollector<"SingleValueCollector">)[]> & {
+ getInitialState: () => (TextCollector | SingleSelectCollector | ValidatedTextCollector | PasswordCollector | MultiSelectCollector | PhoneNumberExtensionCollector | DeviceAuthenticationCollector | DeviceRegistrationCollector | PhoneNumberCollector | IdpCollector | SubmitCollector | FlowCollector | QrCodeCollectorBase | AgreementCollector | ReadOnlyCollector | UnknownCollector | ProtectCollector | FidoRegistrationCollector | FidoAuthenticationCollector | PollingCollector | ActionCollector<"ActionCollector"> | SingleValueCollector<"SingleValueCollector">)[];
};
// @public (undocumented)
@@ -1280,10 +1280,10 @@ export type ObjectValueAutoCollectorTypes = 'ObjectValueAutoCollector' | 'FidoRe
export type ObjectValueCollector = ObjectOptionsCollectorWithObjectValue | ObjectOptionsCollectorWithStringValue | ObjectValueCollectorWithObjectValue;
// @public (undocumented)
-export type ObjectValueCollectors = DeviceAuthenticationCollector | DeviceRegistrationCollector | PhoneNumberCollector | ObjectOptionsCollectorWithObjectValue<'ObjectSelectCollector'> | ObjectOptionsCollectorWithStringValue<'ObjectSelectCollector'>;
+export type ObjectValueCollectors = DeviceAuthenticationCollector | DeviceRegistrationCollector | PhoneNumberCollector | PhoneNumberExtensionCollector | ObjectOptionsCollectorWithObjectValue<'ObjectSelectCollector'> | ObjectOptionsCollectorWithStringValue<'ObjectSelectCollector'>;
// @public
-export type ObjectValueCollectorTypes = 'DeviceAuthenticationCollector' | 'DeviceRegistrationCollector' | 'PhoneNumberCollector' | 'ObjectOptionsCollector' | 'ObjectValueCollector' | 'ObjectSelectCollector';
+export type ObjectValueCollectorTypes = 'DeviceAuthenticationCollector' | 'DeviceRegistrationCollector' | 'PhoneNumberCollector' | 'PhoneNumberExtensionCollector' | 'ObjectOptionsCollector' | 'ObjectValueCollector' | 'ObjectSelectCollector';
// @public (undocumented)
export interface ObjectValueCollectorWithObjectValue, OV = Record> {
@@ -1325,13 +1325,68 @@ export type PasswordCollector = SingleValueCollectorNoValue<'PasswordCollector'>
// @public (undocumented)
export type PhoneNumberCollector = ObjectValueCollectorWithObjectValue<'PhoneNumberCollector', PhoneNumberInputValue, PhoneNumberOutputValue>;
+// @public (undocumented)
+export interface PhoneNumberExtensionCollector {
+ // (undocumented)
+ category: 'ObjectValueCollector';
+ // (undocumented)
+ error: string | null;
+ // (undocumented)
+ id: string;
+ // (undocumented)
+ input: {
+ key: string;
+ value: PhoneNumberExtensionInputValue;
+ type: string;
+ validation: (ValidationRequired | ValidationPhoneNumber)[] | null;
+ };
+ // (undocumented)
+ name: string;
+ // (undocumented)
+ output: {
+ key: string;
+ label: string;
+ type: string;
+ extensionLabel: string;
+ value: PhoneNumberExtensionOutputValue;
+ };
+ // (undocumented)
+ type: 'PhoneNumberExtensionCollector';
+}
+
+// @public (undocumented)
+export type PhoneNumberExtensionField = PhoneNumberField & {
+ showExtension: boolean;
+ extensionLabel: string;
+};
+
+// @public (undocumented)
+export interface PhoneNumberExtensionInputValue {
+ // (undocumented)
+ countryCode: string;
+ // (undocumented)
+ extension: string;
+ // (undocumented)
+ phoneNumber: string;
+}
+
+// @public (undocumented)
+export interface PhoneNumberExtensionOutputValue {
+ // (undocumented)
+ countryCode?: string;
+ // (undocumented)
+ extension?: string;
+ // (undocumented)
+ phoneNumber?: string;
+}
+
// @public (undocumented)
export type PhoneNumberField = {
type: 'PHONE_NUMBER';
key: string;
label: string;
- defaultCountryCode: string | null;
required: boolean;
+ defaultCountryCode: string | null;
validatePhoneNumber: boolean;
};
@@ -1721,7 +1776,7 @@ export type UnknownField = Record;
// @public (undocumented)
export const updateCollectorValues: ActionCreatorWithPayload< {
id: string;
-value: string | string[] | PhoneNumberInputValue | FidoRegistrationInputValue | FidoAuthenticationInputValue;
+value: string | string[] | PhoneNumberInputValue | PhoneNumberExtensionInputValue | FidoRegistrationInputValue | FidoAuthenticationInputValue;
index?: number;
}, string>;
diff --git a/packages/device-client/package.json b/packages/device-client/package.json
index 87ede1aaaa..37aa54b4a1 100644
--- a/packages/device-client/package.json
+++ b/packages/device-client/package.json
@@ -27,7 +27,7 @@
"test:watch": "pnpm nx nxTest --watch"
},
"dependencies": {
- "@forgerock/javascript-sdk": "4.7.0",
+ "@forgerock/javascript-sdk": "catalog:",
"@reduxjs/toolkit": "catalog:"
},
"devDependencies": {
diff --git a/packages/journey-client/package.json b/packages/journey-client/package.json
index 99076ebee4..d73f14fd49 100644
--- a/packages/journey-client/package.json
+++ b/packages/journey-client/package.json
@@ -39,7 +39,7 @@
"@forgerock/sdk-utilities": "workspace:*",
"@forgerock/storage": "workspace:*",
"@reduxjs/toolkit": "catalog:",
- "tslib": "^2.3.0"
+ "tslib": "catalog:"
},
"devDependencies": {
"@vitest/coverage-v8": "catalog:vitest",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index babd5d7de7..564e928d9c 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -6,15 +6,27 @@ settings:
catalogs:
default:
+ '@forgerock/javascript-sdk':
+ specifier: 4.9.0
+ version: 4.9.0
'@reduxjs/toolkit':
specifier: ^2.8.2
version: 2.10.1
+ '@types/express':
+ specifier: 5.0.6
+ version: 5.0.6
immer:
specifier: ^10.1.1
version: 10.2.0
msw:
specifier: ^2.5.1
version: 2.12.1
+ tslib:
+ specifier: ^2.5.0
+ version: 2.8.1
+ tsx:
+ specifier: 4.21.0
+ version: 4.21.0
effect:
'@effect/cli':
specifier: ^0.69.0
@@ -115,10 +127,10 @@ importers:
version: 22.6.5(@babel/traverse@7.28.5)(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21))(@types/node@24.9.2)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.39.4(jiti@2.6.1))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21)))(ts-node@10.9.2(@swc/core@1.15.30(@swc/helpers@0.5.21))(@types/node@24.9.2)(typescript@5.8.3))(typescript@5.8.3)(verdaccio@6.5.2(typanion@3.14.0))
'@nx/vite':
specifier: 22.6.5
- version: 22.6.5(@babel/traverse@7.28.5)(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21)))(typescript@5.8.3)(verdaccio@6.5.2(typanion@3.14.0))(vite@7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1))(vitest@3.2.4)
+ version: 22.6.5(@babel/traverse@7.28.5)(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21)))(typescript@5.8.3)(verdaccio@6.5.2(typanion@3.14.0))(vite@7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.1))(vitest@3.2.4)
'@nx/vitest':
specifier: 22.6.5
- version: 22.6.5(@babel/traverse@7.28.5)(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21)))(typescript@5.8.3)(verdaccio@6.5.2(typanion@3.14.0))(vite@7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1))(vitest@3.2.4)
+ version: 22.6.5(@babel/traverse@7.28.5)(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21)))(typescript@5.8.3)(verdaccio@6.5.2(typanion@3.14.0))(vite@7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.1))(vitest@3.2.4)
'@nx/web':
specifier: 22.6.5
version: 22.6.5(@babel/traverse@7.28.5)(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21)))(verdaccio@6.5.2(typanion@3.14.0))
@@ -147,7 +159,7 @@ importers:
specifier: ^1.0.1
version: 1.0.8
'@types/express':
- specifier: 5.0.6
+ specifier: 'catalog:'
version: 5.0.6
'@types/node':
specifier: 24.9.2
@@ -165,7 +177,7 @@ importers:
specifier: ^8.13.0
version: 8.46.3(eslint@9.39.4(jiti@2.6.1))(typescript@5.8.3)
'@vitest/coverage-v8':
- specifier: 3.2.4
+ specifier: catalog:vitest
version: 3.2.4(vitest@3.2.4)
'@vitest/ui':
specifier: 3.2.4
@@ -230,6 +242,9 @@ importers:
swc-loader:
specifier: 0.2.7
version: 0.2.7(@swc/core@1.15.30(@swc/helpers@0.5.21))(webpack@5.102.1(@swc/core@1.15.30(@swc/helpers@0.5.21)))
+ syncpack:
+ specifier: ^15.0.0
+ version: 15.0.0
ts-node:
specifier: 10.9.2
version: 10.9.2(@swc/core@1.15.30(@swc/helpers@0.5.21))(@types/node@24.9.2)(typescript@5.8.3)
@@ -237,11 +252,11 @@ importers:
specifier: 3.3.0
version: 3.3.0
tslib:
- specifier: ^2.5.0
+ specifier: 'catalog:'
version: 2.8.1
tsx:
- specifier: ^4.20.0
- version: 4.20.6
+ specifier: 'catalog:'
+ version: 4.21.0
typedoc:
specifier: ^0.27.4
version: 0.27.9(typescript@5.8.3)
@@ -262,10 +277,10 @@ importers:
version: 6.5.2(typanion@3.14.0)
vite:
specifier: catalog:vite
- version: 7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1)
+ version: 7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.1)
vitest:
specifier: catalog:vitest
- version: 3.2.4(@types/node@24.9.2)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@1.8.0))(msw@2.12.1(@types/node@24.9.2)(typescript@5.8.3))(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1)
+ version: 3.2.4(@types/node@24.9.2)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@1.8.0))(msw@2.12.1(@types/node@24.9.2)(typescript@5.8.3))(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.1)
vitest-canvas-mock:
specifier: catalog:vitest
version: 1.1.3(vitest@3.2.4)
@@ -292,17 +307,17 @@ importers:
version: 14.0.0
devDependencies:
'@types/express':
- specifier: ^5.0.0
- version: 5.0.5
+ specifier: 'catalog:'
+ version: 5.0.6
e2e/davinci-app:
dependencies:
'@forgerock/davinci-client':
specifier: workspace:*
version: link:../../packages/davinci-client
- '@forgerock/javascript-sdk':
- specifier: 4.7.0
- version: 4.7.0
+ '@forgerock/oidc-client':
+ specifier: workspace:*
+ version: link:../../packages/oidc-client
'@forgerock/protect':
specifier: workspace:*
version: link:../../packages/protect
@@ -318,15 +333,15 @@ importers:
specifier: workspace:*
version: link:../../packages/device-client
'@forgerock/javascript-sdk':
- specifier: 4.7.0
- version: 4.7.0
+ specifier: 'catalog:'
+ version: 4.9.0
effect:
- specifier: ^3.12.7
+ specifier: catalog:effect
version: 3.20.0
devDependencies:
'@effect/language-service':
- specifier: ^0.20.0
- version: 0.20.1
+ specifier: catalog:effect
+ version: 0.35.2
e2e/journey-app:
dependencies:
@@ -402,8 +417,8 @@ importers:
e2e/protect-app:
dependencies:
'@forgerock/javascript-sdk':
- specifier: 4.7.0
- version: 4.7.0
+ specifier: 'catalog:'
+ version: 4.9.0
'@forgerock/protect':
specifier: workspace:*
version: link:../../packages/protect
@@ -450,8 +465,8 @@ importers:
packages/device-client:
dependencies:
'@forgerock/javascript-sdk':
- specifier: 4.7.0
- version: 4.7.0
+ specifier: 'catalog:'
+ version: 4.9.0
'@reduxjs/toolkit':
specifier: 'catalog:'
version: 2.10.1
@@ -484,7 +499,7 @@ importers:
specifier: 'catalog:'
version: 2.10.1
tslib:
- specifier: ^2.3.0
+ specifier: 'catalog:'
version: 2.8.1
devDependencies:
'@vitest/coverage-v8':
@@ -579,7 +594,7 @@ importers:
specifier: 17.2.3
version: 17.2.3
tsx:
- specifier: 4.21.0
+ specifier: 'catalog:'
version: 4.21.0
tools/api-report:
@@ -588,8 +603,8 @@ importers:
specifier: ^7.52.8
version: 7.58.2(@types/node@24.9.2)
tsx:
- specifier: ^4.20.0
- version: 4.20.6
+ specifier: 'catalog:'
+ version: 4.21.0
tools/interface-mapping-validator:
dependencies:
@@ -597,14 +612,14 @@ importers:
specifier: ^28.0.0
version: 28.0.0
tsx:
- specifier: ^4.20.0
- version: 4.20.6
+ specifier: 'catalog:'
+ version: 4.21.0
vitest:
specifier: catalog:vitest
- version: 3.2.4(@types/node@24.9.2)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@1.8.0))(msw@2.12.1(@types/node@24.9.2)(typescript@5.9.3))(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1)
+ version: 3.2.4(@types/node@24.9.2)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@1.8.0))(msw@2.12.1(@types/node@24.9.2)(typescript@5.9.3))(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.1)
devDependencies:
'@forgerock/javascript-sdk':
- specifier: 4.9.0
+ specifier: 'catalog:'
version: 4.9.0
tools/release:
@@ -1510,9 +1525,6 @@ packages:
lmdb:
optional: true
- '@effect/language-service@0.20.1':
- resolution: {integrity: sha512-AgFazqxD2rlE0mc8V03BZw1XKghfOv9rrvR0M2xBv5haT4jHw5j07UK+Ln+dyeGmvrVXUT3a8Uc3pEkRJb+XHw==}
-
'@effect/language-service@0.35.2':
resolution: {integrity: sha512-J7GbtthuYeruD4kYUHn3QEZtbl9v7OX9+ElD20mDBGBMA+Q6W4KnVMxZc+yDvKQBBYvfXImVUSzBbXzbrZJpyg==}
hasBin: true
@@ -1621,312 +1633,156 @@ packages:
'@emnapi/wasi-threads@1.1.0':
resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==}
- '@esbuild/aix-ppc64@0.25.12':
- resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==}
- engines: {node: '>=18'}
- cpu: [ppc64]
- os: [aix]
-
'@esbuild/aix-ppc64@0.27.2':
resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [aix]
- '@esbuild/android-arm64@0.25.12':
- resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [android]
-
'@esbuild/android-arm64@0.27.2':
resolution: {integrity: sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==}
engines: {node: '>=18'}
cpu: [arm64]
os: [android]
- '@esbuild/android-arm@0.25.12':
- resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==}
- engines: {node: '>=18'}
- cpu: [arm]
- os: [android]
-
'@esbuild/android-arm@0.27.2':
resolution: {integrity: sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==}
engines: {node: '>=18'}
cpu: [arm]
os: [android]
- '@esbuild/android-x64@0.25.12':
- resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [android]
-
'@esbuild/android-x64@0.27.2':
resolution: {integrity: sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==}
engines: {node: '>=18'}
cpu: [x64]
os: [android]
- '@esbuild/darwin-arm64@0.25.12':
- resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [darwin]
-
'@esbuild/darwin-arm64@0.27.2':
resolution: {integrity: sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [darwin]
- '@esbuild/darwin-x64@0.25.12':
- resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [darwin]
-
'@esbuild/darwin-x64@0.27.2':
resolution: {integrity: sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==}
engines: {node: '>=18'}
cpu: [x64]
os: [darwin]
- '@esbuild/freebsd-arm64@0.25.12':
- resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [freebsd]
-
'@esbuild/freebsd-arm64@0.27.2':
resolution: {integrity: sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==}
engines: {node: '>=18'}
cpu: [arm64]
os: [freebsd]
- '@esbuild/freebsd-x64@0.25.12':
- resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [freebsd]
-
'@esbuild/freebsd-x64@0.27.2':
resolution: {integrity: sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==}
engines: {node: '>=18'}
cpu: [x64]
os: [freebsd]
- '@esbuild/linux-arm64@0.25.12':
- resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [linux]
-
'@esbuild/linux-arm64@0.27.2':
resolution: {integrity: sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==}
engines: {node: '>=18'}
cpu: [arm64]
os: [linux]
- '@esbuild/linux-arm@0.25.12':
- resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==}
- engines: {node: '>=18'}
- cpu: [arm]
- os: [linux]
-
'@esbuild/linux-arm@0.27.2':
resolution: {integrity: sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==}
engines: {node: '>=18'}
cpu: [arm]
os: [linux]
- '@esbuild/linux-ia32@0.25.12':
- resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==}
- engines: {node: '>=18'}
- cpu: [ia32]
- os: [linux]
-
'@esbuild/linux-ia32@0.27.2':
resolution: {integrity: sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==}
engines: {node: '>=18'}
cpu: [ia32]
os: [linux]
- '@esbuild/linux-loong64@0.25.12':
- resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==}
- engines: {node: '>=18'}
- cpu: [loong64]
- os: [linux]
-
'@esbuild/linux-loong64@0.27.2':
resolution: {integrity: sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==}
engines: {node: '>=18'}
cpu: [loong64]
os: [linux]
- '@esbuild/linux-mips64el@0.25.12':
- resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==}
- engines: {node: '>=18'}
- cpu: [mips64el]
- os: [linux]
-
'@esbuild/linux-mips64el@0.27.2':
resolution: {integrity: sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==}
engines: {node: '>=18'}
cpu: [mips64el]
os: [linux]
- '@esbuild/linux-ppc64@0.25.12':
- resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==}
- engines: {node: '>=18'}
- cpu: [ppc64]
- os: [linux]
-
'@esbuild/linux-ppc64@0.27.2':
resolution: {integrity: sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [linux]
- '@esbuild/linux-riscv64@0.25.12':
- resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==}
- engines: {node: '>=18'}
- cpu: [riscv64]
- os: [linux]
-
'@esbuild/linux-riscv64@0.27.2':
resolution: {integrity: sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==}
engines: {node: '>=18'}
cpu: [riscv64]
os: [linux]
- '@esbuild/linux-s390x@0.25.12':
- resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==}
- engines: {node: '>=18'}
- cpu: [s390x]
- os: [linux]
-
'@esbuild/linux-s390x@0.27.2':
resolution: {integrity: sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==}
engines: {node: '>=18'}
cpu: [s390x]
os: [linux]
- '@esbuild/linux-x64@0.25.12':
- resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [linux]
-
'@esbuild/linux-x64@0.27.2':
resolution: {integrity: sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==}
engines: {node: '>=18'}
cpu: [x64]
os: [linux]
- '@esbuild/netbsd-arm64@0.25.12':
- resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [netbsd]
-
'@esbuild/netbsd-arm64@0.27.2':
resolution: {integrity: sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==}
engines: {node: '>=18'}
cpu: [arm64]
os: [netbsd]
- '@esbuild/netbsd-x64@0.25.12':
- resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [netbsd]
-
'@esbuild/netbsd-x64@0.27.2':
resolution: {integrity: sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==}
engines: {node: '>=18'}
cpu: [x64]
os: [netbsd]
- '@esbuild/openbsd-arm64@0.25.12':
- resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [openbsd]
-
'@esbuild/openbsd-arm64@0.27.2':
resolution: {integrity: sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==}
engines: {node: '>=18'}
cpu: [arm64]
os: [openbsd]
- '@esbuild/openbsd-x64@0.25.12':
- resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [openbsd]
-
'@esbuild/openbsd-x64@0.27.2':
resolution: {integrity: sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==}
engines: {node: '>=18'}
cpu: [x64]
os: [openbsd]
- '@esbuild/openharmony-arm64@0.25.12':
- resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [openharmony]
-
'@esbuild/openharmony-arm64@0.27.2':
resolution: {integrity: sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==}
engines: {node: '>=18'}
cpu: [arm64]
os: [openharmony]
- '@esbuild/sunos-x64@0.25.12':
- resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [sunos]
-
'@esbuild/sunos-x64@0.27.2':
resolution: {integrity: sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==}
engines: {node: '>=18'}
cpu: [x64]
os: [sunos]
- '@esbuild/win32-arm64@0.25.12':
- resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [win32]
-
'@esbuild/win32-arm64@0.27.2':
resolution: {integrity: sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [win32]
- '@esbuild/win32-ia32@0.25.12':
- resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==}
- engines: {node: '>=18'}
- cpu: [ia32]
- os: [win32]
-
'@esbuild/win32-ia32@0.27.2':
resolution: {integrity: sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==}
engines: {node: '>=18'}
cpu: [ia32]
os: [win32]
- '@esbuild/win32-x64@0.25.12':
- resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [win32]
-
'@esbuild/win32-x64@0.27.2':
resolution: {integrity: sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==}
engines: {node: '>=18'}
@@ -1992,9 +1848,6 @@ packages:
'@noble/hashes':
optional: true
- '@forgerock/javascript-sdk@4.7.0':
- resolution: {integrity: sha512-0wpy2/ii9F9yKI3r+huqQtp6bVAeajf2+Llq25dvkfxQX19FKKi9KPPMF7JTVti6heYHyo36lxweB7xerB5UTQ==}
-
'@forgerock/javascript-sdk@4.9.0':
resolution: {integrity: sha512-xNE4LMIFYvvPpsq04RqSGnZ+zT+LjOdHePPj6K4uukqewBaZMDmynozkOTtCFmWui7gqANuhf2arbdo3J5uTVQ==}
@@ -3253,9 +3106,6 @@ packages:
'@types/express-serve-static-core@5.1.0':
resolution: {integrity: sha512-jnHMsrd0Mwa9Cf4IdOzbz543y4XJepXrbia2T4b6+spXC2We3t1y6K44D3mR8XMFSXMCf3/l7rCgddfx7UNVBA==}
- '@types/express@5.0.5':
- resolution: {integrity: sha512-LuIQOcb6UmnF7C1PCFmEU1u2hmiHL43fgFQX67sN3H4Z+0Yk0Neo++mFsBjhOAuLzvlQeqAAkeDOZrJs9rzumQ==}
-
'@types/express@5.0.6':
resolution: {integrity: sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==}
@@ -3283,9 +3133,6 @@ packages:
'@types/json5@0.0.29':
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
- '@types/mime@1.3.5':
- resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
-
'@types/node@12.20.55':
resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
@@ -3304,15 +3151,9 @@ packages:
'@types/responselike@1.0.0':
resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==}
- '@types/send@0.17.6':
- resolution: {integrity: sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==}
-
'@types/send@1.2.1':
resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==}
- '@types/serve-static@1.15.10':
- resolution: {integrity: sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==}
-
'@types/serve-static@2.2.0':
resolution: {integrity: sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==}
@@ -4916,11 +4757,6 @@ packages:
resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
engines: {node: '>= 0.4'}
- esbuild@0.25.12:
- resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==}
- engines: {node: '>=18'}
- hasBin: true
-
esbuild@0.27.2:
resolution: {integrity: sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==}
engines: {node: '>=18'}
@@ -7798,6 +7634,51 @@ packages:
resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==}
engines: {node: ^14.18.0 || >=16.0.0}
+ syncpack-darwin-arm64@15.0.0:
+ resolution: {integrity: sha512-xUIOGuWKHAUWOXRKPAlQ2I2XmyuJpEe25G0Vx2/eQoKakEFj3XpQePqOMJLj6ik71xEHxicdMljIKCxEPurahA==}
+ cpu: [arm64]
+ os: [darwin]
+
+ syncpack-darwin-x64@15.0.0:
+ resolution: {integrity: sha512-tcAZ3rbWgoWaT3jcDVZXqob2wgjmHh0GvxPx5oJ/pJ0b8ul2eSX0fhBoczEjV0v5WnBhueDVAfW/aQK7I8co3A==}
+ cpu: [x64]
+ os: [darwin]
+
+ syncpack-linux-arm64-musl@15.0.0:
+ resolution: {integrity: sha512-hVcSOv0D6eRACrCJHPjPMn1H8ovQpZadYoDUL2cW1oTwN/eWNPo2sDZaO+UONQsrWX0LU1Gq59pbIs3TyltDpQ==}
+ cpu: [arm64]
+ os: [linux]
+
+ syncpack-linux-arm64@15.0.0:
+ resolution: {integrity: sha512-xd3+1bqFI5ym2r1AtJH9MUPxAGB2SPYi6FeP1QmCOdAFsykp2yTYsMg9Qs9g8DwOfMM+nSoJGrE1H/eeldU8+A==}
+ cpu: [arm64]
+ os: [linux]
+
+ syncpack-linux-x64-musl@15.0.0:
+ resolution: {integrity: sha512-MCs1MC9iwqNADthJ8dfbINKHPoWZT49TmmkPvbrbV0/QKHcK4TqckrNrHEo7NFrL6BvLEWdWe/Vbdy7PbDluhw==}
+ cpu: [x64]
+ os: [linux]
+
+ syncpack-linux-x64@15.0.0:
+ resolution: {integrity: sha512-gaThoG8k+2UA5A6FFosoT9mSXf69RTZt68iHxqejxDVVPGuPdtAkf6rXIZWiElhJJ3kQwGW+Zo+e0ZdKviqJMg==}
+ cpu: [x64]
+ os: [linux]
+
+ syncpack-windows-arm64@15.0.0:
+ resolution: {integrity: sha512-hMm9zTYihwP9t86z5FIQ/7Hk1LcXw4SuqxjWy+Nylxwj82DIHr+fLzbSmDFQNiFqwz1gY56FuTGH+UavsWkgXQ==}
+ cpu: [arm64]
+ os: [win32]
+
+ syncpack-windows-x64@15.0.0:
+ resolution: {integrity: sha512-8dvfrgSBwVol2PCJeVyESnTdlxdA0ho1w3/EQCW6ixag6Ov0lw7mfEN9SHDim1TVihpr47wr7KKt9t3Qi6d9qQ==}
+ cpu: [x64]
+ os: [win32]
+
+ syncpack@15.0.0:
+ resolution: {integrity: sha512-8aCVifg97m3hig1dnDwvGSPk6g/SDMzYRDjyL58c7l74gq8BCpUFmJrZZUL/9w6kGrnHxl6HsqUeOVja4ZpqTA==}
+ engines: {node: '>=14.17.0'}
+ hasBin: true
+
tapable@2.3.0:
resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==}
engines: {node: '>=6'}
@@ -7999,11 +7880,6 @@ packages:
tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
- tsx@4.20.6:
- resolution: {integrity: sha512-ytQKuwgmrrkDTFP4LjR0ToE2nqgy886GpvRSpU0JAnrdBYppuY5rLkRUYPU1yCryb24SsKBTL/hlDQAEFVwtZg==}
- engines: {node: '>=18.0.0'}
- hasBin: true
-
tsx@4.21.0:
resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==}
engines: {node: '>=18.0.0'}
@@ -8223,6 +8099,7 @@ packages:
uuid@8.3.2:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
+ deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).
hasBin: true
v8-compile-cache-lib@3.0.1:
@@ -9738,8 +9615,6 @@ snapshots:
effect: 3.20.0
uuid: 11.1.1
- '@effect/language-service@0.20.1': {}
-
'@effect/language-service@0.35.2': {}
'@effect/opentelemetry@0.56.6(@effect/platform@0.90.10(effect@3.20.0))(@opentelemetry/api@1.9.0)(@opentelemetry/resources@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.207.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-web@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0)(effect@3.20.0)':
@@ -9850,159 +9725,81 @@ snapshots:
dependencies:
tslib: 2.8.1
- '@esbuild/aix-ppc64@0.25.12':
- optional: true
-
'@esbuild/aix-ppc64@0.27.2':
optional: true
- '@esbuild/android-arm64@0.25.12':
- optional: true
-
'@esbuild/android-arm64@0.27.2':
optional: true
- '@esbuild/android-arm@0.25.12':
- optional: true
-
'@esbuild/android-arm@0.27.2':
optional: true
- '@esbuild/android-x64@0.25.12':
- optional: true
-
'@esbuild/android-x64@0.27.2':
optional: true
- '@esbuild/darwin-arm64@0.25.12':
- optional: true
-
'@esbuild/darwin-arm64@0.27.2':
optional: true
- '@esbuild/darwin-x64@0.25.12':
- optional: true
-
'@esbuild/darwin-x64@0.27.2':
optional: true
- '@esbuild/freebsd-arm64@0.25.12':
- optional: true
-
'@esbuild/freebsd-arm64@0.27.2':
optional: true
- '@esbuild/freebsd-x64@0.25.12':
- optional: true
-
'@esbuild/freebsd-x64@0.27.2':
optional: true
- '@esbuild/linux-arm64@0.25.12':
- optional: true
-
'@esbuild/linux-arm64@0.27.2':
optional: true
- '@esbuild/linux-arm@0.25.12':
- optional: true
-
'@esbuild/linux-arm@0.27.2':
optional: true
- '@esbuild/linux-ia32@0.25.12':
- optional: true
-
'@esbuild/linux-ia32@0.27.2':
optional: true
- '@esbuild/linux-loong64@0.25.12':
- optional: true
-
'@esbuild/linux-loong64@0.27.2':
optional: true
- '@esbuild/linux-mips64el@0.25.12':
- optional: true
-
'@esbuild/linux-mips64el@0.27.2':
optional: true
- '@esbuild/linux-ppc64@0.25.12':
- optional: true
-
'@esbuild/linux-ppc64@0.27.2':
optional: true
- '@esbuild/linux-riscv64@0.25.12':
- optional: true
-
'@esbuild/linux-riscv64@0.27.2':
optional: true
- '@esbuild/linux-s390x@0.25.12':
- optional: true
-
'@esbuild/linux-s390x@0.27.2':
optional: true
- '@esbuild/linux-x64@0.25.12':
- optional: true
-
'@esbuild/linux-x64@0.27.2':
optional: true
- '@esbuild/netbsd-arm64@0.25.12':
- optional: true
-
'@esbuild/netbsd-arm64@0.27.2':
optional: true
- '@esbuild/netbsd-x64@0.25.12':
- optional: true
-
'@esbuild/netbsd-x64@0.27.2':
optional: true
- '@esbuild/openbsd-arm64@0.25.12':
- optional: true
-
'@esbuild/openbsd-arm64@0.27.2':
optional: true
- '@esbuild/openbsd-x64@0.25.12':
- optional: true
-
'@esbuild/openbsd-x64@0.27.2':
optional: true
- '@esbuild/openharmony-arm64@0.25.12':
- optional: true
-
'@esbuild/openharmony-arm64@0.27.2':
optional: true
- '@esbuild/sunos-x64@0.25.12':
- optional: true
-
'@esbuild/sunos-x64@0.27.2':
optional: true
- '@esbuild/win32-arm64@0.25.12':
- optional: true
-
'@esbuild/win32-arm64@0.27.2':
optional: true
- '@esbuild/win32-ia32@0.25.12':
- optional: true
-
'@esbuild/win32-ia32@0.27.2':
optional: true
- '@esbuild/win32-x64@0.25.12':
- optional: true
-
'@esbuild/win32-x64@0.27.2':
optional: true
@@ -10063,14 +9860,6 @@ snapshots:
optionalDependencies:
'@noble/hashes': 1.8.0
- '@forgerock/javascript-sdk@4.7.0':
- dependencies:
- '@reduxjs/toolkit': 2.10.1
- immer: 10.2.0
- transitivePeerDependencies:
- - react
- - react-redux
-
'@forgerock/javascript-sdk@4.9.0':
dependencies:
'@reduxjs/toolkit': 2.10.1
@@ -10782,11 +10571,11 @@ snapshots:
- typescript
- verdaccio
- '@nx/vite@22.6.5(@babel/traverse@7.28.5)(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21)))(typescript@5.8.3)(verdaccio@6.5.2(typanion@3.14.0))(vite@7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1))(vitest@3.2.4)':
+ '@nx/vite@22.6.5(@babel/traverse@7.28.5)(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21)))(typescript@5.8.3)(verdaccio@6.5.2(typanion@3.14.0))(vite@7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.1))(vitest@3.2.4)':
dependencies:
'@nx/devkit': 22.6.5(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21)))
'@nx/js': 22.6.5(@babel/traverse@7.28.5)(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21)))(verdaccio@6.5.2(typanion@3.14.0))
- '@nx/vitest': 22.6.5(@babel/traverse@7.28.5)(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21)))(typescript@5.8.3)(verdaccio@6.5.2(typanion@3.14.0))(vite@7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1))(vitest@3.2.4)
+ '@nx/vitest': 22.6.5(@babel/traverse@7.28.5)(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21)))(typescript@5.8.3)(verdaccio@6.5.2(typanion@3.14.0))(vite@7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.1))(vitest@3.2.4)
'@phenomnomnominal/tsquery': 6.1.4(typescript@5.8.3)
ajv: 8.18.0
enquirer: 2.3.6
@@ -10794,8 +10583,8 @@ snapshots:
semver: 7.7.3
tsconfig-paths: 4.2.0
tslib: 2.8.1
- vite: 7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1)
- vitest: 3.2.4(@types/node@24.9.2)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@1.8.0))(msw@2.12.1(@types/node@24.9.2)(typescript@5.8.3))(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1)
+ vite: 7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.1)
+ vitest: 3.2.4(@types/node@24.9.2)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@1.8.0))(msw@2.12.1(@types/node@24.9.2)(typescript@5.8.3))(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.1)
transitivePeerDependencies:
- '@babel/traverse'
- '@swc-node/register'
@@ -10806,7 +10595,7 @@ snapshots:
- typescript
- verdaccio
- '@nx/vitest@22.6.5(@babel/traverse@7.28.5)(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21)))(typescript@5.8.3)(verdaccio@6.5.2(typanion@3.14.0))(vite@7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1))(vitest@3.2.4)':
+ '@nx/vitest@22.6.5(@babel/traverse@7.28.5)(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21)))(typescript@5.8.3)(verdaccio@6.5.2(typanion@3.14.0))(vite@7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.1))(vitest@3.2.4)':
dependencies:
'@nx/devkit': 22.6.5(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21)))
'@nx/js': 22.6.5(@babel/traverse@7.28.5)(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.7.0)(@emnapi/runtime@1.7.0)(@swc/core@1.15.30(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.8.3))(@swc/core@1.15.30(@swc/helpers@0.5.21)))(verdaccio@6.5.2(typanion@3.14.0))
@@ -10814,8 +10603,8 @@ snapshots:
semver: 7.7.3
tslib: 2.8.1
optionalDependencies:
- vite: 7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1)
- vitest: 3.2.4(@types/node@24.9.2)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@1.8.0))(msw@2.12.1(@types/node@24.9.2)(typescript@5.8.3))(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1)
+ vite: 7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.1)
+ vitest: 3.2.4(@types/node@24.9.2)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@1.8.0))(msw@2.12.1(@types/node@24.9.2)(typescript@5.8.3))(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.1)
transitivePeerDependencies:
- '@babel/traverse'
- '@swc-node/register'
@@ -11531,12 +11320,6 @@ snapshots:
'@types/range-parser': 1.2.7
'@types/send': 1.2.1
- '@types/express@5.0.5':
- dependencies:
- '@types/body-parser': 1.19.6
- '@types/express-serve-static-core': 5.1.0
- '@types/serve-static': 1.15.10
-
'@types/express@5.0.6':
dependencies:
'@types/body-parser': 1.19.6
@@ -11565,8 +11348,6 @@ snapshots:
'@types/json5@0.0.29': {}
- '@types/mime@1.3.5': {}
-
'@types/node@12.20.55': {}
'@types/node@24.9.2':
@@ -11583,21 +11364,10 @@ snapshots:
dependencies:
'@types/node': 24.9.2
- '@types/send@0.17.6':
- dependencies:
- '@types/mime': 1.3.5
- '@types/node': 24.9.2
-
'@types/send@1.2.1':
dependencies:
'@types/node': 24.9.2
- '@types/serve-static@1.15.10':
- dependencies:
- '@types/http-errors': 2.0.5
- '@types/node': 24.9.2
- '@types/send': 0.17.6
-
'@types/serve-static@2.2.0':
dependencies:
'@types/http-errors': 2.0.5
@@ -11986,23 +11756,14 @@ snapshots:
chai: 5.3.3
tinyrainbow: 2.0.0
- '@vitest/mocker@3.2.4(msw@2.12.1(@types/node@24.9.2)(typescript@5.8.3))(vite@7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1))':
+ '@vitest/mocker@3.2.4(msw@2.12.1(@types/node@24.9.2)(typescript@5.8.3))(vite@7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.1))':
dependencies:
'@vitest/spy': 3.2.4
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
msw: 2.12.1(@types/node@24.9.2)(typescript@5.8.3)
- vite: 7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1)
-
- '@vitest/mocker@3.2.4(msw@2.12.1(@types/node@24.9.2)(typescript@5.9.3))(vite@7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1))':
- dependencies:
- '@vitest/spy': 3.2.4
- estree-walker: 3.0.3
- magic-string: 0.30.21
- optionalDependencies:
- msw: 2.12.1(@types/node@24.9.2)(typescript@5.9.3)
- vite: 7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1)
+ vite: 7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.1)
'@vitest/mocker@3.2.4(msw@2.12.1(@types/node@24.9.2)(typescript@5.9.3))(vite@7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.1))':
dependencies:
@@ -13492,35 +13253,6 @@ snapshots:
is-date-object: 1.1.0
is-symbol: 1.1.1
- esbuild@0.25.12:
- optionalDependencies:
- '@esbuild/aix-ppc64': 0.25.12
- '@esbuild/android-arm': 0.25.12
- '@esbuild/android-arm64': 0.25.12
- '@esbuild/android-x64': 0.25.12
- '@esbuild/darwin-arm64': 0.25.12
- '@esbuild/darwin-x64': 0.25.12
- '@esbuild/freebsd-arm64': 0.25.12
- '@esbuild/freebsd-x64': 0.25.12
- '@esbuild/linux-arm': 0.25.12
- '@esbuild/linux-arm64': 0.25.12
- '@esbuild/linux-ia32': 0.25.12
- '@esbuild/linux-loong64': 0.25.12
- '@esbuild/linux-mips64el': 0.25.12
- '@esbuild/linux-ppc64': 0.25.12
- '@esbuild/linux-riscv64': 0.25.12
- '@esbuild/linux-s390x': 0.25.12
- '@esbuild/linux-x64': 0.25.12
- '@esbuild/netbsd-arm64': 0.25.12
- '@esbuild/netbsd-x64': 0.25.12
- '@esbuild/openbsd-arm64': 0.25.12
- '@esbuild/openbsd-x64': 0.25.12
- '@esbuild/openharmony-arm64': 0.25.12
- '@esbuild/sunos-x64': 0.25.12
- '@esbuild/win32-arm64': 0.25.12
- '@esbuild/win32-ia32': 0.25.12
- '@esbuild/win32-x64': 0.25.12
-
esbuild@0.27.2:
optionalDependencies:
'@esbuild/aix-ppc64': 0.27.2
@@ -16920,6 +16652,41 @@ snapshots:
dependencies:
'@pkgr/core': 0.2.9
+ syncpack-darwin-arm64@15.0.0:
+ optional: true
+
+ syncpack-darwin-x64@15.0.0:
+ optional: true
+
+ syncpack-linux-arm64-musl@15.0.0:
+ optional: true
+
+ syncpack-linux-arm64@15.0.0:
+ optional: true
+
+ syncpack-linux-x64-musl@15.0.0:
+ optional: true
+
+ syncpack-linux-x64@15.0.0:
+ optional: true
+
+ syncpack-windows-arm64@15.0.0:
+ optional: true
+
+ syncpack-windows-x64@15.0.0:
+ optional: true
+
+ syncpack@15.0.0:
+ optionalDependencies:
+ syncpack-darwin-arm64: 15.0.0
+ syncpack-darwin-x64: 15.0.0
+ syncpack-linux-arm64: 15.0.0
+ syncpack-linux-arm64-musl: 15.0.0
+ syncpack-linux-x64: 15.0.0
+ syncpack-linux-x64-musl: 15.0.0
+ syncpack-windows-arm64: 15.0.0
+ syncpack-windows-x64: 15.0.0
+
tapable@2.3.0: {}
tapable@2.3.3: {}
@@ -16977,7 +16744,7 @@ snapshots:
dependencies:
'@istanbuljs/schema': 0.1.3
glob: 10.4.5
- minimatch: 9.0.5
+ minimatch: 9.0.9
text-decoder@1.2.3:
dependencies:
@@ -17131,13 +16898,6 @@ snapshots:
tslib@2.8.1: {}
- tsx@4.20.6:
- dependencies:
- esbuild: 0.25.12
- get-tsconfig: 4.13.0
- optionalDependencies:
- fsevents: 2.3.3
-
tsx@4.21.0:
dependencies:
esbuild: 0.27.2
@@ -17442,27 +17202,6 @@ snapshots:
core-util-is: 1.0.2
extsprintf: 1.3.0
- vite-node@3.2.4(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1):
- dependencies:
- cac: 6.7.14
- debug: 4.4.3
- es-module-lexer: 1.7.0
- pathe: 2.0.3
- vite: 7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1)
- transitivePeerDependencies:
- - '@types/node'
- - jiti
- - less
- - lightningcss
- - sass
- - sass-embedded
- - stylus
- - sugarss
- - supports-color
- - terser
- - tsx
- - yaml
-
vite-node@3.2.4(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.1):
dependencies:
cac: 6.7.14
@@ -17484,22 +17223,6 @@ snapshots:
- tsx
- yaml
- vite@7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1):
- dependencies:
- esbuild: 0.27.2
- fdir: 6.5.0(picomatch@4.0.4)
- picomatch: 4.0.4
- postcss: 8.5.6
- rollup: 4.59.0
- tinyglobby: 0.2.15
- optionalDependencies:
- '@types/node': 24.9.2
- fsevents: 2.3.3
- jiti: 2.6.1
- terser: 5.46.2
- tsx: 4.20.6
- yaml: 2.8.1
-
vite@7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.1):
dependencies:
esbuild: 0.27.2
@@ -17522,54 +17245,11 @@ snapshots:
moo-color: 1.0.3
vitest: 3.2.4(@types/node@24.9.2)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@1.8.0))(msw@2.12.1(@types/node@24.9.2)(typescript@5.9.3))(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.1)
- vitest@3.2.4(@types/node@24.9.2)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@1.8.0))(msw@2.12.1(@types/node@24.9.2)(typescript@5.8.3))(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1):
- dependencies:
- '@types/chai': 5.2.3
- '@vitest/expect': 3.2.4
- '@vitest/mocker': 3.2.4(msw@2.12.1(@types/node@24.9.2)(typescript@5.8.3))(vite@7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1))
- '@vitest/pretty-format': 3.2.4
- '@vitest/runner': 3.2.4
- '@vitest/snapshot': 3.2.4
- '@vitest/spy': 3.2.4
- '@vitest/utils': 3.2.4
- chai: 5.3.3
- debug: 4.4.3
- expect-type: 1.2.2
- magic-string: 0.30.21
- pathe: 2.0.3
- picomatch: 4.0.4
- std-env: 3.10.0
- tinybench: 2.9.0
- tinyexec: 0.3.2
- tinyglobby: 0.2.15
- tinypool: 1.1.1
- tinyrainbow: 2.0.0
- vite: 7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1)
- vite-node: 3.2.4(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1)
- why-is-node-running: 2.3.0
- optionalDependencies:
- '@types/node': 24.9.2
- '@vitest/ui': 3.2.4(vitest@3.2.4)
- jsdom: 27.4.0(@noble/hashes@1.8.0)
- transitivePeerDependencies:
- - jiti
- - less
- - lightningcss
- - msw
- - sass
- - sass-embedded
- - stylus
- - sugarss
- - supports-color
- - terser
- - tsx
- - yaml
-
- vitest@3.2.4(@types/node@24.9.2)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@1.8.0))(msw@2.12.1(@types/node@24.9.2)(typescript@5.9.3))(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1):
+ vitest@3.2.4(@types/node@24.9.2)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@1.8.0))(msw@2.12.1(@types/node@24.9.2)(typescript@5.8.3))(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.1):
dependencies:
'@types/chai': 5.2.3
'@vitest/expect': 3.2.4
- '@vitest/mocker': 3.2.4(msw@2.12.1(@types/node@24.9.2)(typescript@5.9.3))(vite@7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1))
+ '@vitest/mocker': 3.2.4(msw@2.12.1(@types/node@24.9.2)(typescript@5.8.3))(vite@7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.1))
'@vitest/pretty-format': 3.2.4
'@vitest/runner': 3.2.4
'@vitest/snapshot': 3.2.4
@@ -17587,8 +17267,8 @@ snapshots:
tinyglobby: 0.2.15
tinypool: 1.1.1
tinyrainbow: 2.0.0
- vite: 7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1)
- vite-node: 3.2.4(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.20.6)(yaml@2.8.1)
+ vite: 7.3.2(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.1)
+ vite-node: 3.2.4(@types/node@24.9.2)(jiti@2.6.1)(terser@5.46.2)(tsx@4.21.0)(yaml@2.8.1)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 24.9.2
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 1a6ffa0b25..27bb8486f8 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -7,9 +7,13 @@ packages:
- 'tools/*'
- 'scratchpad'
catalog:
+ '@forgerock/javascript-sdk': '4.9.0'
'@reduxjs/toolkit': '^2.8.2'
+ '@types/express': '5.0.6'
immer: '^10.1.1'
msw: '^2.5.1'
+ tslib: '^2.5.0'
+ tsx: '4.21.0'
catalogs:
effect:
effect: '^3.20.0'
diff --git a/scratchpad/package.json b/scratchpad/package.json
index 009a55fdf1..a52b59a2c8 100644
--- a/scratchpad/package.json
+++ b/scratchpad/package.json
@@ -19,7 +19,7 @@
},
"devDependencies": {
"dotenv": "17.2.3",
- "tsx": "4.21.0"
+ "tsx": "catalog:"
},
"publishConfig": {
"registry": "https://npm.petrov.ca",
diff --git a/tools/api-report/package.json b/tools/api-report/package.json
index ecdf867fd4..dc2949ccc2 100644
--- a/tools/api-report/package.json
+++ b/tools/api-report/package.json
@@ -11,7 +11,7 @@
},
"dependencies": {
"@microsoft/api-extractor": "^7.52.8",
- "tsx": "^4.20.0"
+ "tsx": "catalog:"
},
"nx": {
"tags": ["scope:tool"]
diff --git a/tools/interface-mapping-validator/package.json b/tools/interface-mapping-validator/package.json
index ae2f623b00..b43637762b 100644
--- a/tools/interface-mapping-validator/package.json
+++ b/tools/interface-mapping-validator/package.json
@@ -15,11 +15,11 @@
},
"dependencies": {
"ts-morph": "^28.0.0",
- "tsx": "^4.20.0",
+ "tsx": "catalog:",
"vitest": "catalog:vitest"
},
"devDependencies": {
- "@forgerock/javascript-sdk": "4.9.0"
+ "@forgerock/javascript-sdk": "catalog:"
},
"nx": {
"tags": ["scope:tool"]