@forgerock/davinci-client 1.0.0 → 1.2.0

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 (124) hide show
  1. package/LICENSE +21 -0
  2. package/dist/src/index.d.ts.map +1 -0
  3. package/dist/src/index.js +9 -0
  4. package/dist/src/index.js.map +1 -0
  5. package/dist/src/lib/client.store.d.ts +352 -0
  6. package/dist/src/lib/client.store.d.ts.map +1 -0
  7. package/dist/src/lib/client.store.js +300 -0
  8. package/dist/src/lib/client.store.js.map +1 -0
  9. package/dist/src/lib/client.store.utils.d.ts +74 -0
  10. package/dist/src/lib/client.store.utils.d.ts.map +1 -0
  11. package/dist/src/lib/client.store.utils.js +48 -0
  12. package/dist/src/lib/client.store.utils.js.map +1 -0
  13. package/dist/src/lib/client.types.d.ts +19 -0
  14. package/dist/src/lib/client.types.d.ts.map +1 -0
  15. package/dist/src/lib/client.types.js +2 -0
  16. package/dist/src/lib/client.types.js.map +1 -0
  17. package/dist/src/lib/collector.types.d.ts +360 -0
  18. package/dist/src/lib/collector.types.d.ts.map +1 -0
  19. package/dist/src/lib/collector.types.js +8 -0
  20. package/dist/src/lib/collector.types.js.map +1 -0
  21. package/dist/src/lib/collector.utils.d.ts +117 -0
  22. package/dist/src/lib/collector.utils.d.ts.map +1 -0
  23. package/dist/src/lib/collector.utils.js +463 -0
  24. package/dist/src/lib/collector.utils.js.map +1 -0
  25. package/dist/{lib → src/lib}/config.slice.d.ts +12 -5
  26. package/dist/src/lib/config.slice.d.ts.map +1 -0
  27. package/dist/src/lib/config.slice.js +59 -0
  28. package/dist/src/lib/config.slice.js.map +1 -0
  29. package/dist/src/lib/config.types.d.ts +12 -0
  30. package/dist/src/lib/config.types.d.ts.map +1 -0
  31. package/dist/src/lib/config.types.js +2 -0
  32. package/dist/src/lib/config.types.js.map +1 -0
  33. package/dist/src/lib/davinci.api.d.ts +31 -0
  34. package/dist/src/lib/davinci.api.d.ts.map +1 -0
  35. package/dist/src/lib/davinci.api.js +346 -0
  36. package/dist/src/lib/davinci.api.js.map +1 -0
  37. package/dist/{lib → src/lib}/davinci.types.d.ts +101 -8
  38. package/dist/src/lib/davinci.types.d.ts.map +1 -0
  39. package/dist/src/lib/davinci.types.js +11 -0
  40. package/dist/src/lib/davinci.types.js.map +1 -0
  41. package/dist/{lib → src/lib}/davinci.utils.d.ts +10 -6
  42. package/dist/src/lib/davinci.utils.d.ts.map +1 -0
  43. package/dist/src/lib/davinci.utils.js +168 -0
  44. package/dist/src/lib/davinci.utils.js.map +1 -0
  45. package/dist/src/lib/error.types.d.ts.map +1 -0
  46. package/dist/src/lib/error.types.js +2 -0
  47. package/dist/src/lib/error.types.js.map +1 -0
  48. package/dist/src/lib/index.d.ts.map +1 -0
  49. package/dist/src/lib/index.js +9 -0
  50. package/dist/src/lib/index.js.map +1 -0
  51. package/dist/src/lib/node.reducer.d.ts +27 -0
  52. package/dist/src/lib/node.reducer.d.ts.map +1 -0
  53. package/dist/src/lib/node.reducer.js +193 -0
  54. package/dist/src/lib/node.reducer.js.map +1 -0
  55. package/dist/{lib → src/lib}/node.slice.d.ts +55 -26
  56. package/dist/src/lib/node.slice.d.ts.map +1 -0
  57. package/dist/src/lib/node.slice.js +261 -0
  58. package/dist/src/lib/node.slice.js.map +1 -0
  59. package/dist/{lib → src/lib}/node.types.d.ts +17 -8
  60. package/dist/src/lib/node.types.d.ts.map +1 -0
  61. package/dist/src/lib/node.types.js +2 -0
  62. package/dist/src/lib/node.types.js.map +1 -0
  63. package/dist/src/lib/node.utils.d.ts +4 -0
  64. package/dist/src/lib/node.utils.d.ts.map +1 -0
  65. package/dist/src/lib/node.utils.js +32 -0
  66. package/dist/src/lib/node.utils.js.map +1 -0
  67. package/dist/src/lib/wellknown.api.d.ts +5 -0
  68. package/dist/src/lib/wellknown.api.d.ts.map +1 -0
  69. package/dist/src/lib/wellknown.api.js +22 -0
  70. package/dist/src/lib/wellknown.api.js.map +1 -0
  71. package/dist/src/lib/wellknown.types.d.ts.map +1 -0
  72. package/dist/src/lib/wellknown.types.js +2 -0
  73. package/dist/src/lib/wellknown.types.js.map +1 -0
  74. package/dist/src/types.d.ts +40 -0
  75. package/dist/src/types.d.ts.map +1 -0
  76. package/dist/src/types.js +7 -0
  77. package/dist/src/types.js.map +1 -0
  78. package/package.json +39 -20
  79. package/dist/index.d.ts.map +0 -1
  80. package/dist/index.js +0 -4
  81. package/dist/lib/authorize.utils.d.ts +0 -22
  82. package/dist/lib/authorize.utils.d.ts.map +0 -1
  83. package/dist/lib/authorize.utils.js +0 -23
  84. package/dist/lib/client.store.d.ts +0 -149
  85. package/dist/lib/client.store.d.ts.map +0 -1
  86. package/dist/lib/client.store.js +0 -131
  87. package/dist/lib/client.store.utils.d.ts +0 -46
  88. package/dist/lib/client.store.utils.d.ts.map +0 -1
  89. package/dist/lib/client.store.utils.js +0 -19
  90. package/dist/lib/client.types.d.ts +0 -9
  91. package/dist/lib/client.types.d.ts.map +0 -1
  92. package/dist/lib/collector.types.d.ts +0 -78
  93. package/dist/lib/collector.types.d.ts.map +0 -1
  94. package/dist/lib/collector.utils.d.ts +0 -54
  95. package/dist/lib/collector.utils.d.ts.map +0 -1
  96. package/dist/lib/collector.utils.js +0 -88
  97. package/dist/lib/config.slice.d.ts.map +0 -1
  98. package/dist/lib/config.slice.js +0 -40
  99. package/dist/lib/config.types.d.ts +0 -9
  100. package/dist/lib/config.types.d.ts.map +0 -1
  101. package/dist/lib/davinci.api.d.ts +0 -20
  102. package/dist/lib/davinci.api.d.ts.map +0 -1
  103. package/dist/lib/davinci.api.js +0 -172
  104. package/dist/lib/davinci.types.d.ts.map +0 -1
  105. package/dist/lib/davinci.utils.d.ts.map +0 -1
  106. package/dist/lib/davinci.utils.js +0 -102
  107. package/dist/lib/error.types.d.ts.map +0 -1
  108. package/dist/lib/index.d.ts.map +0 -1
  109. package/dist/lib/node.reducer.d.ts +0 -22
  110. package/dist/lib/node.reducer.d.ts.map +0 -1
  111. package/dist/lib/node.reducer.js +0 -31
  112. package/dist/lib/node.slice.d.ts.map +0 -1
  113. package/dist/lib/node.slice.js +0 -160
  114. package/dist/lib/node.types.d.ts.map +0 -1
  115. package/dist/lib/wellknown.api.d.ts +0 -5
  116. package/dist/lib/wellknown.api.d.ts.map +0 -1
  117. package/dist/lib/wellknown.api.js +0 -15
  118. package/dist/lib/wellknown.types.d.ts.map +0 -1
  119. package/dist/types.d.ts +0 -23
  120. package/dist/types.d.ts.map +0 -1
  121. /package/dist/{index.d.ts → src/index.d.ts} +0 -0
  122. /package/dist/{lib → src/lib}/error.types.d.ts +0 -0
  123. /package/dist/{lib → src/lib}/index.d.ts +0 -0
  124. /package/dist/{lib → src/lib}/wellknown.types.d.ts +0 -0
