@forgerock/davinci-client 0.0.0-beta-20250414111925 → 0.0.0-beta-20250414113129

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 (133) hide show
  1. package/dist/src/index.d.ts +2 -0
  2. package/dist/src/index.d.ts.map +1 -0
  3. package/dist/src/index.js +8 -0
  4. package/dist/src/index.js.map +1 -0
  5. package/dist/src/lib/authorize.utils.d.ts +22 -0
  6. package/dist/src/lib/authorize.utils.d.ts.map +1 -0
  7. package/dist/src/lib/authorize.utils.js +47 -0
  8. package/dist/src/lib/authorize.utils.js.map +1 -0
  9. package/dist/src/lib/client.store.d.ts +351 -0
  10. package/dist/src/lib/client.store.d.ts.map +1 -0
  11. package/dist/src/lib/client.store.js +295 -0
  12. package/dist/src/lib/client.store.js.map +1 -0
  13. package/dist/src/lib/client.store.utils.d.ts +61 -0
  14. package/dist/src/lib/client.store.utils.d.ts.map +1 -0
  15. package/dist/src/lib/client.store.utils.js +35 -0
  16. package/dist/src/lib/client.store.utils.js.map +1 -0
  17. package/dist/src/lib/client.types.d.ts +17 -0
  18. package/dist/src/lib/client.types.d.ts.map +1 -0
  19. package/dist/src/lib/client.types.js +2 -0
  20. package/dist/src/lib/client.types.js.map +1 -0
  21. package/dist/src/lib/collector.types.d.ts +255 -0
  22. package/dist/src/lib/collector.types.d.ts.map +1 -0
  23. package/dist/src/lib/collector.types.js +11 -0
  24. package/dist/src/lib/collector.types.js.map +1 -0
  25. package/dist/src/lib/collector.utils.d.ts +100 -0
  26. package/dist/src/lib/collector.utils.d.ts.map +1 -0
  27. package/dist/src/lib/collector.utils.js +349 -0
  28. package/dist/src/lib/collector.utils.js.map +1 -0
  29. package/dist/src/lib/config.slice.d.ts +42 -0
  30. package/dist/src/lib/config.slice.d.ts.map +1 -0
  31. package/dist/src/lib/config.slice.js +59 -0
  32. package/dist/src/lib/config.slice.js.map +1 -0
  33. package/dist/src/lib/config.types.d.ts +12 -0
  34. package/dist/src/lib/config.types.d.ts.map +1 -0
  35. package/dist/src/lib/config.types.js +2 -0
  36. package/dist/src/lib/config.types.js.map +1 -0
  37. package/dist/src/lib/davinci.api.d.ts +29 -0
  38. package/dist/src/lib/davinci.api.d.ts.map +1 -0
  39. package/dist/src/lib/davinci.api.js +333 -0
  40. package/dist/src/lib/davinci.api.js.map +1 -0
  41. package/dist/src/lib/davinci.types.d.ts +239 -0
  42. package/dist/src/lib/davinci.types.d.ts.map +1 -0
  43. package/dist/src/lib/davinci.types.js +11 -0
  44. package/dist/src/lib/davinci.types.js.map +1 -0
  45. package/dist/src/lib/davinci.utils.d.ts +25 -0
  46. package/dist/src/lib/davinci.utils.d.ts.map +1 -0
  47. package/dist/src/lib/davinci.utils.js +185 -0
  48. package/dist/src/lib/davinci.utils.js.map +1 -0
  49. package/dist/src/lib/device.store.d.ts +126 -0
  50. package/dist/src/lib/device.store.d.ts.map +1 -0
  51. package/dist/src/lib/device.store.js +200 -0
  52. package/dist/src/lib/device.store.js.map +1 -0
  53. package/dist/src/lib/effects/request.effect.mock.d.ts +4 -0
  54. package/dist/src/lib/effects/request.effect.mock.d.ts.map +1 -0
  55. package/dist/src/lib/effects/request.effect.mock.js +106 -0
  56. package/dist/src/lib/effects/request.effect.mock.js.map +1 -0
  57. package/dist/src/lib/effects/request.effect.types.d.ts +20 -0
  58. package/dist/src/lib/effects/request.effect.types.d.ts.map +1 -0
  59. package/dist/src/lib/effects/request.effect.types.js +2 -0
  60. package/dist/src/lib/effects/request.effect.types.js.map +1 -0
  61. package/dist/src/lib/effects/request.effect.unions.d.ts +12 -0
  62. package/dist/src/lib/effects/request.effect.unions.d.ts.map +1 -0
  63. package/dist/src/lib/effects/request.effect.unions.js +16 -0
  64. package/dist/src/lib/effects/request.effect.unions.js.map +1 -0
  65. package/dist/src/lib/effects/request.effect.utils.d.ts +27 -0
  66. package/dist/src/lib/effects/request.effect.utils.d.ts.map +1 -0
  67. package/dist/src/lib/effects/request.effect.utils.js +57 -0
  68. package/dist/src/lib/effects/request.effect.utils.js.map +1 -0
  69. package/dist/src/lib/error.types.d.ts +6 -0
  70. package/dist/src/lib/error.types.d.ts.map +1 -0
  71. package/dist/src/lib/error.types.js +2 -0
  72. package/dist/src/lib/error.types.js.map +1 -0
  73. package/dist/src/lib/index.d.ts +3 -0
  74. package/dist/src/lib/index.d.ts.map +1 -0
  75. package/dist/src/lib/index.js +9 -0
  76. package/dist/src/lib/index.js.map +1 -0
  77. package/dist/src/lib/node.reducer.d.ts +27 -0
  78. package/dist/src/lib/node.reducer.d.ts.map +1 -0
  79. package/dist/src/lib/node.reducer.js +143 -0
  80. package/dist/src/lib/node.reducer.js.map +1 -0
  81. package/dist/src/lib/node.slice.d.ts +145 -0
  82. package/dist/src/lib/node.slice.d.ts.map +1 -0
  83. package/dist/src/lib/node.slice.js +231 -0
  84. package/dist/src/lib/node.slice.js.map +1 -0
  85. package/dist/src/lib/node.types.d.ts +118 -0
  86. package/dist/src/lib/node.types.d.ts.map +1 -0
  87. package/dist/src/lib/node.types.js +2 -0
  88. package/dist/src/lib/node.types.js.map +1 -0
  89. package/dist/src/lib/node.utils.d.ts +4 -0
  90. package/dist/src/lib/node.utils.d.ts.map +1 -0
  91. package/dist/src/lib/node.utils.js +32 -0
  92. package/dist/src/lib/node.utils.js.map +1 -0
  93. package/dist/src/lib/services/index.d.ts +24 -0
  94. package/dist/src/lib/services/index.d.ts.map +1 -0
  95. package/dist/src/lib/services/index.js +81 -0
  96. package/dist/src/lib/services/index.js.map +1 -0
  97. package/dist/src/lib/types/binding-device.types.d.ts +31 -0
  98. package/dist/src/lib/types/binding-device.types.d.ts.map +1 -0
  99. package/dist/src/lib/types/binding-device.types.js +2 -0
  100. package/dist/src/lib/types/binding-device.types.js.map +1 -0
  101. package/dist/src/lib/types/index.d.ts +6 -0
  102. package/dist/src/lib/types/index.d.ts.map +1 -0
  103. package/dist/src/lib/types/index.js +12 -0
  104. package/dist/src/lib/types/index.js.map +1 -0
  105. package/dist/src/lib/types/oath.types.d.ts +41 -0
  106. package/dist/src/lib/types/oath.types.d.ts.map +1 -0
  107. package/dist/src/lib/types/oath.types.js +2 -0
  108. package/dist/src/lib/types/oath.types.js.map +1 -0
  109. package/dist/src/lib/types/push-device.types.d.ts +84 -0
  110. package/dist/src/lib/types/push-device.types.d.ts.map +1 -0
  111. package/dist/src/lib/types/push-device.types.js +2 -0
  112. package/dist/src/lib/types/push-device.types.js.map +1 -0
  113. package/dist/src/lib/types/updateDeviceProfile.types.d.ts +58 -0
  114. package/dist/src/lib/types/updateDeviceProfile.types.d.ts.map +1 -0
  115. package/dist/src/lib/types/updateDeviceProfile.types.js +2 -0
  116. package/dist/src/lib/types/updateDeviceProfile.types.js.map +1 -0
  117. package/dist/src/lib/types/webauthn.types.d.ts +69 -0
  118. package/dist/src/lib/types/webauthn.types.d.ts.map +1 -0
  119. package/dist/src/lib/types/webauthn.types.js +2 -0
  120. package/dist/src/lib/types/webauthn.types.js.map +1 -0
  121. package/dist/src/lib/wellknown.api.d.ts +5 -0
  122. package/dist/src/lib/wellknown.api.d.ts.map +1 -0
  123. package/dist/src/lib/wellknown.api.js +22 -0
  124. package/dist/src/lib/wellknown.api.js.map +1 -0
  125. package/dist/src/lib/wellknown.types.d.ts +38 -0
  126. package/dist/src/lib/wellknown.types.d.ts.map +1 -0
  127. package/dist/src/lib/wellknown.types.js +2 -0
  128. package/dist/src/lib/wellknown.types.js.map +1 -0
  129. package/dist/src/types.d.ts +31 -0
  130. package/dist/src/types.d.ts.map +1 -0
  131. package/dist/src/types.js +8 -0
  132. package/dist/src/types.js.map +1 -0
  133. package/package.json +3 -2
