@forgerock/oidc-client 0.0.0-beta-20250626185724 → 0.0.0-beta-20250924163704

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/README.md +21 -0
  2. package/dist/src/index.d.ts +1 -1
  3. package/dist/src/index.d.ts.map +1 -1
  4. package/dist/src/index.js +8 -1
  5. package/dist/src/index.js.map +1 -0
  6. package/dist/src/lib/authorize.request.d.ts +17 -0
  7. package/dist/src/lib/authorize.request.d.ts.map +1 -0
  8. package/dist/src/lib/authorize.request.js +124 -0
  9. package/dist/src/lib/authorize.request.js.map +1 -0
  10. package/dist/src/lib/authorize.request.types.d.ts +47 -0
  11. package/dist/src/lib/authorize.request.types.d.ts.map +1 -0
  12. package/dist/src/lib/authorize.request.types.js +2 -0
  13. package/dist/src/lib/authorize.request.types.js.map +1 -0
  14. package/dist/src/lib/authorize.request.utils.d.ts +40 -0
  15. package/dist/src/lib/authorize.request.utils.d.ts.map +1 -0
  16. package/dist/src/lib/authorize.request.utils.js +104 -0
  17. package/dist/src/lib/authorize.request.utils.js.map +1 -0
  18. package/dist/src/lib/authorize.slice.d.ts +5 -0
  19. package/dist/src/lib/authorize.slice.d.ts.map +1 -0
  20. package/dist/src/lib/authorize.slice.js +21 -0
  21. package/dist/src/lib/authorize.slice.js.map +1 -0
  22. package/dist/src/lib/client.store.d.ts +115 -0
  23. package/dist/src/lib/client.store.d.ts.map +1 -0
  24. package/dist/src/lib/client.store.js +436 -0
  25. package/dist/src/lib/client.store.js.map +1 -0
  26. package/dist/src/lib/client.store.utils.d.ts +108 -0
  27. package/dist/src/lib/client.store.utils.d.ts.map +1 -0
  28. package/dist/src/lib/client.store.utils.js +92 -0
  29. package/dist/src/lib/client.store.utils.js.map +1 -0
  30. package/dist/src/lib/client.types.d.ts +26 -0
  31. package/dist/src/lib/client.types.d.ts.map +1 -0
  32. package/dist/src/lib/client.types.js +2 -0
  33. package/dist/src/lib/client.types.js.map +1 -0
  34. package/dist/src/lib/config.types.d.ts +22 -0
  35. package/dist/src/lib/config.types.d.ts.map +1 -0
  36. package/dist/src/lib/config.types.js +2 -0
  37. package/dist/src/lib/config.types.js.map +1 -0
  38. package/dist/src/lib/exchange.request.d.ts +18 -0
  39. package/dist/src/lib/exchange.request.d.ts.map +1 -0
  40. package/dist/src/lib/exchange.request.js +22 -0
  41. package/dist/src/lib/exchange.request.js.map +1 -0
  42. package/dist/src/lib/exchange.types.d.ts +21 -0
  43. package/dist/src/lib/exchange.types.d.ts.map +1 -0
  44. package/dist/src/lib/exchange.types.js +2 -0
  45. package/dist/src/lib/exchange.types.js.map +1 -0
  46. package/dist/src/lib/exchange.utils.d.ts +28 -0
  47. package/dist/src/lib/exchange.utils.d.ts.map +1 -0
  48. package/dist/src/lib/exchange.utils.js +55 -0
  49. package/dist/src/lib/exchange.utils.js.map +1 -0
  50. package/dist/src/lib/logout.request.d.ts +14 -0
  51. package/dist/src/lib/logout.request.d.ts.map +1 -0
  52. package/dist/src/lib/logout.request.js +48 -0
  53. package/dist/src/lib/logout.request.js.map +1 -0
  54. package/dist/src/lib/oidc.api.d.ts +33 -0
  55. package/dist/src/lib/oidc.api.d.ts.map +1 -0
  56. package/dist/src/lib/oidc.api.js +289 -0
  57. package/dist/src/lib/oidc.api.js.map +1 -0
  58. package/dist/src/lib/oidc.api.utils.d.ts +3 -0
  59. package/dist/src/lib/oidc.api.utils.d.ts.map +1 -0
  60. package/dist/src/lib/oidc.api.utils.js +9 -0
  61. package/dist/src/lib/oidc.api.utils.js.map +1 -0
  62. package/dist/src/lib/token.utils.d.ts +2 -0
  63. package/dist/src/lib/token.utils.d.ts.map +1 -0
  64. package/dist/src/lib/token.utils.js +15 -0
  65. package/dist/src/lib/token.utils.js.map +1 -0
  66. package/dist/src/lib/wellknown.api.d.ts +7 -0
  67. package/dist/src/lib/wellknown.api.d.ts.map +1 -0
  68. package/dist/src/lib/wellknown.api.js +22 -0
  69. package/dist/src/lib/wellknown.api.js.map +1 -0
  70. package/dist/src/types.d.ts +6 -0
  71. package/dist/src/types.d.ts.map +1 -0
  72. package/dist/src/types.js +5 -0
  73. package/dist/src/types.js.map +1 -0
  74. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  75. package/package.json +34 -5
  76. package/CHANGELOG.md +0 -11
  77. package/dist/src/lib/token-store.d.ts +0 -12
  78. package/dist/src/lib/token-store.d.ts.map +0 -1
  79. package/dist/src/lib/token-store.js +0 -9
  80. package/dist/src/lib/token-store.test-d.d.ts +0 -2
  81. package/dist/src/lib/token-store.test-d.d.ts.map +0 -1
  82. package/dist/src/lib/token-store.test-d.js +0 -43
  83. package/eslint.config.mjs +0 -22
  84. package/src/index.ts +0 -1
  85. package/src/lib/token-store.test-d.ts +0 -52
  86. package/src/lib/token-store.test.ts +0 -38
  87. package/src/lib/token-store.ts +0 -10
  88. package/tsconfig.json +0 -22
  89. package/tsconfig.lib.json +0 -40
  90. package/tsconfig.spec.json +0 -41
  91. package/typedoc.json +0 -4
  92. package/vite.config.ts +0 -23