@@ -0,0 +1,261 @@
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.error = null;
147
+ newState.httpStatus = action.payload.httpStatus;
148
+ newState.server = {
149
+ _links: action.payload.data._links,
150
+ id: action.payload.data.id,
151
+ interactionId: action.payload.data.interactionId,
152
+ interactionToken: action.payload.data.interactionToken,
153
+ eventName: action.payload.data.eventName || 'continue',
154
+ status: CONTINUE_STATUS,
155
+ };
156
+ // Used to help detect the node type
157
+ newState.status = CONTINUE_STATUS;
158
+ return newState;
159
+ },
160
+ /**
161
+ * @method start - Method for creating a start node
162
+ * @param {Object} state - The current state of the slice
163
+ * @returns {StartNode} - The start node
164
+ */
165
+ success(state, action) {
166
+ const newState = state;
167
+ newState.cache = {
168
+ key: action.payload.requestId,
169
+ };
170
+ newState.client = {
171
+ authorization: {
172
+ code: action.payload.data.authorizeResponse?.code,
173
+ state: action.payload.data.authorizeResponse?.state,
174
+ },
175
+ status: SUCCESS_STATUS,
176
+ };
177
+ newState.httpStatus = action.payload.httpStatus;
178
+ newState.server = {
179
+ id: action.payload.data.id,
180
+ interactionId: action.payload.data.interactionId,
181
+ interactionToken: action.payload.data.interactionToken,
182
+ session: action.payload.data.session?.id,
183
+ status: SUCCESS_STATUS,
184
+ };
185
+ newState.error = null;
186
+ newState.status = SUCCESS_STATUS;
187
+ return newState;
188
+ },
189
+ /**
190
+ * @method update - Method for updating collector values with the node
191
+ * @param {Object} state - The current state of the slice
192
+ * @param {PayloadAction<unknown>} action - The action to be dispatched
193
+ * @returns {ContinueNode} - The next node
194
+ */
195
+ update(state, action) {
196
+ const newState = state;
197
+ newState.client.collectors = nodeCollectorReducer(newState.client.collectors, action);
198
+ return newState;
199
+ },
200
+ },
201
+ selectors: {
202
+ selectClient: (state) => {
203
+ return state.client;
204
+ },
205
+ selectCollectors: (state) => {
206
+ if (state.client && 'collectors' in state.client) {
207
+ return {
208
+ error: null,
209
+ state: state?.client.collectors,
210
+ };
211
+ }
212
+ return {
213
+ error: {
214
+ code: 'unknown',
215
+ type: 'state_error',
216
+ message: `\`collectors\` are only available on nodes with \`status\` of ${CONTINUE_STATUS} or ${ERROR_STATUS}`,
217
+ },
218
+ state: [],
219
+ };
220
+ },
221
+ selectCollector: (state, id) => {
222
+ if (state.client && 'collectors' in state.client) {
223
+ return {
224
+ error: null,
225
+ state: state.client.collectors?.find((collector) => collector.id === id),
226
+ };
227
+ }
228
+ return {
229
+ error: {
230
+ code: 'unknown',
231
+ type: 'state_error',
232
+ message: `\`collectors\` are only available on nodes with \`status\` of ${CONTINUE_STATUS} or ${ERROR_STATUS}`,
233
+ },
234
+ state: null,
235
+ };
236
+ },
237
+ selectError: (state) => {
238
+ return state.error;
239
+ },
240
+ selectErrorCollectors: (state) => {
241
+ if (state.status === ERROR_STATUS) {
242
+ return {
243
+ error: null,
244
+ state: state.error?.collectors || [],
245
+ };
246
+ }
247
+ return {
248
+ error: {
249
+ code: 'unknown',
250
+ type: 'state_error',
251
+ message: `\`errorCollectors\` are only available on nodes with \`status\` of ${ERROR_STATUS}`,
252
+ },
253
+ state: [],
254
+ };
255
+ },
256
+ selectServer: (state) => {
257
+ return state.server;
258
+ },
259
+ },
260
+ });
261
+ //# 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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"}
@@ -1,12 +1,12 @@
1
- import { FlowCollector, PasswordCollector, TextCollector, SocialLoginCollector, SubmitCollector, ActionCollector, SingleValueCollector } from './collector.types.js';
2
- import { ErrorDetail, Links } from './davinci.types.js';
1
+ import type { FlowCollector, PasswordCollector, TextCollector, IdpCollector, SubmitCollector, ActionCollector, SingleValueCollector, SingleSelectCollector, MultiSelectCollector, DeviceAuthenticationCollector, DeviceRegistrationCollector, ReadOnlyCollector, ValidatedTextCollector, PhoneNumberCollector, UnknownCollector } from './collector.types.js';
2
+ import type { Links } from './davinci.types.js';
3
3
  import { GenericError } from './error.types.js';