@@ -0,0 +1,231 @@
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
+ /**
8
+ * Import the required utilities from Redux Toolkit
9
+ */
10
+ import { createSlice } from '@reduxjs/toolkit';
11
+ /**
12
+ * Import the needed reducers
13
+ */
14
+ import { nodeCollectorReducer } from './node.reducer.js';
15
+ import { getCollectorErrors } from './node.utils.js';
16
+ /**
17
+ * The possible statuses for the four types of nodes
18
+ */
19
+ const CONTINUE_STATUS = 'continue';
20
+ const ERROR_STATUS = 'error';
21
+ const FAILURE_STATUS = 'failure';
22
+ const SUCCESS_STATUS = 'success';
23
+ const START_STATUS = 'start';
24
+ /**
25
+ * @const initialNodeState - Initial state for the node slice
26
+ */
27
+ export const initialNodeState = {
28
+ cache: null,
29
+ client: {
30
+ status: START_STATUS,
31
+ },
32
+ error: null,
33
+ server: {
34
+ status: START_STATUS,
35
+ },
36
+ status: START_STATUS,
37
+ };
38
+ /**
39
+ * @const nodeSlice - Slice for handling the node state
40
+ * @see https://redux-toolkit.js.org/api/createSlice
41
+ */
42
+ export const nodeSlice = createSlice({
43
+ name: 'node',
44
+ initialState: initialNodeState,
45
+ reducers: {
46
+ /**
47
+ * @method error - Method for creating an error node
48
+ * @param {Object} state - The current state of the slice
49
+ * @param {PayloadAction<DaVinciErrorCacheEntry<DavinciErrorResponse>>} action - The action to be dispatched
50
+ * @returns {ErrorNode} - The error node
51
+ */
52
+ error(state, action) {
53
+ const newState = state;
54
+ // Reference to the original response from DaVinci in the cache
55
+ newState.cache = {
56
+ key: action.payload.requestId,
57
+ };
58
+ // Data for the client to consume
59
+ newState.client = {
60
+ ...state.client,
61
+ status: ERROR_STATUS,
62
+ };
63
+ newState.error = {
64
+ code: action.payload.data.code,
65
+ collectors: getCollectorErrors(action.payload.data),
66
+ message: action.payload.data.message,
67
+ internalHttpStatus: action.payload.data.httpResponseCode,
68
+ status: 'error',
69
+ type: 'davinci_error',
70
+ };
71
+ newState.httpStatus = action.payload.httpStatus;
72
+ // Data that the server users
73
+ newState.server = {
74
+ ...state.server,
75
+ status: ERROR_STATUS,
76
+ };
77
+ // Used to help detect the node type
78
+ newState.status = ERROR_STATUS;
79
+ return newState;
80
+ },
81
+ /**
82
+ * @method failure - Method for creating an error node
83
+ * @param {Object} state - The current state of the slice
84
+ * @param {PayloadAction<DaVinciFailureResponse>} action - The action to be dispatched
85
+ * @returns {FailureNode} - The error node
86
+ */
87
+ failure(state, action) {
88
+ const newState = state;
89
+ newState.cache = {
90
+ key: action.payload.requestId,
91
+ };
92
+ newState.client = {
93
+ status: FAILURE_STATUS,
94
+ };
95
+ if (action.payload.data && typeof action.payload.data === 'object') {
96
+ const data = action.payload.data;
97
+ newState.error = {
98
+ code: data['code'] || 'unknown',
99
+ message: data['message'] || data['errorMessage'] || '',
100
+ internalHttpStatus: typeof data['httpResponseCode'] === 'number' ? data['httpResponseCode'] : 0,
101
+ status: FAILURE_STATUS,
102
+ type: 'davinci_error',
103
+ };
104
+ }
105
+ else {
106
+ newState.error = {
107
+ code: 'unknown',
108
+ message: 'An unknown error occurred',
109
+ status: FAILURE_STATUS,
110
+ type: 'network_error',
111
+ };
112
+ }
113
+ newState.httpStatus = action.payload.httpStatus;
114
+ newState.server = {
115
+ status: FAILURE_STATUS,
116
+ };
117
+ newState.status = FAILURE_STATUS;
118
+ return newState;
119
+ },
120
+ /**
121
+ * @method next - Method for creating a next node
122
+ * @param {Object} state - The current state of the slice
123
+ * @param {PayloadAction<DaVinciNextResponse>} action - The action to be dispatched
124
+ * @returns {ContinueNode} - The next node
125
+ */
126
+ next(state, action) {
127
+ const newState = state;
128
+ const collectors = nodeCollectorReducer([], {
129
+ type: action.type,
130
+ payload: {
131
+ fields: action.payload.data?.form?.components?.fields,
132
+ formData: action.payload.data?.formData,
133
+ },
134
+ });
135
+ const submitCollector = collectors.filter((collector) => collector.type === 'SubmitCollector')[0];
136
+ newState.cache = {
137
+ key: action.payload.requestId,
138
+ };
139
+ newState.client = {
140
+ action: submitCollector?.output.key,
141
+ description: action.payload.data?.form?.description,
142
+ collectors,
143
+ name: action.payload.data.form?.name,
144
+ status: CONTINUE_STATUS,
145
+ };
146
+ newState.httpStatus = action.payload.httpStatus;
147
+ newState.server = {
148
+ _links: action.payload.data._links,
149
+ id: action.payload.data.id,
150
+ interactionId: action.payload.data.interactionId,
151
+ interactionToken: action.payload.data.interactionToken,
152
+ eventName: action.payload.data.eventName,
153
+ status: CONTINUE_STATUS,
154
+ };
155
+ // Used to help detect the node type
156
+ newState.status = CONTINUE_STATUS;
157
+ return newState;
158
+ },
159
+ /**
160
+ * @method start - Method for creating a start node
161
+ * @param {Object} state - The current state of the slice
162
+ * @returns {StartNode} - The start node
163
+ */
164
+ success(state, action) {
165
+ const newState = state;
166
+ newState.cache = {
167
+ key: action.payload.requestId,
168
+ };
169
+ newState.client = {
170
+ authorization: {
171
+ code: action.payload.data.authorizeResponse?.code,
172
+ state: action.payload.data.authorizeResponse?.state,
173
+ },
174
+ status: SUCCESS_STATUS,
175
+ };
176
+ newState.httpStatus = action.payload.httpStatus;
177
+ newState.server = {
178
+ id: action.payload.data.id,
179
+ interactionId: action.payload.data.interactionId,
180
+ interactionToken: action.payload.data.interactionToken,
181
+ session: action.payload.data.session?.id,
182
+ status: SUCCESS_STATUS,
183
+ };
184
+ newState.status = SUCCESS_STATUS;
185
+ return newState;
186
+ },
187
+ /**
188
+ * @method update - Method for updating collector values with the node
189
+ * @param {Object} state - The current state of the slice
190
+ * @param {PayloadAction<unknown>} action - The action to be dispatched
191
+ * @returns {ContinueNode} - The next node
192
+ */
193
+ update(state, action) {
194
+ const newState = state;
195
+ newState.client.collectors = nodeCollectorReducer(newState.client.collectors, action);
196
+ return newState;
197
+ },
198
+ },
199
+ selectors: {
200
+ selectClient: (state) => {
201
+ return state.client;
202
+ },
203
+ selectCollectors: (state) => {
204
+ if (state.client && 'collectors' in state.client) {
205
+ return state?.client.collectors;
206
+ }
207
+ console.error(`\`collectors\` are only available on nodes with \`status\` of ${CONTINUE_STATUS} or ${ERROR_STATUS}`);
208
+ return [];
209
+ },
210
+ selectCollector: (state, id) => {
211
+ if (state.client && 'collectors' in state.client) {
212
+ return state.client.collectors?.find((collector) => collector.id === id);
213
+ }
214
+ console.error(`\`collectors\` are only available on nodes with \`status\` of ${CONTINUE_STATUS} or ${ERROR_STATUS}`);
215
+ return;
216
+ },
217
+ selectError: (state) => {
218
+ return state.error;
219
+ },
220
+ selectErrorCollectors: (state) => {
221
+ if (state.status !== ERROR_STATUS) {
222
+ console.error(`\`errorCollectors\` are only available on nodes with \`status\` of ${ERROR_STATUS}`);
223
+ }
224
+ return state.error?.collectors || [];
225
+ },
226
+ selectServer: (state) => {
227
+ return state.server;
228
+ },
229
+ },
230
+ });
231
+ //# sourceMappingURL=node.slice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.slice.js","sourceRoot":"","sources":["../../../src/lib/node.slice.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ import type { FlowCollector, PasswordCollector, TextCollector, IdpCollector, SubmitCollector, ActionCollector, SingleValueCollector, SingleSelectCollector, MultiSelectCollector, ReadOnlyCollector, ValidatedTextCollector } from './collector.types.js';
2
+ import type { Links } from './davinci.types.js';
3
+ import { GenericError } from './error.types.js';
4
+ export type Collectors = FlowCollector | PasswordCollector | TextCollector | SingleSelectCollector | IdpCollector | SubmitCollector | ActionCollector<'ActionCollector'> | SingleValueCollector<'SingleValueCollector'> | MultiSelectCollector | ReadOnlyCollector | ValidatedTextCollector;
5
+ export interface CollectorErrors {
6
+ code: string;
7
+ message: string;
8
+ target: string;
9
+ }
10
+ export interface ContinueNode {
11
+ cache: {
12
+ key: string;
13
+ };
14
+ client: {
15
+ action: string;
16
+ collectors: Collectors[];
17
+ description?: string;
18
+ name?: string;
19
+ status: 'continue';
20
+ };
21
+ error: null;
22
+ httpStatus: number;
23
+ server: {
24
+ _links?: Links;
25
+ id?: string;
26
+ interactionId?: string;
27
+ interactionToken?: string;
28
+ href?: string;
29
+ eventName?: string;
30
+ status: 'continue';
31
+ };
32
+ status: 'continue';
33
+ }
34
+ export interface DaVinciError extends GenericError {
35
+ collectors?: CollectorErrors[];
36
+ internalHttpStatus?: number;
37
+ status: 'error' | 'failure' | 'unknown';
38
+ }
39
+ export interface ErrorNode {
40
+ cache: {
41
+ key: string;
42
+ };
43
+ client: {
44
+ action: string;
45
+ collectors: Collectors[];
46
+ description?: string;
47
+ name?: string;
48
+ status: 'error';
49
+ };
50
+ error: DaVinciError;
51
+ httpStatus: number;
52
+ server: {
53
+ _links?: Links;
54
+ eventName?: string;
55
+ id?: string;
56
+ interactionId?: string;
57
+ interactionToken?: string;
58
+ status: 'error';
59
+ } | null;
60
+ status: 'error';
61
+ }
62
+ export interface FailureNode {
63
+ cache: {
64
+ key: string;
65
+ };
66
+ client: {
67
+ status: 'failure';
68
+ };
69
+ error: DaVinciError;
70
+ httpStatus: number;
71
+ server: {
72
+ _links?: Links;
73
+ eventName?: string;
74
+ href?: string;
75
+ id?: string;
76
+ interactionId?: string;
77
+ interactionToken?: string;
78
+ status: 'failure';
79
+ } | null;
80
+ status: 'failure';
81
+ }
82
+ export interface StartNode {
83
+ cache: null;
84
+ client: {
85
+ status: 'start';
86
+ };
87
+ error: null;
88
+ server: {
89
+ status: 'start';
90
+ };
91
+ status: 'start';
92
+ }
93
+ export interface SuccessNode {
94
+ cache: {
95
+ key: string;
96
+ };
97
+ client: {
98
+ authorization?: {
99
+ code?: string;
100
+ state?: string;
101
+ };
102
+ status: 'success';
103
+ } | null;
104
+ error: null;
105
+ httpStatus: number;
106
+ server: {
107
+ _links?: Links;
108
+ eventName?: string;
109
+ id?: string;
110
+ interactionId?: string;
111
+ interactionToken?: string;
112
+ href?: string;
113
+ session?: string;
114
+ status: 'success';
115
+ };
116
+ status: 'success';
117
+ }
118
+ //# sourceMappingURL=node.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.types.d.ts","sourceRoot":"","sources":["../../../src/lib/node.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=node.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.types.js","sourceRoot":"","sources":["../../../src/lib/node.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { DavinciErrorResponse } from './davinci.types';
2
+ import { CollectorErrors } from './node.types';
3
+ export declare function getCollectorErrors(error: DavinciErrorResponse): CollectorErrors[];
4
+ //# sourceMappingURL=node.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.utils.d.ts","sourceRoot":"","sources":["../../../src/lib/node.utils.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,qBA+B7D"}
@@ -0,0 +1,32 @@
1
+ export function getCollectorErrors(error) {
2
+ const details = error.details;
3
+ if (!details || !Array.isArray(details)) {
4
+ return [];
5
+ }
6
+ return details.reduce((acc, next) => {
7
+ if (!next.rawResponse) {
8
+ return acc;
9
+ }
10
+ if (!next.rawResponse.code) {
11
+ return acc;
12
+ }
13
+ if (next.rawResponse.code !== 'INVALID_DATA') {
14
+ return acc;
15
+ }
16
+ if (!Array.isArray(next.rawResponse.details)) {
17
+ return acc;
18
+ }
19
+ next.rawResponse.details.forEach((item) => {
20
+ if (!item.target) {
21
+ return;
22
+ }
23
+ acc.push({
24
+ code: item.code || '',
25
+ message: item.message || '',
26
+ target: item.target,
27
+ });
28
+ });
29
+ return acc;
30
+ }, []);
31
+ }
32
+ //# sourceMappingURL=node.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.utils.js","sourceRoot":"","sources":["../../../src/lib/node.utils.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,kBAAkB,CAAC,KAA2B;IAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACrD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO,GAAG,CAAC;QACb,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAC;QACb,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAC7C,OAAO,GAAG,CAAC;QACb,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7C,OAAO,GAAG,CAAC;QACb,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAQ,EAAE;YAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO;YACT,CAAC;YACD,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;gBACrB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;gBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { DeletedOAthDevice, DeleteOathQuery, OathDevice, OAthResponse, RetrieveOathQuery } from '../types/oath.types.js';
2
+ import { DeleteDeviceQuery, PushDevice, PushDeviceQuery, PushDevicesResponse } from '../types/push-device.types.js';
3
+ import { BindingDeviceQuery, Device, DeviceResponse } from '../types/binding-device.types.js';
4
+ import { UpdatedWebAuthnDevice, WebAuthnBody, WebAuthnDevice, WebAuthnDevicesResponse, WebAuthnQuery } from '../types/webauthn.types.js';
5
+ export declare const deviceService: ({ baseUrl, realmPath }: {
6
+ baseUrl: string;
7
+ realmPath: string;
8
+ }) => import("@reduxjs/toolkit/query").Api<import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, {
9
+ getOAthDevices: import("@reduxjs/toolkit/query").QueryDefinition<RetrieveOathQuery, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, OAthResponse, "deviceClient">;
10
+ deleteOathDevice: import("@reduxjs/toolkit/query").MutationDefinition<DeleteOathQuery & OathDevice, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, DeletedOAthDevice, "deviceClient">;
11
+ getPushDevices: import("@reduxjs/toolkit/query").QueryDefinition<PushDeviceQuery, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, PushDevicesResponse, "deviceClient">;
12
+ deletePushDevice: import("@reduxjs/toolkit/query").MutationDefinition<DeleteDeviceQuery, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, PushDevice, "deviceClient">;
13
+ getWebAuthnDevices: import("@reduxjs/toolkit/query").QueryDefinition<WebAuthnQuery, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, WebAuthnDevicesResponse, "deviceClient">;
14
+ updateWebAuthnDeviceName: import("@reduxjs/toolkit/query").MutationDefinition<{
15
+ uuid: string;
16
+ } & WebAuthnQuery & WebAuthnBody, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, UpdatedWebAuthnDevice, "deviceClient">;
17
+ deleteWebAuthnDeviceName: import("@reduxjs/toolkit/query").MutationDefinition<{
18
+ uuid: string;
19
+ } & WebAuthnQuery & WebAuthnBody, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, WebAuthnDevice, "deviceClient">;
20
+ getBoundDevices: import("@reduxjs/toolkit/query").MutationDefinition<BindingDeviceQuery, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, DeviceResponse, "deviceClient">;
21
+ updateBindingDeviceName: import("@reduxjs/toolkit/query").MutationDefinition<BindingDeviceQuery, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, Device, "deviceClient">;
22
+ deleteBindingDevice: import("@reduxjs/toolkit/query").MutationDefinition<BindingDeviceQuery, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, Device, "deviceClient">;
23
+ }, "deviceClient", never, typeof import("@reduxjs/toolkit/query").coreModuleName>;
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../device-client/src/lib/services/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,YAAY,EACZ,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,mBAAmB,EACpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAE9F,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,aAAa,EAEd,MAAM,4BAA4B,CAAC;AAEpC,eAAO,MAAM,aAAa,2BAA4B;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;iFAuFxF,CAAC"}
@@ -0,0 +1,81 @@
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 { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query';
8
+ export const deviceService = ({ baseUrl, realmPath }) => createApi({
9
+ reducerPath: 'deviceClient',
10
+ baseQuery: fetchBaseQuery({
11
+ credentials: 'include',
12
+ prepareHeaders: (headers) => {
13
+ headers.set('Content-Type', 'application/json');
14
+ headers.set('Accept', 'application/json');
15
+ headers.set('x-requested-with', 'forgerock-sdk');
16
+ headers.set('x-requested-platform', 'javascript');
17
+ return headers;
18
+ },
19
+ baseUrl,
20
+ }),
21
+ endpoints: (builder) => ({
22
+ // oath endpoints
23
+ getOAthDevices: builder.query({
24
+ query: ({ realm = realmPath, userId }) => `json/realms/${realm}/users/${userId}/devices/2fa/oath?_queryFilter=true`,
25
+ }),
26
+ deleteOathDevice: builder.mutation({
27
+ query: ({ realm = realmPath, userId, uuid, ...body }) => ({
28
+ method: 'DELETE',
29
+ url: `json/realms/${realm}/users/${userId}/devices/2fa/oath/${uuid}`,
30
+ body: { uuid, ...body },
31
+ }),
32
+ }),
33
+ // push device
34
+ getPushDevices: builder.query({
35
+ query: ({ realm = realmPath, userId }) => `/json/realms/${realm}/users/${userId}/devices/2fa/push?_queryFilter=true`,
36
+ }),
37
+ deletePushDevice: builder.mutation({
38
+ query: ({ realm = realmPath, userId, uuid }) => ({
39
+ url: `/json/realms/${realm}/users/${userId}/devices/2fa/push/${uuid}`,
40
+ method: 'DELETE',
41
+ body: {},
42
+ }),
43
+ }),
44
+ // webauthn devices
45
+ getWebAuthnDevices: builder.query({
46
+ query: ({ realm = realmPath, userId }) => `/json/realms/${realm}/users/${userId}/devices/2fa/webauthn?_queryFilter=true`,
47
+ }),
48
+ updateWebAuthnDeviceName: builder.mutation({
49
+ query: ({ realm = realmPath, userId, ...device }) => ({
50
+ url: `/json/realms/${realm}/users/${userId}/devices/2fa/webauthn/${device.uuid}`,
51
+ method: 'PUT',
52
+ body: device,
53
+ }),
54
+ }),
55
+ deleteWebAuthnDeviceName: builder.mutation({
56
+ query: ({ realm = realmPath, userId, ...device }) => ({
57
+ url: `/json/realms/${realm}/users/${userId}/devices/2fa/webauthn/${device.uuid}`,
58
+ method: 'DELETE',
59
+ body: device,
60
+ }),
61
+ }),
62
+ getBoundDevices: builder.mutation({
63
+ query: ({ realm = realmPath, userId }) => `/json/realms/${realm}/users/${userId}/devices/2fa/binding?_queryFilter=true`,
64
+ }),
65
+ updateBindingDeviceName: builder.mutation({
66
+ query: ({ realm = realmPath, userId, ...device }) => ({
67
+ url: `/json/realms/root/realms/${realm}/users/${userId}/devices/2fa/binding/${device.uuid}`,
68
+ method: 'PUT',
69
+ body: device,
70
+ }),
71
+ }),
72
+ deleteBindingDevice: builder.mutation({
73
+ query: ({ realm = realmPath, userId, ...device }) => ({
74
+ url: `/json/realms/root/realms/${realm}/users/${userId}/devices/2fa/binding/${device.uuid}`,
75
+ method: 'DELETE',
76
+ body: device,
77
+ }),
78
+ }),
79
+ }),
80
+ });
81
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../device-client/src/lib/services/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ export type BindingDeviceQuery = {
2
+ userId: string;
3
+ realm?: string;
4
+ } & Device;
5
+ export type DeviceResponse = {
6
+ result: Device[];
7
+ resultCount: number;
8
+ pagedResultsCookie: null;
9
+ totalPagedResultsPolicy: string;
10
+ totalPagedResults: -1;
11
+ remainingPagedResults: -1;
12
+ };
13
+ export type Device = {
14
+ _id: string;
15
+ _rev: string;
16
+ createdDate: number;
17
+ lastAccessDate: number;
18
+ deviceId: string;
19
+ deviceName: string;
20
+ uuid: string;
21
+ key: {
22
+ kty: string;
23
+ kid: string;
24
+ use: string;
25
+ alg: string;
26
+ n: string;
27
+ e: string;
28
+ };
29
+ deviceManagementStatus: boolean;
30
+ };
31
+ //# sourceMappingURL=binding-device.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding-device.types.d.ts","sourceRoot":"","sources":["../../../../../device-client/src/lib/types/binding-device.types.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,MAAM,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,IAAI,CAAC;IACzB,uBAAuB,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,CAAC,CAAC,CAAC;IACtB,qBAAqB,EAAE,CAAC,CAAC,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE;QACH,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IACF,sBAAsB,EAAE,OAAO,CAAC;CACjC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=binding-device.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding-device.types.js","sourceRoot":"","sources":["../../../../../device-client/src/lib/types/binding-device.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export * from './oath.types.js';
2
+ export * from './webauthn.types.js';
3
+ export * from './push-device.types.js';
4
+ export * from './binding-device.types.js';
5
+ export * from './updateDeviceProfile.types.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../device-client/src/lib/types/index.ts"],"names":[],"mappings":"AAMA,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,12 @@
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
+ export * from './oath.types.js';
8
+ export * from './webauthn.types.js';
9
+ export * from './push-device.types.js';
10
+ export * from './binding-device.types.js';
11
+ export * from './updateDeviceProfile.types.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../device-client/src/lib/types/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC"}