@@ -0,0 +1,92 @@
1
+ import { configureStore } from '@reduxjs/toolkit';
2
+ import { oidcApi } from './oidc.api.js';
3
+ import { wellknownApi } from './wellknown.api.js';
4
+ /**
5
+ * @function createClientStore
6
+ * @description Creates a Redux store configured with OIDC and well-known APIs.
7
+ * @param param - Configuration options for the client store.
8
+ * @param {RequestMiddleware} param.requestMiddleware - An array of request middleware functions to be applied to the store.
9
+ * @param {ReturnType<typeof loggerFn>} param.logger - An optional logger function for logging messages.
10
+ * @returns { ReturnType<typeof configureStore> } - Returns a configured Redux store with OIDC and well-known APIs.
11
+ */
12
+ export function createClientStore({ requestMiddleware, logger, }) {
13
+ return configureStore({
14
+ reducer: {
15
+ [oidcApi.reducerPath]: oidcApi.reducer,
16
+ [wellknownApi.reducerPath]: wellknownApi.reducer,
17
+ },
18
+ middleware: (getDefaultMiddleware) => getDefaultMiddleware({
19
+ thunk: {
20
+ extraArgument: {
21
+ /**
22
+ * This becomes the `api.extra` argument, and will be passed into the
23
+ * customer query wrapper for `baseQuery`
24
+ */
25
+ requestMiddleware,
26
+ logger,
27
+ },
28
+ },
29
+ })
30
+ .concat(wellknownApi.middleware)
31
+ .concat(oidcApi.middleware),
32
+ });
33
+ }
34
+ /**
35
+ * @function createLogoutError
36
+ * @description Creates a logout error object based on the provided data and error.
37
+ * @param {object | null | undefined} data - The data returned from the logout API call.
38
+ * @param {FetchBaseQueryError | SerializedError} error - An optional error object that may contain details about the error that occurred during the logout process.
39
+ * @returns {null | GenericError} - Returns a `GenericError` object if an error occurred, or `null` if no error is present.
40
+ */
41
+ export function createLogoutError(data, error) {
42
+ if (error) {
43
+ let message = 'An error occurred while ending the session';
44
+ let status = 'unknown';
45
+ if ('message' in error && error.message) {
46
+ message = error.message;
47
+ }
48
+ if ('status' in error) {
49
+ status = error.status;
50
+ }
51
+ return {
52
+ error: 'End Session failure',
53
+ message,
54
+ type: 'auth_error',
55
+ status,
56
+ };
57
+ }
58
+ return null;
59
+ }
60
+ export function createTokenError(type) {
61
+ let error;
62
+ if (type === 'no_tokens') {
63
+ error = {
64
+ error: 'Token_Error',
65
+ message: 'Required for ending session and revoking access token',
66
+ type: 'state_error',
67
+ };
68
+ }
69
+ else if (type === 'no_access_token') {
70
+ error = {
71
+ error: 'Token_Error',
72
+ message: 'No access token found in storage; required for revoking access token',
73
+ type: 'state_error',
74
+ };
75
+ }
76
+ else if (type === 'no_id_token') {
77
+ error = {
78
+ error: 'Token_Error',
79
+ message: 'No ID token found in storage; required for ending session',
80
+ type: 'state_error',
81
+ };
82
+ }
83
+ else {
84
+ error = {
85
+ error: 'Token_Error',
86
+ message: 'An unknown error occurred while creating the error object',
87
+ type: 'unknown_error',
88
+ };
89
+ }
90
+ return error;
91
+ }
92
+ //# sourceMappingURL=client.store.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.store.utils.js","sourceRoot":"","sources":["../../../src/lib/client.store.utils.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,cAAc,EAAmB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKlD;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAiC,EAChE,iBAAiB,EACjB,MAAM,GAIP;IACC,OAAO,cAAc,CAAC;QACpB,OAAO,EAAE;YACP,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,OAAO;YACtC,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,OAAO;SACjD;QACD,UAAU,EAAE,CAAC,oBAAoB,EAAE,EAAE,CACnC,oBAAoB,CAAC;YACnB,KAAK,EAAE;gBACL,aAAa,EAAE;oBACb;;;uBAGG;oBACH,iBAAiB;oBACjB,MAAM;iBACP;aACF;SACF,CAAC;aACC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC;aAC/B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;KAChC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAA+B,EAC/B,KAA6C;IAE7C,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,OAAO,GAAG,4CAA4C,CAAC;QAC3D,IAAI,MAAM,GAAoB,SAAS,CAAC;QACxC,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACxC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC1B,CAAC;QACD,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QACxB,CAAC;QACD,OAAO;YACL,KAAK,EAAE,qBAAqB;YAC5B,OAAO;YACP,IAAI,EAAE,YAAY;YAClB,MAAM;SACE,CAAC;IACb,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAqD;IACpF,IAAI,KAAmB,CAAC;IAExB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,KAAK,GAAG;YACN,KAAK,EAAE,aAAa;YACpB,OAAO,EAAE,uDAAuD;YAChE,IAAI,EAAE,aAAa;SACX,CAAC;IACb,CAAC;SAAM,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACtC,KAAK,GAAG;YACN,KAAK,EAAE,aAAa;YACpB,OAAO,EAAE,sEAAsE;YAC/E,IAAI,EAAE,aAAa;SACX,CAAC;IACb,CAAC;SAAM,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAClC,KAAK,GAAG;YACN,KAAK,EAAE,aAAa;YACpB,OAAO,EAAE,2DAA2D;YACpE,IAAI,EAAE,aAAa;SACX,CAAC;IACb,CAAC;SAAM,CAAC;QACN,KAAK,GAAG;YACN,KAAK,EAAE,aAAa;YACpB,OAAO,EAAE,2DAA2D;YACpE,IAAI,EAAE,eAAe;SACb,CAAC;IACb,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { GenericError, GetAuthorizationUrlOptions } from '@forgerock/sdk-types';
2
+ import type { StorageConfig } from '@forgerock/storage';
3
+ export interface GetTokensOptions {
4
+ authorizeOptions?: GetAuthorizationUrlOptions;
5
+ backgroundRenew?: boolean;
6
+ forceRenew?: boolean;
7
+ storageOptions?: Partial<StorageConfig>;
8
+ }
9
+ export type RevokeSuccessResult = {
10
+ revokeResponse: GenericError | null;
11
+ deleteResponse: GenericError | null;
12
+ };
13
+ export type RevokeErrorResult = RevokeSuccessResult & {
14
+ error: string;
15
+ };
16
+ export type LogoutSuccessResult = RevokeSuccessResult & {
17
+ sessionResponse: GenericError | null;
18
+ };
19
+ export type LogoutErrorResult = LogoutSuccessResult & {
20
+ error: string;
21
+ };
22
+ export type UserInfoResponse = {
23
+ sub: string;
24
+ [key: string]: unknown;
25
+ };
26
+ //# sourceMappingURL=client.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.types.d.ts","sourceRoot":"","sources":["../../../src/lib/client.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,CAAC,EAAE,0BAA0B,CAAC;IAC9C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACzC;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,EAAE,YAAY,GAAG,IAAI,CAAC;IACpC,cAAc,EAAE,YAAY,GAAG,IAAI,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,GAAG;IACpD,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,GAAG;IACtD,eAAe,EAAE,YAAY,GAAG,IAAI,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,GAAG;IACpD,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=client.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.types.js","sourceRoot":"","sources":["../../../src/lib/client.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import type { AsyncLegacyConfigOptions, WellKnownResponse, ResponseType } from '@forgerock/sdk-types';
2
+ export interface OidcConfig extends AsyncLegacyConfigOptions {
3
+ clientId: string;
4
+ redirectUri: string;
5
+ scope: string;
6
+ serverConfig: {
7
+ wellknown: string;
8
+ timeout?: number;
9
+ };
10
+ responseType?: ResponseType;
11
+ }
12
+ export interface InternalDaVinciConfig extends OidcConfig {
13
+ wellknownResponse: WellKnownResponse;
14
+ }
15
+ export interface OauthTokens {
16
+ accessToken: string;
17
+ idToken: string;
18
+ refreshToken?: string;
19
+ expiresAt?: number;
20
+ expiryTimestamp?: number;
21
+ }
22
+ //# sourceMappingURL=config.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.types.d.ts","sourceRoot":"","sources":["../../../src/lib/config.types.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,YAAY,EACb,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,UAAW,SAAQ,wBAAwB;IAE1D,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAsB,SAAQ,UAAU;IACvD,iBAAiB,EAAE,iBAAiB,CAAC;CACtC;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=config.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.types.js","sourceRoot":"","sources":["../../../src/lib/config.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import { Micro } from 'effect';
2
+ import { logger } from '@forgerock/sdk-logger';
3
+ import { createClientStore } from './client.store.utils.js';
4
+ import type { OauthTokens, OidcConfig } from './config.types.js';
5
+ import type { StorageConfig } from 'node_modules/@forgerock/storage/src/lib/storage.effects.js';
6
+ import { TokenExchangeErrorResponse } from './exchange.types.js';
7
+ interface BuildTokenExchangeµParams {
8
+ code: string;
9
+ config: OidcConfig;
10
+ endpoint: string;
11
+ log: ReturnType<typeof logger>;
12
+ state: string;
13
+ store: ReturnType<typeof createClientStore>;
14
+ options?: Partial<StorageConfig>;
15
+ }
16
+ export declare function buildTokenExchangeµ({ code, config, endpoint, log, state, store, options, }: BuildTokenExchangeµParams): Micro.Micro<OauthTokens, TokenExchangeErrorResponse, never>;
17
+ export {};
18
+ //# sourceMappingURL=exchange.request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exchange.request.d.ts","sourceRoot":"","sources":["../../../src/lib/exchange.request.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAI/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4DAA4D,CAAC;AAChG,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAEjE,UAAU,yBAAyB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CAClC;AAED,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,GAAG,EACH,KAAK,EACL,KAAK,EACL,OAAO,GACR,EAAE,yBAAyB,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,0BAA0B,EAAE,KAAK,CAAC,CA2BzF"}
@@ -0,0 +1,22 @@
1
+ /*
2
+ * Copyright (c) 2025 Ping Identity Corporation. All rights reserved.
3
+ *
4
+ * This software may be modified and distributed under the terms
5
+ * of the MIT license. See the LICENSE file for details.
6
+ */
7
+ import { Micro } from 'effect';
8
+ import { createValuesµ, handleTokenResponseµ, validateValuesµ } from './exchange.utils.js';
9
+ import { oidcApi } from './oidc.api.js';
10
+ export function buildTokenExchangeµ({ code, config, endpoint, log, state, store, options, }) {
11
+ return createValuesµ(code, config, state, endpoint, options).pipe(Micro.flatMap((options) => validateValuesµ(options)), Micro.tap((options) => log.debug('Token exchange values created', options)), Micro.tapError((options) => Micro.sync(() => log.error('Error creating token exchange values', options))), Micro.flatMap((requestOptions) => Micro.promise(() => store.dispatch(oidcApi.endpoints.exchange.initiate(requestOptions)))), Micro.flatMap(({ data, error }) => handleTokenResponseµ(data, error)), Micro.tap((data) => log.debug('Token exchange response handled', data)), Micro.tapError((error) => Micro.sync(() => log.error('Error handling token exchange response', error))), Micro.map((data) => {
12
+ const tokens = {
13
+ accessToken: data.access_token,
14
+ idToken: data.id_token,
15
+ ...(data.refresh_token && { refreshToken: data.refresh_token }),
16
+ ...(data.expires_in && { expiresAt: data.expires_in }),
17
+ ...(data.expires_in && { expiryTimestamp: Date.now() + data.expires_in * 1000 }),
18
+ };
19
+ return tokens;
20
+ }));
21
+ }
22
+ //# sourceMappingURL=exchange.request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exchange.request.js","sourceRoot":"","sources":["../../../src/lib/exchange.request.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAI/B,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAiBxC,MAAM,UAAU,mBAAmB,CAAC,EAClC,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,GAAG,EACH,KAAK,EACL,KAAK,EACL,OAAO,GACmB;IAC1B,OAAO,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAC/D,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EACpD,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAC,EAC3E,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CACzB,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,sCAAsC,EAAE,OAAO,CAAC,CAAC,CAC7E,EACD,KAAK,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE,CAC/B,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CACzF,EACD,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EACrE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,EAAE,IAAI,CAAC,CAAC,EACvE,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACvB,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC,CAC7E,EACD,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACjB,MAAM,MAAM,GAAG;YACb,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/D,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;YACtD,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,EAAE,CAAC;SACjF,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { OidcConfig } from './config.types.js';
2
+ export interface TokenExchangeResponse {
3
+ access_token: string;
4
+ id_token: string;
5
+ refresh_token?: string;
6
+ expires_in?: number;
7
+ scope?: string;
8
+ token_type?: string;
9
+ }
10
+ export interface TokenExchangeErrorResponse {
11
+ error: string;
12
+ message: string;
13
+ type: 'exchange_error' | 'network_error' | 'state_error' | 'unknown_error';
14
+ }
15
+ export interface TokenRequestOptions {
16
+ code: string;
17
+ config: OidcConfig;
18
+ endpoint: string;
19
+ verifier?: string;
20
+ }
21
+ //# sourceMappingURL=exchange.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exchange.types.d.ts","sourceRoot":"","sources":["../../../src/lib/exchange.types.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,gBAAgB,GAAG,eAAe,GAAG,aAAa,GAAG,eAAe,CAAC;CAC5E;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=exchange.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exchange.types.js","sourceRoot":"","sources":["../../../src/lib/exchange.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ import { SerializedError } from '@reduxjs/toolkit';
2
+ import { FetchBaseQueryError } from '@reduxjs/toolkit/query';
3
+ import { Micro } from 'effect';
4
+ import type { GetAuthorizationUrlOptions } from '@forgerock/sdk-types';
5
+ import type { StorageConfig } from '@forgerock/storage';
6
+ import type { TokenExchangeResponse, TokenRequestOptions } from './exchange.types.js';
7
+ import type { TokenExchangeErrorResponse } from './exchange.types.js';
8
+ import type { OidcConfig } from './config.types.js';
9
+ export declare function createValuesµ(code: string, config: OidcConfig, state: string, endpoint: string, options?: Partial<StorageConfig>): Micro.Micro<{
10
+ code: string;
11
+ config: OidcConfig;
12
+ state: string;
13
+ storedValues: GetAuthorizationUrlOptions;
14
+ endpoint: string;
15
+ }, never, never>;
16
+ export declare function handleTokenResponseµ(data: TokenExchangeResponse | undefined, error?: FetchBaseQueryError | SerializedError): Micro.Micro<TokenExchangeResponse, TokenExchangeErrorResponse, never>;
17
+ export declare function validateValuesµ({ code, config, state, storedValues, endpoint, }: {
18
+ code: string;
19
+ config: OidcConfig;
20
+ state: string;
21
+ storedValues: GetAuthorizationUrlOptions;
22
+ endpoint: string;
23
+ }): Micro.Micro<never, {
24
+ readonly error: "State mismatch";
25
+ readonly message: "The provided state does not match the stored state. This is likely due to passing in used, returned, authorize parameters.";
26
+ readonly type: "state_error";
27
+ }, never> | Micro.Micro<TokenRequestOptions, never, never>;
28
+ //# sourceMappingURL=exchange.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exchange.utils.d.ts","sourceRoot":"","sources":["../../../src/lib/exchange.utils.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAG/B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;;;;;;iBAajC;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,qBAAqB,GAAG,SAAS,EACvC,KAAK,CAAC,EAAE,mBAAmB,GAAG,eAAe,GAC5C,KAAK,CAAC,KAAK,CAAC,qBAAqB,EAAE,0BAA0B,EAAE,KAAK,CAAC,CAyBvE;AAED,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,MAAM,EACN,KAAK,EACL,YAAY,EACZ,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,0BAA0B,CAAC;IACzC,QAAQ,EAAE,MAAM,CAAC;CAClB;;;;2DAiBA"}
@@ -0,0 +1,55 @@
1
+ import { Micro } from 'effect';
2
+ import { getStoredAuthUrlValues } from '@forgerock/sdk-oidc';
3
+ export function createValuesµ(code, config, state, endpoint, options) {
4
+ return Micro.sync(() => {
5
+ const storedValues = getStoredAuthUrlValues(config.clientId, options?.prefix);
6
+ return {
7
+ code,
8
+ config,
9
+ state,
10
+ storedValues,
11
+ endpoint,
12
+ };
13
+ });
14
+ }
15
+ export function handleTokenResponseµ(data, error) {
16
+ if (error) {
17
+ let message;
18
+ if ('status' in error) {
19
+ message = 'error' in error ? error.error : JSON.stringify(error.data);
20
+ }
21
+ else if ('message' in error) {
22
+ message = error.message;
23
+ }
24
+ return Micro.fail({
25
+ error: 'Token Exchange failure',
26
+ message: message || 'Unknown error during token exchange',
27
+ type: 'exchange_error',
28
+ });
29
+ }
30
+ if (!data) {
31
+ return Micro.fail({
32
+ error: 'Token Exchange failure',
33
+ message: 'No data returned from token exchange',
34
+ type: 'exchange_error',
35
+ });
36
+ }
37
+ return Micro.succeed(data);
38
+ }
39
+ export function validateValuesµ({ code, config, state, storedValues, endpoint, }) {
40
+ if (!storedValues || storedValues.state !== state) {
41
+ const err = {
42
+ error: 'State mismatch',
43
+ message: 'The provided state does not match the stored state. This is likely due to passing in used, returned, authorize parameters.',
44
+ type: 'state_error',
45
+ };
46
+ return Micro.fail(err);
47
+ }
48
+ return Micro.succeed({
49
+ code,
50
+ config,
51
+ endpoint,
52
+ ...(storedValues.verifier && { verifier: storedValues.verifier }), // Optional PKCE
53
+ });
54
+ }
55
+ //# sourceMappingURL=exchange.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exchange.utils.js","sourceRoot":"","sources":["../../../src/lib/exchange.utils.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAQ7D,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,MAAkB,EAClB,KAAa,EACb,QAAgB,EAChB,OAAgC;IAEhC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;QACrB,MAAM,YAAY,GAAG,sBAAsB,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAE9E,OAAO;YACL,IAAI;YACJ,MAAM;YACN,KAAK;YACL,YAAY;YACZ,QAAQ;SACT,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,IAAuC,EACvC,KAA6C;IAE7C,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,OAAO,CAAC;QACZ,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;YACtB,OAAO,GAAG,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxE,CAAC;aAAM,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;YAC9B,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC1B,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC;YAChB,KAAK,EAAE,wBAAwB;YAC/B,OAAO,EAAE,OAAO,IAAI,qCAAqC;YACzD,IAAI,EAAE,gBAAgB;SACO,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,KAAK,CAAC,IAAI,CAAC;YAChB,KAAK,EAAE,wBAAwB;YAC/B,OAAO,EAAE,sCAAsC;YAC/C,IAAI,EAAE,gBAAgB;SACO,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAC9B,IAAI,EACJ,MAAM,EACN,KAAK,EACL,YAAY,EACZ,QAAQ,GAOT;IACC,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QAClD,MAAM,GAAG,GAAG;YACV,KAAK,EAAE,gBAAgB;YACvB,OAAO,EACL,4HAA4H;YAC9H,IAAI,EAAE,aAAa;SACX,CAAC;QAEX,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC;QACnB,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,GAAG,CAAC,YAAY,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,EAAE,gBAAgB;KAC7D,CAAC,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Micro } from 'effect';
2
+ import { createClientStore } from './client.store.utils.js';
3
+ import { OauthTokens, OidcConfig } from './config.types.js';
4
+ import { WellKnownResponse } from '@forgerock/sdk-types';
5
+ import { createStorage } from '@forgerock/storage';
6
+ import { LogoutErrorResult, LogoutSuccessResult } from './client.types.js';
7
+ export declare function logoutµ({ tokens, config, wellknown, store, storageClient, }: {
8
+ tokens: OauthTokens;
9
+ config: OidcConfig;
10
+ wellknown: WellKnownResponse;
11
+ store: ReturnType<typeof createClientStore>;
12
+ storageClient: ReturnType<typeof createStorage<OauthTokens>>;
13
+ }): Micro.Micro<LogoutSuccessResult, LogoutErrorResult, never>;
14
+ //# sourceMappingURL=logout.request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logout.request.d.ts","sourceRoot":"","sources":["../../../src/lib/logout.request.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,OAAO,EAAE,iBAAiB,EAAqB,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE3E,wBAAgB,OAAO,CAAC,EACtB,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,GACd,EAAE;IACD,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,KAAK,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;IAC5C,aAAa,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;CAC9D,8DAsDA"}
@@ -0,0 +1,48 @@
1
+ /*
2
+ * Copyright (c) 2025 Ping Identity Corporation. All rights reserved.
3
+ *
4
+ * This software may be modified and distributed under the terms
5
+ * of the MIT license. See the LICENSE file for details.
6
+ */
7
+ import { Micro } from 'effect';
8
+ import { oidcApi } from './oidc.api.js';
9
+ import { createLogoutError } from './client.store.utils.js';
10
+ export function logoutµ({ tokens, config, wellknown, store, storageClient, }) {
11
+ return Micro.zip(
12
+ // End session with the ID token
13
+ Micro.promise(() => store.dispatch(oidcApi.endpoints.endSession.initiate({
14
+ idToken: tokens.idToken,
15
+ endpoint: wellknown.ping_end_idp_session_endpoint || wellknown.end_session_endpoint,
16
+ }))).pipe(Micro.map(({ data, error }) => createLogoutError(data, error))),
17
+ // Revoke the access token
18
+ Micro.promise(() => store.dispatch(oidcApi.endpoints.revoke.initiate({
19
+ accessToken: tokens.accessToken,
20
+ clientId: config.clientId,
21
+ endpoint: wellknown.revocation_endpoint,
22
+ }))).pipe(Micro.map(({ data, error }) => createLogoutError(data, error)))).pipe(
23
+ // Delete local token and return combined results
24
+ Micro.flatMap(([sessionResponse, revokeResponse]) => Micro.promise(() => storageClient.remove()).pipe(Micro.flatMap((deleteRes) => {
25
+ const deleteResponse = typeof deleteRes === 'undefined' ? null : deleteRes;
26
+ const isInnerRequestError = (sessionResponse && 'error' in sessionResponse) ||
27
+ (revokeResponse && 'error' in revokeResponse) ||
28
+ (deleteResponse && typeof deleteResponse === 'object' && 'error' in deleteResponse);
29
+ if (isInnerRequestError) {
30
+ const result = {
31
+ error: 'Inner request error',
32
+ sessionResponse,
33
+ revokeResponse,
34
+ deleteResponse,
35
+ };
36
+ return Micro.fail(result);
37
+ }
38
+ else {
39
+ const result = {
40
+ sessionResponse: null,
41
+ revokeResponse: null,
42
+ deleteResponse: null,
43
+ };
44
+ return Micro.succeed(result);
45
+ }
46
+ }))));
47
+ }
48
+ //# sourceMappingURL=logout.request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logout.request.js","sourceRoot":"","sources":["../../../src/lib/logout.request.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAqB,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAM/E,MAAM,UAAU,OAAO,CAAC,EACtB,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,GAOd;IACC,OAAO,KAAK,CAAC,GAAG;IACd,gCAAgC;IAChC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CACjB,KAAK,CAAC,QAAQ,CACZ,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC;QACpC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,SAAS,CAAC,6BAA6B,IAAI,SAAS,CAAC,oBAAoB;KACpF,CAAC,CACH,CACF,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAEtE,0BAA0B;IAC1B,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CACjB,KAAK,CAAC,QAAQ,CACZ,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,SAAS,CAAC,mBAAmB;KACxC,CAAC,CACH,CACF,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CACvE,CAAC,IAAI;IACJ,iDAAiD;IACjD,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EAAE,CAClD,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAC9C,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QAC1B,MAAM,cAAc,GAAG,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAE3E,MAAM,mBAAmB,GACvB,CAAC,eAAe,IAAI,OAAO,IAAI,eAAe,CAAC;YAC/C,CAAC,cAAc,IAAI,OAAO,IAAI,cAAc,CAAC;YAC7C,CAAC,cAAc,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,OAAO,IAAI,cAAc,CAAC,CAAC;QAEtF,IAAI,mBAAmB,EAAE,CAAC;YACxB,MAAM,MAAM,GAAsB;gBAChC,KAAK,EAAE,qBAAqB;gBAC5B,eAAe;gBACf,cAAc;gBACd,cAAc;aACf,CAAC;YACF,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAwB;gBAClC,eAAe,EAAE,IAAI;gBACrB,cAAc,EAAE,IAAI;gBACpB,cAAc,EAAE,IAAI;aACrB,CAAC;YACF,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC,CACH,CACF,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { FetchArgs, FetchBaseQueryError } from '@reduxjs/toolkit/query';
2
+ import { OidcConfig } from './config.types.js';
3
+ import type { TokenExchangeResponse } from './exchange.types.js';
4
+ import { AuthorizationSuccess, AuthorizeSuccessResponse } from './authorize.request.types.js';
5
+ import { UserInfoResponse } from './client.types.js';
6
+ export declare const oidcApi: import("@reduxjs/toolkit/query").Api<import("@reduxjs/toolkit/query").BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, {
7
+ authorizeFetch: import("@reduxjs/toolkit/query").MutationDefinition<{
8
+ url: string;
9
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, AuthorizeSuccessResponse, "oidc", unknown>;
10
+ authorizeIframe: import("@reduxjs/toolkit/query").MutationDefinition<{
11
+ url: string;
12
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, AuthorizationSuccess, "oidc", unknown>;
13
+ endSession: import("@reduxjs/toolkit/query").MutationDefinition<{
14
+ idToken: string;
15
+ endpoint: string;
16
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, null, "oidc", unknown>;
17
+ exchange: import("@reduxjs/toolkit/query").MutationDefinition<{
18
+ code: string;
19
+ config: OidcConfig;
20
+ endpoint: string;
21
+ verifier?: string;
22
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, TokenExchangeResponse, "oidc", unknown>;
23
+ revoke: import("@reduxjs/toolkit/query").MutationDefinition<{
24
+ accessToken: string;
25
+ clientId?: string;
26
+ endpoint: string;
27
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, object, "oidc", unknown>;
28
+ userInfo: import("@reduxjs/toolkit/query").MutationDefinition<{
29
+ accessToken: string;
30
+ endpoint: string;
31
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, UserInfoResponse, "oidc", unknown>;
32
+ }, "oidc", never, typeof import("@reduxjs/toolkit/query").coreModuleName>;
33
+ //# sourceMappingURL=oidc.api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oidc.api.d.ts","sourceRoot":"","sources":["../../../src/lib/oidc.api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAkB,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAU/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAE9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAOrD,eAAO,MAAM,OAAO;;aAIkD,MAAM;;;aAqET,MAAM;;;iBAoFvB,MAAM;kBAAY,MAAM;;;cA+C5D,MAAM;gBACJ,UAAU;kBACR,MAAM;mBACL,MAAM;;;qBA6D2B,MAAM;mBAAa,MAAM;kBAAY,MAAM;;;qBAkD/B,MAAM;kBAAY,MAAM;;yEA2CtF,CAAC"}