4
- export interface DaVinciError extends GenericError {
5
- details?: ErrorDetail[];
6
- internalHttpStatus?: number;
7
- status: 'error' | 'failure' | 'unknown';
4
+ export type Collectors = FlowCollector | PasswordCollector | TextCollector | SingleSelectCollector | IdpCollector | SubmitCollector | ActionCollector<'ActionCollector'> | SingleValueCollector<'SingleValueCollector'> | MultiSelectCollector | DeviceAuthenticationCollector | DeviceRegistrationCollector | PhoneNumberCollector | ReadOnlyCollector | ValidatedTextCollector | UnknownCollector;
5
+ export interface CollectorErrors {
6
+ code: string;
7
+ message: string;
8
+ target: string;
8
9
  }
9
- export type Collectors = FlowCollector | PasswordCollector | TextCollector | SocialLoginCollector | SubmitCollector | ActionCollector<'ActionCollector'> | SingleValueCollector<'SingleValueCollector'>;
10
10
  export interface ContinueNode {
11
11
  cache: {
12
12
  key: string;
@@ -31,11 +31,20 @@ export interface ContinueNode {
31
31
  };
32
32
  status: 'continue';
33
33
  }
34
+ export interface DaVinciError extends GenericError {
35
+ collectors?: CollectorErrors[];
36
+ internalHttpStatus?: number;
37
+ status: 'error' | 'failure' | 'unknown';
38
+ }
34
39
  export interface ErrorNode {
35
40
  cache: {
36
41
  key: string;
37
42
  };
38
43
  client: {
44
+ action: string;
45
+ collectors: Collectors[];
46
+ description?: string;
47
+ name?: string;
39
48
  status: 'error';
40
49
  };
41
50
  error: DaVinciError;
@@ -75,7 +84,7 @@ export interface StartNode {
75
84
  client: {
76
85
  status: 'start';
77
86
  };
78
- error: null;
87
+ error: DaVinciError | null;
79
88
  server: {
80
89
  status: 'start';
81
90
  };
@@ -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.js';
2
+ import { CollectorErrors } from './node.types.js';
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,oBAAoB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,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,5 @@
1
+ import { WellknownResponse } from './wellknown.types.js';
2
+ export declare const wellknownApi: 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>, {
3
+ wellknown: import("@reduxjs/toolkit/query").QueryDefinition<string, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, WellknownResponse, "wellknown", unknown>;
4
+ }, "wellknown", never, typeof import("@reduxjs/toolkit/query").coreModuleName>;
5
+ //# sourceMappingURL=wellknown.api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wellknown.api.d.ts","sourceRoot":"","sources":["../../../src/lib/wellknown.api.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,eAAO,MAAM,YAAY;;8EAavB,CAAC"}
@@ -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 { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query';
8
+ export const wellknownApi = createApi({
9
+ reducerPath: 'wellknown',
10
+ baseQuery: fetchBaseQuery({
11
+ prepareHeaders: (headers) => {
12
+ headers.set('Accept', 'application/json');
13
+ return headers;
14
+ },
15
+ }),
16
+ endpoints: (builder) => ({
17
+ wellknown: builder.query({
18
+ query: (endpoint) => ({ url: endpoint }),
19
+ }),
20
+ }),
21
+ });
22
+ //# sourceMappingURL=wellknown.api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wellknown.api.js","sourceRoot":"","sources":["../../../src/lib/wellknown.api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGnE,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC;IACpC,WAAW,EAAE,WAAW;IACxB,SAAS,EAAE,cAAc,CAAC;QACxB,cAAc,EAAE,CAAC,OAAO,EAAE,EAAE;YAC1B,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;YAC1C,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;IACF,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACvB,SAAS,EAAE,OAAO,CAAC,KAAK,CAA4B;YAClD,KAAK,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;SACjD,CAAC;KACH,CAAC;CACH,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wellknown.types.d.ts","sourceRoot":"","sources":["../../../src/lib/wellknown.types.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qCAAqC,EAAE,MAAM,CAAC;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,6BAA6B,EAAE,MAAM,CAAC;IACtC,0BAA0B,EAAE,MAAM,CAAC;IACnC,2BAA2B,EAAE,MAAM,CAAC;IACpC,+BAA+B,EAAE,MAAM,CAAC;IACxC,qCAAqC,EAAE,MAAM,CAAC;IAC9C,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,qCAAqC,EAAE,MAAM,EAAE,CAAC;IAChD,qCAAqC,EAAE,MAAM,EAAE,CAAC;IAChD,2CAA2C,EAAE,MAAM,EAAE,CAAC;IACtD,qCAAqC,EAAE,MAAM,EAAE,CAAC;IAChD,gDAAgD,EAAE,MAAM,EAAE,CAAC;IAC3D,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,gCAAgC,EAAE,MAAM,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=wellknown.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wellknown.types.js","sourceRoot":"","sources":["../../../src/lib/wellknown.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,40 @@
1
+ import 'immer';
2
+ import type { RequestMiddleware } from '@forgerock/sdk-request-middleware';
3
+ import type * as collectors from './lib/collector.types.js';
4
+ import type * as config from './lib/config.types.js';
5
+ import type * as nodes from './lib/node.types.js';
6
+ import type * as client from './lib/client.types.js';
7
+ import { davinci } from './lib/client.store.js';
8
+ import { nodeSlice } from './lib/node.slice.js';
9
+ export type { CustomLogger } from '@forgerock/sdk-logger/types';
10
+ export type DaVinciConfig = config.DaVinciConfig;
11
+ export type DavinciClient = Awaited<ReturnType<typeof davinci>>;
12
+ export type Updater = client.Updater;
13
+ export type InitFlow = client.InitFlow;
14
+ export type Validator = client.Validator;
15
+ export type GetClient = ReturnType<typeof nodeSlice.selectors.selectClient>;
16
+ export type StartNode = nodes.StartNode;
17
+ export type ContinueNode = nodes.ContinueNode;
18
+ export type ErrorNode = nodes.ErrorNode;
19
+ export type SuccessNode = nodes.SuccessNode;
20
+ export type FailureNode = nodes.FailureNode;
21
+ export type NodeStates = ContinueNode | ErrorNode | StartNode | SuccessNode | FailureNode;
22
+ export type Collectors = nodes.Collectors;
23
+ export type DaVinciValidationError = nodes.DaVinciError;
24
+ export type ActionCollector<T extends collectors.ActionCollectorTypes> = collectors.ActionCollector<T>;
25
+ export type SingleValueCollector<T extends collectors.SingleValueCollectorTypes> = collectors.SingleValueCollector<T>;
26
+ export type FlowCollector = collectors.FlowCollector;
27
+ export type PasswordCollector = collectors.PasswordCollector;
28
+ export type TextCollector = collectors.TextCollector;
29
+ export type IdpCollector = collectors.IdpCollector;
30
+ export type SubmitCollector = collectors.SubmitCollector;
31
+ export type ValidatedTextCollector = collectors.ValidatedTextCollector;
32
+ export type ReadOnlyCollector = collectors.ReadOnlyCollector;
33
+ export type MultiSelectCollector = collectors.MultiSelectCollector;
34
+ export type SingleSelectCollector = collectors.SingleSelectCollector;
35
+ export type DeviceRegistrationCollector = collectors.DeviceRegistrationCollector;
36
+ export type DeviceAuthenticationCollector = collectors.DeviceAuthenticationCollector;
37
+ export type PhoneNumberCollector = collectors.PhoneNumberCollector;
38
+ export type InternalErrorResponse = client.InternalErrorResponse;
39
+ export type { RequestMiddleware };
40
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAKA,OAAO,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,KAAK,UAAU,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,KAAK,MAAM,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,KAAK,KAAK,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,KAAK,MAAM,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,YAAY,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AAEjD,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC;AAChE,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AACrC,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACvC,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AACzC,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AAC5E,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;AACxC,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;AAC9C,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;AACxC,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;AAC5C,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;AAC5C,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC;AAC1F,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;AAC1C,MAAM,MAAM,sBAAsB,GAAG,KAAK,CAAC,YAAY,CAAC;AAExD,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,UAAU,CAAC,oBAAoB,IACnE,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AAChC,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,UAAU,CAAC,yBAAyB,IAC7E,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAErC,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;AACrD,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;AAC7D,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;AACrD,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;AACnD,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC;AACzD,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,sBAAsB,CAAC;AACvE,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;AAC7D,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,oBAAoB,CAAC;AACnE,MAAM,MAAM,qBAAqB,GAAG,UAAU,CAAC,qBAAqB,CAAC;AACrE,MAAM,MAAM,2BAA2B,GAAG,UAAU,CAAC,2BAA2B,CAAC;AACjF,MAAM,MAAM,6BAA6B,GAAG,UAAU,CAAC,6BAA6B,CAAC;AACrF,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,oBAAoB,CAAC;AAEnE,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACjE,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ /* Copyright (c) 2025 Ping Identity Corporation. All rights reserved.
2
+ *
3
+ * This software may be modified and distributed under the terms
4
+ * of the MIT license. See the LICENSE file for details.
5
+ */
6
+ import 'immer'; // Side-effect needed only for getting types in workspace
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,OAAO,CAAC,CAAC,yDAAyD"}
package/package.json CHANGED
@@ -1,32 +1,51 @@
1
1
  {
2
2
  "name": "@forgerock/davinci-client",
3
- "version": "1.0.0",
4
- "main": "./dist/index.js",
5
- "module": "./dist/index.js",
6
- "typings": "./dist/index.d.ts",
7
- "type": "module",
8
- "files": [
9
- "dist"
10
- ],
3
+ "version": "1.2.0",
11
4
  "repository": {
12
5
  "type": "git",
13
- "url": "git+https://github.com:ForgeRock/forgerock-javascript-sdk.git",
6
+ "url": "git+https://github.com/ForgeRock/ping-javascript-sdk.git",
14
7
  "directory": "packages/davinci-client"
15
8
  },
9
+ "sideEffects": [
10
+ "./src/types.js"
11
+ ],
12
+ "type": "module",
13
+ "exports": {
14
+ ".": "./dist/src/index.js",
15
+ "./types": "./dist/src/types.d.ts"
16
+ },
17
+ "main": "./dist/src/index.js",
18
+ "module": "./dist/src/index.js",
19
+ "typings": "./dist/src/index.d.ts",
20
+ "files": [
21
+ "dist",
22
+ "!dist/tsconfig.lib.tsbuildinfo",
23
+ "./LICENSE"
24
+ ],
25
+ "dependencies": {
26
+ "@reduxjs/toolkit": "^2.8.2",
27
+ "immer": "^10.1.1",
28
+ "@forgerock/sdk-logger": "1.2.0",
29
+ "@forgerock/sdk-oidc": "1.2.0",
30
+ "@forgerock/sdk-request-middleware": "1.2.0",
31
+ "@forgerock/storage": "1.2.0",
32
+ "@forgerock/sdk-types": "1.2.0"
33
+ },
34
+ "devDependencies": {
35
+ "vitest": "^3.0.4"
36
+ },
16
37
  "publishConfig": {
17
38
  "access": "public"
18
39
  },
19
- "dependencies": {
20
- "@reduxjs/toolkit": "2.3.0",
21
- "immer": "10.1.1",
22
- "vitest": "^1.4.0",
23
- "@forgerock/javascript-sdk": "4.6.0"
40
+ "nx": {
41
+ "tags": [
42
+ "scope:package"
43
+ ]
24
44
  },
25
- "exports": {
26
- ".": {
27
- "import": "./dist/index.js",
28
- "require": "./dist/index.js"
29
- },
30
- "./types": "./dist/types.d.ts"
45
+ "scripts": {
46
+ "build": "pnpm nx nxBuild",
47
+ "lint": "pnpm nx nxLint",
48
+ "test": "pnpm nx nxTest",
49
+ "test:watch": "pnpm nx nxTest --watch"
31
50
  }
32
51
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,CAAC"}
package/dist/index.js DELETED
@@ -1,4 +0,0 @@
1
- import { davinci as r } from "./lib/client.store.js";
2
- export {
3
- r as davinci
4
- };
@@ -1,22 +0,0 @@
1
- /**
2
- * Define the options for the authorization URL
3
- * @param clientId The client ID of the application
4
- * @param redirectUri The redirect URI of the application
5
- * @param responseType The response type of the authorization request
6
- * @param scope The scope of the authorization request
7
- */
8
- export interface GetAuthorizationUrlOptions {
9
- clientId: string;
10
- login: 'redirect';
11
- redirectUri: string;
12
- responseType: string;
13
- scope: string;
14
- }
15
- /**
16
- * @function createAuthorizeUrl - Create authorization URL for initial call to DaVinci
17
- * @param baseUrl {string}
18
- * @param options {GetAuthorizationUrlOptions}
19
- * @returns {Promise<string>} - the authorization URL
20
- */
21
- export declare function createAuthorizeUrl(authorizeUrl: string, options: GetAuthorizationUrlOptions): Promise<string>;
22
- //# sourceMappingURL=authorize.utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"authorize.utils.d.ts","sourceRoot":"","sources":["../../src/lib/authorize.utils.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,MAAM,CAAC,CA+BjB"}
@@ -1,23 +0,0 @@
1
- import { ResponseType as l, PKCE as a } from "@forgerock/javascript-sdk";
2
- import { generateAndStoreAuthUrlValues as d } from "@forgerock/javascript-sdk/src/oauth2-client/state-pkce";
3
- async function h(r, e) {
4
- const n = new URL(r).origin, [t, o] = d({
5
- clientId: e.clientId,
6
- login: e.login,
7
- serverConfig: { baseUrl: n },
8
- responseType: l.Code
9
- }), s = await a.createChallenge(t.verifier), c = new URLSearchParams({
10
- code_challenge: s,
11
- code_challenge_method: "S256",
12
- client_id: e.clientId,
13
- redirect_uri: e.redirectUri,
14
- response_mode: "pi.flow",
15
- response_type: e.responseType,
16
- scope: e.scope,
17
- state: t.state
18
- }), i = new URL(`${r}?${c.toString()}`);
19
- return o(), i.toString();
20
- }
21
- export {
22
- h as createAuthorizeUrl
23
- };